Programa lectura LOOPE
Hoy veremos un ejemplo de usos condicionales en ensamblador. hoy se usaran los LOOPS LOOPE
Codigo:
El programa anterior se repetirá 10 veces, según lo establecido en el registro CX
Si solo introducimos "S" el ciclo debe repetirse, en mi caso adicionalmente imprime el carácter "*".
De lo contrario el programa imprime la tecla que he introducido y termina su ejecución.
Codigo:
.model small .stack 64 .data .code inicio proc far ;INICIO DE PROCEDIMIENTO mov cx,10 ; CX=10 LEER_CAR: ;INICIO DE ETIQUETA mov al,"*" ;AL="*" mov ah,0Eh ;0Eh Imprime un caracter en pantalla desplazando el cursor y la pantalla de ser necesario int 10h ;Invoca a los servicios de pantalla mov ah,00 ;00 espera una pulsación del teclado int 16h ;Invoca los servicios del teclado cmp al,"S" ;Si la tecla introducida es una "S" mayuscula y la bandera ZF= 1 loope LEER_CAR ; Entonces el ciclo se repite decrementando CX en 1 ;Si es diferente el valor a "S" mayuscyla y la bandera ZF=0 mov ah,0Eh ;Entonces pido la impresion de un caracter int 10h ;E invoco los servicios de pantalla, esto imprimira en pantalla el ultimo caracter introducido por teclado mov ah,0EH ;Pido la impresion de un caracter mov al,10 ;Pido imprimir el caracter 10 = nueva linea (ENNTER) int 10h ;Invoco los servicios de pantalla mov al,13 ;Pido la impresion de un retorno de carro int 10h ;Invoco los servicios de pantalla mov ax,4c00h ;Pido la terminacion del programa int 21h ;Invoco el servicio 21h end inicio ;Cierre de procedimiento
El programa anterior se repetirá 10 veces, según lo establecido en el registro CX
Si solo introducimos "S" el ciclo debe repetirse, en mi caso adicionalmente imprime el carácter "*".
De lo contrario el programa imprime la tecla que he introducido y termina su ejecución.
Comentarios
Publicar un comentario