Coding
call qword ptr [rax] call qword ptr [rcx]
is an
FF 10 FF 11
I see where the last digit (0/1) comes from (register number), but I'm trying to figure out where the second last digit (1) comes from. According to the AMD64 Architecture Programmers Manual Volume 3: General Purpose and Systems Guide p. 56,
"/ digit - indicates that the ModRM byte indicates only one operand of registers or memory (r / m). This digit is set by the ModRM reg register and is used as an extension of the instruction code. Valid digits range from 0 to 7.
An equivalent Intel document says something similar, and a case-sensitive call indicated as
FF /2
and ... I have no idea what this means, or how 2 in the specification are combined with a high 1 sign in the end result. Is there any other explanation available anywhere?
source share