Elaborar un programa que permita generar la siguiente serie: X = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
DESCARGAR
.model small ;declrando directivas
.stack 100
.data ;directiva para declarar variables a utilizar
num db 11 ;almacenara el valor en incremento de los # pares
alta db 0 ;almcenara la parte alta de AX (AL)
baja db 0 ;almcenara la parte baja de AX (AH)
msj db 'X = $'
msjc db ', $'
.code
inicio:
mov dx, @data ;direccionamiento de registros
mov ds, dx
mov ah, 00h ;cls limpia pantalla
mov al, 03
int 10h
lea dx, msj ;imprime los primeros msg
mov ah, 09h
int 21h
mov cx, 11 ;registro contador hasta 10
serie: ;etiqueta del ciclo (serie)
sub num, 01h ;suma de 2 en la variable num (incremento)
mov al, num ;transfiere a AL el valor de num (incremento)
aam ;ajuste ASCII
mov alta, ah ;almacena en la variable alta la parte alta del AX (ah)
mov baja, al ;almacena en la variable baja la parte baja del AX (al)
;obtenida esta logica solo es asunto de acoplar la impresion de los resultados
mov ah, 02h ;imprime el valor previo a procesar
mov dl, alta ;transfiere a dl la variable alta
add dl, 30h ;convierte a sistema hexadecimal
int 21h ;llama a la funcion para ejecutar los servicios
;se genera la misma situacion ahora con la variable baja
mov ah, 02h
mov dl, baja
add dl, 30h
int 21h
lea dx, msjc ;imprime tercer msg
mov ah, 09h
int 21h
loop serie ;retorno y cierra del ciclo (loop)
mov ax, 4c00h ;exit salida del programa
int 21h
end ;fin de la directiva code
No hay comentarios:
Publicar un comentario