print macro msg
lea dx,msg
mov ah,09h
int 21h
endm
read macro n,j1,j2
mov cx,0ah
j1:mov ah,01h
int 21h
cmp al,0dh
je j2
sub al,30h
mov bl,al
mov ax,n
mul cx
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,'Fibonacci Series: $'
space db ' $'
n dw 0
a dw 0
b dw 1
fib dw 0
.code
main proc
mov ax,@data
mov ds,ax
print msg1
;reading 1st multidigit number
read n,jump1,jump2
print msg2
jump3:print space
mov ax,fib
call printmul
mov ax,b
mov a,ax
mov dx,fib
mov b,dx
add ax,dx
mov fib,ax
cmp n,ax
jnc jump3
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