Microprocessor 8086 Assembly-Fibonacci Series
Simple Microprocessor 8086 Assembly-Fibonacci Series
;DEVELOPED BY ANANDHU ARJUNAN.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB "ENTER THE LIMIT:$"
MSG2 DB 13,10,"THE SERIES IS:$"
MSG3 DB "0$"
MSG4 DB "0,1$"
TEMP DW 0000
F DW 0000
T DW 0000
S DW 0001
N DW 0000
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG1
CALL MESSAGE
CALL INPUT
MOV TEMP,BX
CMP TEMP,01
JZ FIN1
CMP TEMP,02
JZ FIN2
SUB TEMP,0002
XOR AX,AX
XOR BX,BX
MOV AX,F
MOV BX,AX
CALL OUTPUT
CALL COMMA
MOV BX,S
CALL OUTPUT
CALL COMMA
LOOP1:
MOV AX,F
MOV BX,S
MOV T,BX
ADD BX,AX
MOV N,BX
CALL OUTPUT
CALL COMMA
XOR CX,CX
MOV CX,T
MOV F,CX
MOV S,BX
DEC TEMP
JNE LOOP1
JMP FIN
FIN1:
LEA DX,MSG3
CALL MESSAGE
JMP FIN
FIN2:
LEA DX,MSG4
CALL MESSAGE
JMP FIN
FIN:
MOV AH,4CH
INT 21H
MAIN ENDP
INCLUDE IO.ASM
END MAIN
io.asm
---------------------
.DATA
TEN DW 0AH
.CODE
NEWLINE PROC
MOV AH,02H
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
RET
NEWLINE ENDP
COMMA PROC
MOV AH,02H
MOV DL,44
INT 21H
RET
COMMA ENDP
OUTPUT PROC
XOR CX,CX
XOR DX,DX
MOV AX,BX
REPEAT:
XOR DX,DX
DIV TEN
PUSH DX
INC CX
CMP AX,0
JNE REPEAT
MOV AH,02H
DISP:
POP DX
ADD DL,30H
INT 21H
LOOP DISP
RET
OUTPUT ENDP
INPUT PROC
XOR BX,BX
BEGIN :
MOV AH,01H
INT 21H
CMP AL,0DH
JE EXIT
SUB AL,30H
XOR AH,AH
XCHG AX,BX
MUL TEN
ADD BX,AX
JMP BEGIN
EXIT:
RET
INPUT ENDP
MESSAGE PROC
MOV AH,09
INT 21H
RET
MESSAGE ENDP
Output
ENTER THE LIMIT:3
THE SERIES IS :0,1,1
Comments
Post a Comment