martes, 12 de agosto de 2014

EJERCICIO L


ATRÁS

MENÚ DEL PORTAFOLIO.

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

DESCARGAR



.model small ;declrando directivas

.stack 100

.data ;directiva para declarar variables a utilizar
num db 1 ;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 'X = $'
msji db '/$'
msjm db ' + $'
.code
inicio:
mov dx, @data ;direccionamiento de registros
mov ds, dx
mov ah,09h
mov dx,offset msjs
int 21h
mov cx, 9 ;registro contador hasta 10
serie: ;etiqueta del ciclo (serie) 
add num, 00h ;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
;remplaza el 10, 13 para los saltos de linea 
;aplicado en las variables usando el servicio 02h
add num1, 01h ;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
lea dx, msjm ;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