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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/13/11 14:35
Read: times


 
#182638 - indeed
Responding to: ???'s previous message
Maarten Brock said:
4. CJNE also changes the carry, it is often used by SDCC
Yes I forgot about that one... :-(
Maarten Brock said:

10. AJMP/ACALL is only relevant on 2kB limited devices IMHO, otherwise they just use up expensive instructions
I think Keil's assembler knows to optimize LJMPs to AJMPs where possible, somebody please correct me if this is not true.
Maarten Brock said:

12. Are ALE pulses only skipped for MOVX or also for long instructions?
Only for MOVX, otherwise it keeps ticking (and if code memory is external, PSEN keeps pulsing, core keeps fetching code from the next instruction's address and then throwing it away until it needs it).

MOVX is twice as long as MOVC/code fetch to accomodate for slooooow memory-mapped peripherals. Code memory fetches and MOVC last 6 clock ticks (that's why ALE ticks once per 6 clock ticks) and the read pulse (/PSEN) is 3 ticks from it, in the "biblical" 12MHz device it means that a roughly 300ns code memory would do. MOVX leaves the /WR or /RD "window" "open" for whole 6 clock ticks, so it allows for >500ns memories/devices; but if there would be an ALE pulse in midst of this "window", the address latch would catch either the written or read byte, spoiling the lower 8 bits of address.

Jan


List of 17 messages in thread
TopicAuthorDate
8051 core quiz            01/01/70 00:00      
   quizes are out of fashion these days...            01/01/70 00:00      
      I did it....            01/01/70 00:00      
         thanks            01/01/70 00:00      
      missed CJNE            01/01/70 00:00      
         indeed            01/01/70 00:00      
            I guess a quite frequent oversight            01/01/70 00:00      
            RE: optimize LJMPs to AJMPs, etc            01/01/70 00:00      
      Maybe?            01/01/70 00:00      
         caught again!            01/01/70 00:00      
            Most common 8051 assembly mistake?            01/01/70 00:00      
               Not just 8051?            01/01/70 00:00      
                  Different assemblers have different probabilities            01/01/70 00:00      
                     Conceptual & Typographical errors            01/01/70 00:00      
                        some assemblers do            01/01/70 00:00      
                        Readability helps            01/01/70 00:00      
                     99's            01/01/70 00:00      

Back to Subject List