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