Para que sirve el desplazamiento en las instruciones aparte de Effective address

Iniciado por FFernandez, 20 Julio 2020, 21:20 PM

0 Miembros y 1 Visitante están viendo este tema.

FFernandez

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?????