I was trying to find the nth Fibonacci number e.x n=3, output = 1
so my logic was this
a = 0
b = 1
input n
si 0
n>2
loop
temp = b
b = a+b
a = b
loop if si/=cx
print b
This is my pseudo code logic. When I tried to implement this I am stuck in an infinite loop
.MODEL SMALL
.STACK 100h
.DATA
 STRING0 DB 'Enter INDEX $'           
.CODE
    MAIN PROC
        MOV AX,@DATA
        MOV DS,AX  
        
        LEA DX, STRING0  
        MOV AH,9
        INT 21H  
        
        
        MOV AH, 2  
        MOV DL,0AH    ;NEW LINE
        INT 21H
        MOV DL,0DH 
        INT 21H   
        
  
        MOV AH,1
        INT 21H 
        SUB CX,CX
        MOV CL,AL
        MOV SI,0
        MOV AX,0
        MOV BX,1
        
        LOOP1:
        
        PUSH BX
        ADD BX,AX
        POP AX
        INC SI
        
        LOOP LOOP1
             
        MOV DX,BX
        MOV AH,9
        INT 21H
         
     MAIN ENDP
END MAIN
I use EMU 4.08. The code us stuck at an infinite loop. I have no idea why
I did SUB cx,cx to move the AL value to CL and use CL as counter otherwise it gives me error that the code failed to send 8bit data to 16bit
 
     
    