martes, 12 de agosto de 2014

EJERCICIO N

ATRÁS

MENÚ DEL PORTAFOLIO.

Elaborar un programa que permita generar la siguiente serie: X = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

DESCARGAR


.model small ;declrando directivas
.stack 100
.data ;directiva para declarar variables a utilizar
num db 0 ;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 = 00, $'
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, 10 ;registro contador hasta 10
serie: ;etiqueta del ciclo (serie) 

add 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