lunes, 17 de junio de 2013

Tabla de multiplicar de un número

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:


1 comentario: