在指令编码表中使用时,"r/m8"是什么意思?

use*_*763 5 x86 assembly

此页面中ADD说明文档包含下表,其中包含各种编码:

我认为这imm8意味着一个大小为8位的立即值(例如:) BYTE 123.

相信对于r32装置的寄存器的大小是32位(例如:EAX)

但是什么r/m8意思呢?这是否意味着我可以使用大小为8位的寄存器(例如:) AL]或大小为8位的存储单元(例如:) BYTE [myvar]

Jes*_*ter 9

该网页是官方英特尔文档的html转换.你应该阅读它,特别是因为它在操作码汇总表中有一节3.1.1.3指令栏,它说:

r/m8 - 字节操作数,它是字节通用寄存器(AL,CL,DL,BL,AH,CH,DH,BH,BPL,SPL,DIL和SIL)的内容或来自存储器的字节.字节寄存器R8L - R15L在64位模式下使用REX.R可用.

是的,这意味着你所说的.

  • 在您在英特尔手册中看到的所有缩写中,这是更直观的缩写之一."r"表示寄存器,"m"表示存储器,数字表示操作数大小.方式比["mod-reg-r/m byte"](http://www.c-jump.com/CIS77/CPU/x86/X77_0270_modrm_byte.htm)更清晰. (2认同)