Programa lectura LOOPE

Hoy veremos un ejemplo  de usos condicionales en ensamblador. hoy se usaran los LOOPS LOOPE


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

Entradas más populares de este blog

Uso de la multiplicacion con ensamblador

Programa de resta en ensamblador

Librerías para graficar en Python