Comparar comando
Este es el código de la función comparar_comando de DariOS

Explicación de la función comparar_comando
La función comparar_comando se utiliza para comparar la cadena de entrada del usuario con una cadena conocida (cadena_<comando>). Si coinciden, se ejecuta el comando <comando>, si no, se muestra un error.
Propósito
Comparar el comando introducido en el buffer con comandos conocidos para ejecutar la acción correspondiente.
Lógica paso a paso
comparar_comando:
- Etiqueta que marca el inicio de la función principal.
call comparar_comando_codigo
- Llama a la subrutina
comparar_comando_codigoque realiza la comparación.
ret
- Finaliza la función y vuelve al llamador.
comparar_comando_codigo:
- Subrutina que contiene la lógica de comparación.
mov si, buffer_shell
- Carga en
SIla dirección del buffer donde está el comando introducido por el usuario.
mov di, cadena_clear
- Carga en
DIla dirección de la cadena del comandoclearcon la que se va a comparar.
call comparar_cadena
- Llama a la función
comparar_cadenaque compara las dos cadenas apuntadas porSIyDI. - El resultado de la comparación se guarda en el registro
BL:1si son iguales, otro valor si no.
cmp bl, 1
- Compara el resultado de la comparación con
1(igualdad).
je clear
- Si las cadenas coinciden, salta a la etiqueta
<comando>para ejecutar ese comando.
jmp error_comando
- Si no coinciden, salta a
error_comandopara manejar un comando no reconocido.
jmp shell
- Salto a
shellpara esperar el siguiente comando.
Requisitos
- Deben estar definidas las etiquetas y funciones:
buffer_shell,cadena_<comando>,comparar_cadena,<comando>,error_comandoyshell. - El registro
BLes utilizado para el resultado de la comparación.
Uso típico
Se llama a comparar_comando para comprobar si el comando escrito es <comando> y actuar en consecuencia.