Please support our Assembly advertiser: Programming Forums
Views: 2093 | Replies: 2
![]() |
•
•
Join Date: Apr 2007
Posts: 1
Reputation:
Rep Power: 0
Solved Threads: 0
Hi all,
I've been trying to understand how an assembler assembles the JMP command. Consider the following code:
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 (
Thanks
--Amr
I've been trying to understand how an assembler assembles the JMP command. Consider the following code:
AGAIN:
OUT 0,AL
JMP AGAINThe assembler turns this into the following hex:
E6 00 EB FC
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
•
•
Join Date: Sep 2006
Posts: 293
Reputation:
Rep Power: 3
Solved Threads: 18
•
•
•
•
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:
E6 00 EB FC
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.
![]() |
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)






Linear Mode