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