Sunday, January 9, 2011

Multiplication Table

Share Orkut
        print macro msg         lea dx,msg         mov ah,09h         int 21h     endm     read macro n,j1,j2     j1:mov ah,01h         int 21h         cmp al,0dh         je j2         sub al,30h         mov bl,al         mov ax,n         mov dx,0ah         mul dx         xor bh,bh         add ax,bx         mov n,ax         jmp j1     j2 :nop     endm     .model small     .stack 100h     .data         msg1 db 10,13,'Enter the number: $'         msg2 db 10,13,'Enter the limit: $'         msg4 db 10,13,'$'         msg5 db ' * $'         msg6 db ' = $'         msg7 db 10,13,'Multiplication table$'         num dw 0         limit dw 0         pro dw 0         m dw 1     .code     main proc         mov ax,@data         mov ds,ax         print msg1         ;reading 1st multidigit number         read num,jump1,jump2         print msg2         ;reading 2nd multidigit number         read limit,jump3,jump4         ;printing multiplication table         mov cx,limit         print msg7     loop1:mov bx,m         mov ax,num         mul bx         push cx         mov pro,ax         print msg4         mov ax,num         call printmul         print msg5         mov ax,m         call printmul         print msg6         mov ax,pro         call printmul         inc m         pop cx         loop loop1         mov ah,4ch         int 21h     main endp     printmul proc         mov bx,000ah         xor cx,cx         ;push into stack     l2:xor dx,dx         div bx         push dx         inc cx         cmp ax,0000h         jne l2         ;pop from stack     l3:pop dx         add dl,30h         mov ah,02h         int 21h         loop l3         ret     printmul endp     end

No comments:

Post a Comment