??? 06/13/11 14:35 Read: times |
#182638 - indeed Responding to: ???'s previous message |
Maarten Brock said: Yes I forgot about that one... :-(
4. CJNE also changes the carry, it is often used by SDCC Maarten Brock said: I think Keil's assembler knows to optimize LJMPs to AJMPs where possible, somebody please correct me if this is not true.
10. AJMP/ACALL is only relevant on 2kB limited devices IMHO, otherwise they just use up expensive instructions Maarten Brock said: 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).
12. Are ALE pulses only skipped for MOVX or also for long instructions? 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 |
Topic | Author | Date |
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 |