Originally Posted by
amrbekhit
Hi all,
I've been trying to understand how an assembler assembles the JMP command. Consider the following code:
AGAIN:
OUT 0,AL
JMP AGAIN
The assembler turns this into the following hex:
The FC at the end corresponds to a displacement of -4. I would have thought that the displacement would only need to be -3 (FC->EB, EB->00, 00->E6). What is the reason for this extra move? I'm guessing this is related to the 8088 parallel fetch and execution.
Thanks
--Amr
Yeah, the program counter automatically points to the next instruction before the actual execution, so the jump back to FC is counted as well.
Last edited by Colin Mac : May 4th, 2007 at 12:26 pm.