Saturday, 9 August 2014

8086 program to print out fibonacci series

This is an 8086 program to print out the fibonacci series. If you have any doubts please let me know.

.MODEL SMALL
.DATA
MSG DB 0AH,0DH,'ENTER THE LIMIT:','$'
LIMIT DB 20,0,20 DUP('$')
NEW DB 0AH,0DH,24H
FIBO DB 0AH,0DH,'FIBONACCI SERIES:',0AH,'$'
.CODE
START:
MOV AX,@DATA
MOV DS,AX

LEA DX,MSG
MOV AH,09H
INT 21H

LEA DX,LIMIT
MOV AH,0AH
INT 21H


ADD DX,02H
MOV SI,DX
MOV DI,DX
INC DI
MOV CX,0000H
MOV CX,[SI]
MOV AH,CL
MOV AL,CH
SUB AX,3030H
AAD
MOV CX,AX
MOV AX,0001H
MOV BX,0001H
INC SI
MOV [SI], AL
DEC CX
JZ CONT
INC SI
MOV [SI],BL
DEC CX
JZ CONT
AGAIN: ADD AL,BL
MOV [SI+01],AL
MOV BL,[SI]
INC SI
LOOP AGAIN

CONT:
LEA DX,FIBO
MOV AH,09H
INT 21H
MOV BL,24H
MOV [SI+1],BL

FIB:
MOV AX,0000H
MOV AL,[DI]
CALL DISPLAY
INC DI
MOV BL,[DI]
CMP BL,24H
JNE FIB
.EXIT



DISPLAY PROC    
   MOV BX, 000AH  
   MOV DX, 0000H  
   MOV CX, 0000H  
   
L1:  MOV DX, 0000H  
   DIV BX    
   PUSH DX    
   INC CX    
   CMP AX,00H  
   JNE L1  
   
L2:  POP DX    
   ADD DX, 30H    
   MOV AH, 02H    
   INT 21H    
   LOOP L2
   LEA DX,NEW
   MOV AH,09H
   INT 21H
   RET      
DISPLAY ENDP
END START

3 comments:

  1. dude i'am run out of words how to thnx you.
    i got 20 mark by this. thnx a lot

    ReplyDelete

  2. Your program does not exist the limiter, it goes beyond the limiter

    ReplyDelete
  3. This is not giving correct output.

    ReplyDelete