Подтвердить что ты не робот

Заменяет ли REX.B работу с инструкцией MOVSS?

Я генерирую следующую инструкцию для 64-битного x86:

41 F3 0F 10 46 10       movss   XMM0,014h[R14]

К сожалению, это приводит к сбоям в этой линии. gdb разбирает его как:

0x0000000000402054 <+320>:   rex.B
0x0000000000402055 <+321>:   movss  0x14(%rsi),%xmm0

Обратите внимание, что переопределение rex.B не распознается, а индекс - RSI вместо R14.

Недействительна ли инструкция? Я не могу найти никаких указаний на то, что эта кодировка недействительна в инструкции для 64-разрядной команды AMD.

objdump также не может распознать его как действительную инструкцию:

41                      rex.B
f3 0f 10 46 10          movss  0x10(%rsi),%xmm0

Что здесь происходит?

4b9b3361

Ответ 1

Наконец, я понял это. Байт rex занимает вторую позицию для этой команды, как в:
F3 41 0F 10 46 10