Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
04/21/04 07:38
Read: times


 
#68947 - RE: Keil C51 uses DJNZ
Responding to: ???'s previous message
hi,
the compiler might "suddenly" stop using DJNZ; eg, if all the available registers get used up for other things

Andy, if there is not enough registers for DJNZ then compiler uses memory locations because DJNZ may be used both with registers and direct memory. For example, next code:
	volatile unsigned char x;
	unsigned char a=0;

	for (x=200; x > 0; x--)
		a++;
is compiled into:
       CLR      A
       MOV      R7,A
       MOV      0x08,#0xC8
FOR_CYCLE:
       INC      R7
       DJNZ     0x08,FOR_CYCLE

Regards,
Oleg

List of 18 messages in thread
TopicAuthorDate
Keil Halt            01/01/70 00:00      
   Use Assembler.            01/01/70 00:00      
   RE: Keil Halt            01/01/70 00:00      
      RE: Keil C51 uses DJNZ            01/01/70 00:00      
         RE: Keil C51 uses DJNZ            01/01/70 00:00      
            RE: Keil C51 uses DJNZ            01/01/70 00:00      
   Optimise your C            01/01/70 00:00      
      RE: DJNZ            01/01/70 00:00      
   RTFM?            01/01/70 00:00      
      RE: RTFM?            01/01/70 00:00      
         RE: RTFM?            01/01/70 00:00      
            RE: RTFM?            01/01/70 00:00      
               RE: RTFM?            01/01/70 00:00      
                  RE: RTFM?            01/01/70 00:00      
                     Keil Halt - Primer            01/01/70 00:00      
                        RE: Keil Halt - Primer            01/01/70 00:00      
                           This way lies disaster!!            01/01/70 00:00      
   RE: Keil Halt            01/01/70 00:00      

Back to Subject List