2
A
回答
2
有使用FF
作为操作码实际上许多指令:
INC rm16 FF /0
INC rm32 FF /0
INC rm64 FF /0
DEC rm16 FF /1
DEC rm32 FF /1
DEC rm64 FF /1
CALL rm16 FF /2
CALL rm32 FF /2
CALL rm64 FF /2
CALL FAR mem16:16 FF /3
CALL FAR mem16:32 FF /3
JMP rm16 FF /4
JMP rm32 FF /4
JMP rm64 FF /4
JMP FAR mem16:16 FF /5
JMP FAR mem16:32 FF /5
PUSH rm16 FF /6
PUSH rm32 FF /6
PUSH rm64 FF /6
正如你可以看到,/d部分是操作码之后的字节举行了3位序列(即所谓的MODR/M字节),这有助于区分正确的指令。
从英特尔参考文档:引用的操作数在存储器
许多指令具有以下的主要操作码的寻址型规格 - ifier字节(称为MODR/M字节)。 ModR/M字节 包含三个信息字段:
•mod字段与r/m字段组合以形成32个可能的值:8个 寄存器和24个寻址模式。
•reg/opcode字段指定一个寄存器编号或 操作码信息的三个位。注册码/操作码字段的用途在主操作码 中指定。
•r/m字段可以指定一个寄存器作为操作数,或者它可以与 mod字段组合以编码寻址模式。有时,mod域和r/m域的某些组合用于表示某些 指令的操作码信息。
这样/d值实际上从REG /操作码字段萃取。当CPU加载第一个操作码时,它知道它应该读取其后的一个附加字节,并读取该字段以完成指令。
相关问题
- 1. x86解码指令操作码字节
- 2. x86操作码指令解码
- 3. 将i386操作码解码为指令
- 4. 编码汇编指令操作码来
- 5. 解码68K指令
- 6. 如何编辑指令的操作码?
- 7. 流行的x64指令(操作码+ RD)
- 8. 区分相同操作码的指令
- 9. LEA指令操作码生成
- 10. 什么是8086 ESC指令操作码
- 11. 指令中的操作码数
- 12. x86指令到操作码转换
- 13. 在操作码指令中查找操作数的数量
- 14. 解码BNE MIPS指令
- 15. MIPS指令集的字节操作
- 16. 监视操作码
- 17. PowerPC操作码表?
- 18. 程序如何知道何时在扩展指令集中使用操作码?
- 19. 什么是指令集编码?
- 20. 通过指令集编码的指令地址
- 21. 指令缓存是否存储操作码?
- 22. 多个PowerPC指令具有相同的操作码
- 23. MIPS - 访问指令地址以获得操作码
- 24. 为什么这两个指令具有相同的操作码?
- 25. ActionScript - 两个不同指令的相同操作码?
- 26. 无法在机器指令中编码32位二进制操作码
- 27. 如何从操作码/机器码获取组装指令或助记符?
- 28. #if在roslyn中解析指令代码
- 29. 指令的解码形式是什么?
- 30. 在ARM/Thumb(IOS)上解码BLX指令
您提供的信息不足。这个操作码在哪里起作用?它是在真实的硬件还是在模拟器中?在真实的硬件中,x86 cpu为 – shazin
。 – user2622189