【发布时间】:2021-05-18 12:49:18
【问题描述】:
我正在尝试解码指令,目前在 80x86 16 位机器上,我在解码没有立即值作为源操作数的指令时没有很多问题,当源操作数不再是寄存器或位置存储器,但立即值。 以下指令我会这样解码:
mov ax, 3
101110|11| |11|000|000| 00000011 -> 3 with sign expansion
| | | register AX
s = 1 | null
w = 1 |
the second operand is a register
反而不公平。 这是正确的解码:
mov ax, 3
10111000 00000011 0000000
如果源操作数是立即数,有人可以向我解释一下解码是如何工作的吗?
【问题讨论】:
-
一些操作码不占用 ModRM 字节;你必须检查手册。 felixcloutier.com/x86/mov / ref.x86asm.net/coder32.html
标签: assembly x86 machine-code instruction-encoding