martes, 12 de agosto de 2014

EJERCICIO P

ATRÁS
MENÚ DEL PORTAFOLIO.

Elaborar un programa que permita generar los primeros 12 términos de la tabla de multiplicar del 4. Ejemplo: 4 x 1 = 4 … 4 x 12 = 48
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 
num1 db 0
alta db 0 ;almcenara la parte alta de AX (AL)
baja db 0 ;almcenara la parte baja de AX (AH)
msjs db '4 X $'
msji db ' = $'
.code
inicio:
mov dx, @data ;direccionamiento de registros
mov ds, dx

mov cx, 12 ;registro contador hasta 10
serie: ;etiqueta del ciclo (serie) 
add num, 01h ;suma de 2 en la variable num (incremento)


mov ah,09h
mov dx,offset msjs
int 21h

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
;remplaza el 10, 13 para los saltos de linea 
;aplicado en las variables usando el servicio 02h

add num1, 04h ;suma de 2 en la variable num (incremento)


mov ah,09h
mov dx,offset msji
int 21h

mov al, num1 ;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
;remplaza el 10, 13 para los saltos de linea 
;aplicado en las variables usando el servicio 02h
mov ah, 02h
mov dl, 0ah ;remplaza el 10
int 21h
mov ah, 02h
mov dl, 0dh ;remplaza el 13
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