??? 04/14/07 15:16 Modified: 04/14/07 16:09 Read: times |
#137259 - if it\'s almost correct, it\'s still wrong :-) Responding to: ???'s previous message |
Mike Stegmaier said:
For example, this code: ---- your mainline code here AJMP $ routine1: ---- your routine1 code here RET routine2: ---- your routine2 code here RET AJMP $ END is better than this code: ---- your mainline code here routine1: ---- your routine1 code here RET routine2: ---- your routine2 code here RET END Because the second code will run the 1st routine after the mainline ends whether or not the routine has been called. Also because of RET, it will run code at address R6:R7 (or is it R7:R6?) immediately after RET is executed, provided register bank 0 is used (which is the default setting), and SP remains at 07h. NO, not quite... ---- your mainline code here AJMP $ routine1: ---- your routine1 code here RET routine2: ---- your routine2 code here RET END is correct. and routine1: ---- your routine1 code here RET routine2: ---- your routine2 code here RET ---- your mainline code here AJMP $ END is also correct. Both assuming that your reset vector points to the beginning of your mainline code. there is no reason to add a redundant JMP.. You also stated "it will run code at address R6:R7 (or is it R7:R6?) immediately after RET is executed, " I thought that the stack was used to keep return adresses and the stack pointer will point to the locations containing the return address. regards Patrick |
Topic | Author | Date |
RxD to LCD problems | 01/01/70 00:00 | |
Serial ISR | 01/01/70 00:00 | |
work needed. | 01/01/70 00:00 | |
you need to control flow | 01/01/70 00:00 | |
confused | 01/01/70 00:00 | |
this is what I mean | 01/01/70 00:00 | |
OK | 01/01/70 00:00 | |
yes | 01/01/70 00:00 | |
Non-useful Serial ISR | 01/01/70 00:00 | |
AND it's stuck | 01/01/70 00:00 | |
thanks | 01/01/70 00:00 | |
I was going for optimization. | 01/01/70 00:00 | |
It's functioning | 01/01/70 00:00 | |
now stay consistent | 01/01/70 00:00 | |
Terminating code? | 01/01/70 00:00 | |
. | 01/01/70 00:00 | |
correct terminology | 01/01/70 00:00 | |
Missing the point | 01/01/70 00:00 | |
i get it now | 01/01/70 00:00 | |
Most, but not all | 01/01/70 00:00 | |
why on earth | 01/01/70 00:00 | |
if it\'s almost correct, it\'s still wrong :-) | 01/01/70 00:00 | |
ok | 01/01/70 00:00 | |
Not R6 and R7 | 01/01/70 00:00 | |
well it happend again | 01/01/70 00:00 | |
Q.E.D. | 01/01/70 00:00 | |
One further comment is needed | 01/01/70 00:00 | |
Hey | 01/01/70 00:00 | |
Dangerous recommendation | 01/01/70 00:00 | |
good point | 01/01/70 00:00 | |
they all do![]() | 01/01/70 00:00 | |
it 'trust' the same as 'experiment'? | 01/01/70 00:00 | |
more issues | 01/01/70 00:00 | |
Joe, please read this | 01/01/70 00:00 |