What does "r / m8" mean when used in command coding tables?

The documentation ADD

from this page contains the following table with different encodings:

I believe that imm8

means an immediate value that is 8 bits in size (ex:) BYTE 123

.

And I believe that r32

is the register, the size of which is 32 bits (for example EAX

)

But what does it mean r/m8

? Does this mean that I can use an 8 bit register (ex:) AL]

or memory that is 8 bits (ex:) BYTE [myvar]

?

+3


source to share


1 answer


This web page is a html conversion of Intel official documentation. You should read this instead, especially since it has section 3.1.1.3 Command Column in the Opcode Summary Table which says:

r / m8 is a byte operand that is either the contents of a general register byte (AL, CL, DL, BL, AH, CH, DH, BH, BPL, SPL, DIL, and SIL) or a byte from memory. Byte registers R8L-R15L are accessible using REX.R in 64-bit mode.



So, yes, that means what you said.

+7


source







All Articles