8088中最长的字节指令是什么? [英] What is the longest byte instruction possible in 8088?
问题描述
我正在为8088做一个简约的汇编器.我想知道什么是最长的字节指令组合?
I'm making a minimalistic assembler for 8088. I would like to know what is the longest possible byte instruction combination?
此刻,我发现的最长指令是6个字节.
At the moment, the longest instruction I found is 6 bytes.:
add word [0134], 0032
翻译为
81 06 34 01 32 00
是否有超过6个字节的内容?
Is there anything longer than 6 bytes?
还有一个疑问,我完全理解除了第4个字节外的全部6个字节.
Also a Sidequestion, I understand the whole 6 bytes completely except for the 4th byte.
例如:
第一个字节表示:立即数加上16位
1st byte means: add with 16bit of immediate data
第二个字节表示:基本指针+位移命令
2nd byte means: Base pointer + displacement command
第3个字节表示:位移
5-6字节表示:16位数据
5-6 byte means: the 16bit data
但是我不知道第4个字节是什么意思,特别是"1"值.
But I have no idea what does the 4th byte means, specifically the "1" value.
那是什么意思?
推荐答案
对于已经确定的字长算术类型函数,8088支持的最长字节为4个字节.这些4字节指令不包含您建议的第3字节位移. "1"指的是前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.
参考: 8088数据表-第26-30页
这篇关于8088中最长的字节指令是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!