a call to delay subroutine results infinite loop

Thread Starter

raghav442

Joined Jan 28, 2013
1
I'm using keil uvision 4 and learning programming for AT89s52 , I'm using 12MHZ frequency.


I have written a subroutine for a delay of 10 micro sec which is in another file called DELAY.ASM and made a call from DELAYCALL.ASM to it, but the call results in an infinite loop.I just dont have a clue why this behaviour, please help?clarify this phenomenon


DELAYCALL.ASM

$INCLUDE(DELAY.ASM)
CSEG AT 0
ACALL DELAY10MICROSEC
END


DELAY.ASM


DELAYS_A SEGMENT CODE
RSEG DELAYS_A
DELAY10MICROSEC:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
 

Meixner

Joined Sep 26, 2011
117
Assuming you are using asm. you cannot stop the program with an END statement, the processor will continue executing through the entire program memory and wrap around to zero and loop over and over again.
 
Top