Solo veo que se añaden 00 00 00 00 Ceros.............. en este ejemplo:
Example A-2. Look-up Example for 2-Byte OpcodesLook-up opcode 0FA4050000000003H for a SHLD instruction using Table A-3.•The opcode is located in row A, column 4. The location indicates a SHLD instruction with operands Ev, Gv, and Ib. Interpret the operands as follows:— Ev: The ModR/M byte follows the opcode to specify a word or doubleword operand.— Gv: The reg field of the ModR/M byte selects a general-purpose register.— Ib: Immediate data is encoded in the subsequent byte of the instruction.•The third byte is the ModR/M byte (05H). The mod and opcode/reg fields of ModR/M indicate that a 32-bit displacement is used to locate the first operand in memory and eAX as the second operand.•The next part of the opcode is the 32-bit displacement for the destination memory operand (00000000H). The last byte stores immediate byte that provides the count of the shift (03H).•By this breakdown, it has been shown that this opcode represents the instruction: SHLD DS:00000000H, EAX, 3.
En este ejemplo ocurre lo contrario
3DNOW ?????
WEB Utlizada https://defuse.ca/online-x86-assembler.htm#disassembly
PFMUL mm1, [ebx+eax*4+10]
67 0f 0f 4c 83 0a b4
Coincide con el ejemplo del manual https://www.amd.com/system/files/TechDocs/21928.pdf
En teoria el 4C es el MOD/rm
En binario 01 001 100 01 disp 8 100 requiere SIB 001 ECX
el SIB 83
en Binario 10 000 011 10 *4 000 EAX 011 EBX
0A es el desplazamiento = 10 en decimal
En este ejemplo el Desplazamiento es utilizado?????