This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Relative jumps in .SRC files

After compiling a .C file with the SRC directive to produce an assembler output file I have difficulty understanding releative jumps in the .src file.

e.g.
the line

JC $ + 5H
LJMP ?C0007
INC R7

Would appear to mean that, when there is a carrythe PC is incremented, first by 2 to get past the jump instruction, and then by a further 5 bytes.

However, when there is a carry, the code should just bypass the LJMP instruction and execute the INC R7 instruction (I have examined this code in detail). i.e. a function equivalent is

JC label
LJMP ?C0007
label: INC R7

The LJMP instruction is only 3 bytes big therefore the offset would jump past the INC R7 instruction (assuming I interpreted the $ +5H offset correctly).

The executable works correctly so could anybody tell me where I am going wrong ???????????????


Thank you



0