Turbo Assembler
- Código
.model small ;se
define el modelo de memoria
.stack ;se
define el tamano de la pila
datos segment ;se
define las variables
nombre db, 13,10,
"Multiplicacion de dos numeros ingresados por teclado",13,10,13,10,'$'
;nombre del programa
mensaje1 db
"Ingrese el primer numero: ",13,10,'$' ;primer numero de la multiplicacion
mensaje2 db
"Ingrese el segundo numero: ",13,10,'$'
;segundo numero de la multiplicacion
mensaje3 db
"El resultado es: ",'$' ;resultado en pantalla
suma db 0
n1 db 0
n2 db 0
byteh db 0
bytel db 0
salto db " ",13,10,'$' ;salto de fila
datos ends
codigo segment
;comienzo de codigo
assume cs:codigo,
ds: datos
inicio proc far
mov ax,datos ;direccionamiento
mov ds,ax ;aqui es donde se guarda
;Limpiar Pantalla
mov ah, 00
mov al, 03h
int 10h
;Inicializacion de resgistros en 0
mov ah,02h
mov dl,00
int 10h
mov ah, 09h ;lee
el mensaje
lea dx,nombre
int 21h
;Instrucciones para la realizacion de la multiplicacion.
mov ah,09h
lea
dx,mensaje1 ;mensaje de solicitud del
primer numero
int 21h
mov ah,01h ;lee los caracteres del teclado
int 21h
;Conversion del
numero.
sub al,30h ;hace la conversion ascii
mov n1,al ; se pasaa la variable n1
int 21h
mov ah,09h ;impresion de caracteres
lea dx,
salto ;saltar de fila
int 21h
mov ah,09h
lea dx, mensaje2 ;mensaje del segundo numero
int 21h
mov ah,01h ;leer y mostrar numero digitado
int 21h
sub al,30h ;conversion ASCII
mov n2,al ;se pasa ala variable n2
int 21h
;Operacion de
sumas sucesivas
mov cl,n2
sumar:
mov al,n1 ;movemos el registro al a el valor
del numero 1
add al,suma ;sumamos a al el valor de la suma
mov suma,al ;movemos a suma el valor del resultado
loop sumar
mov ah, 09h ;impresion de caracteres
lea dx,
mensaje3 ;impresion del mensaje 3
int 21h
mov al,suma
aam ;corrige el resultado de la
multiplicacion de datos ASCII en el registro ax
mov bytel,al
mov byteh,ah
mov ah,02h
mov dl,byteh
add dl,30h
int 21h
mov dl,bytel
add dl,30h
int 21h
mov ah,09h ;ipresion de caracteres
lea
dx,salto ;salto de fila
int 21h
salir: ;retorna el mando al DOS
mov ax, 4c00h
int 21h
inicio endp
end inicio
No hay comentarios:
Publicar un comentario