??? 03/27/05 19:17 Read: times |
#90488 - Do I really have to? Responding to: ???'s previous message |
Mike,
As you say, at the end of the day, it is always the developer's problem, and yes, the problem is related to absolute addressing. On an 8051, PUSH, POP, and register to register MOV all use absolute addressing, and this may get overlooked. [C0 xx] PUSH aR0 [A8 xx] MOV R0,aR7 ; xx is the absolute address In Keil A51, there is the RB(N) directive, which fixes aR0-aR7 to the correct absolute address. In Keil C51, there is a "using N" directive appended to the function defintion. Recent versions have an option to produce (larger, slower) bank independent code (NOAREGS/AREGS). BEC. |