org 100h .stack 64 .data .code inicio: mov cx,10 ;cantidad de veces que repetira mov al,'>' ;caracter inicial Lee_car: mov ah,0eh ;Funcion para imprimir caracter int 10h ;llama a la bios mov ah,00 ;funcion de espera de un caracter del teclado int 16h ;llama al bios cmp al,'S' ;compara el caracter con 'S' loope Lee_car ;si es igual salta a otro mov ah,0eh ;funcion para imprimir caracter int 10h ;llamada al bios ;colocar el fin de la linea para que baje una linea y lo imprima mov ah,0eh ;funcion del bios para imprimir caracter mov al,10 int 10h ;colocar el retorno de carro para ir al inicio mov al,13 int 10h ;prepara la salida del programa mov ax,4c00h int 21h end inicio
Si bien, al correr el programa es algo confusa su ejecucion.
Ya que se esperaria que se imprima 10 veces la letra si es una S mayuscula(o al menos ese fue mi caso)
Pero no, el programa no saldra de la funcion de input a menos que se le ingrese una letra diferente a la S mayuscula.
Aqui tenemos un ejemplo de ello, si ingresamos una sola letra a en este caso..
El programa al registrar esa letra, termina automáticamente el programa
En cambio, si ingresamos la letra S mayuscula, veremos lo siguiente..
El programa reconoce la letra y nos permite escribir solo 10 veces la letra, ya que esa fue la condición que se dio
En caso de que se revisen las banderas, solo la bandera IF se enciende en todos los casos porque es la que indica si se ignora o procesa una entrada desde teclado.
No hay comentarios.:
Publicar un comentario