问题
I'm making a minimalistic assembler for 8088. I would like to know what is the longest possible byte instruction combination?
At the moment, the longest instruction I found is 6 bytes.:
add word [0134], 0032
which translates to
81 06 34 01 32 00
Is there anything longer than 6 bytes?
Also a Sidequestion, I understand the whole 6 bytes completely except for the 4th byte.
like for example:
1st byte means: add with 16bit of immediate data
2nd byte means: Base pointer + displacement command
3rd byte means: the displacement
5-6 byte means: the 16bit data
But I have no idea what does the 4th byte means, specifically the "1" value.
What does that mean?
回答1:
The longest byte the 8088 supports is 4-bytes for word size arithmetic type functions that you've already identified. These 4-byte instructions do not contain the 3rd byte displacement you suggest. The '1' refers to the trailing bit of the first 1 byte, not an entire byte in itself.
Reference: The 8088 Data Sheet - Page 26-30
来源:https://stackoverflow.com/questions/22668315/what-is-the-longest-byte-instruction-possible-in-8088