Hola de nuevo, en este ejemplo les muestro la tabla de mutiplicar del 1 al 10 de un número digitado por el usuario, la finalidad de este ejemplo es el control de un ciclo haciendo una comparación y usando etiquetas (No se usa loop para el control del ciclo).
Funcionamiento del programa:
1.- Se pide un número al usuario.
2.- El programa debe imprimir la tabla de multiplicar del 1 al 10 del número digitado.
.model small
.stack 64
.data
num db 0 ;Variable para reslpaldar el número digitado por el usuario.
.code
inicio:
mov ah,01h ;Pedir el número al usuario
int 21h
sub al,30h
mov num,al ;guardamos el número digitado en num.
mov cl,01h ;Iniciamos el contador en 1
tabla:
mov al,num ;movemos al número guardado en num a AL
mul cl ;se multiplica CL por AL, el resultado se guarda en AL
aam ;ajuste ASCII para multiplicación
mov bx,ax ;Se respalda la multiplicación el BX
mov ah,02h
mov dl," " ;imprimimos un espacio
int 21h
mov ah,02h
mov dl,bh ;Imprime la parte alta del registro BX, si el número es mayor de 9 imprime las decenas
add dl,30h ;Suma 30 para imprimir el número real.
int 21h
mov dl,bl ;imprime la parte baja de BX o las unidades.
add dl,30h
int 21h
inc cx ;incrementa nuestro contador
cmp cx,11 ;compara contador igual a 11
ja salir ; Si es mayor sale del programa
jb tabla ;si es menor se repite el ciclo.
salir:
mov ah,4ch
int 21h
end inicio
Programa en ejecución:
como se haría solo en debug? no puedo definir variables
ResponderEliminar