Hago un programa para preguntar las tablas de multiplicar. Por ahora solo trato de imprimirlas, y es que mi problema es que el bucle no continúa, se detiene luego de imprimir el primer resultado. Si alguien puede ayudarme le agradezco .
Código
;; pregunta por las tablas de multiplicar del 2 al 10 %macro read 2 mov eax, 3 mov ebx, 0 mov ecx, %1 mov edx, %2 int 0x80 %endmacro %macro print 2 mov eax, 4 mov ebx, 1 mov ecx, %1 mov edx, %2 int 0x80 %endmacro section .data msg db "Elige una tabla de Multiplicar del 2 al 10", 0xa lenmsg equ $-msg nwln db 0xa, 0xd lennwln equ $-nwln section .bss prod resb 3 op resb 1 section .text global _start _start: print msg, lenmsg read op, 2 mov ecx, 10 mov ax, 1 multiplica: mov bx, [op] sub bx, '0' push ax mul bx cmp ax, 90 jg m90 aam ; separa lo que hay en al. ah=decena al=unidad add al, 48 add ah, 48 mov [prod+0], byte '0' mov [prod+1], ah mov [prod+2], al push ecx print prod, 3 print nwln, lennwln pop ecx pop ax inc ax cmp ecx, 1 je exit loop multiplica m90: aam ; separo al. ah=10 al=0 add al, 48 mov [prod+2], al mov al, ah ; muevo ah=10 a al aam ; separo lo que hay en al. ah=1, al=0 add al, 48 add ah, 48 mov [prod+1], al ; muevo la decena mov [prod+0], ah ; muevo la centena print prod, 3 exit: mov eax, 1 mov ebx, 0 int 0x80