Как процессор различает эти две команды?x64 Intel Opcode 81/2
81/2 iw - Добавить с переносом imm16 в r/m16.
81/2 id - Добавить с переносом imm32 в r/m32.
Единственное, что я могу видеть в инструкции, это размер непосредственного значения, и этого недостаточно, не так ли? Я имею в виду, что если сразу два байта, инструкция может быть сразу после него, и процессор не будет знать, было ли это 4 байта немедленного или 2 байта и другая инструкция.
Также я должен добавить префикс REX к ним для 64-разрядной операции или просто REX.R для 9-16 регистров?
Итак, в 64-битном режиме нет возможности использовать 16-битный регистр? –
и почему он говорит, что 16-разрядная команда действительна в 64-битном режиме? –
Если вы добавите переопределение размера операнда, оно станет 'adc rm16, imm16' в 32-битном и 64-битном режимах. – harold