Я пытаюсь понять, почему инструкция меняется с add[eax],al на add[rax],al при смене режима декодирования с x86 на x64.
Байты инструкции: 00 00.
Я думаю, это может быть потому, что он используется для указания места в памяти, но я не смог найти ничего, что могло бы доказать это.
Это связано с тем, что размер адреса по умолчанию составляет 64 бита в 64-битном режиме и 32 бита в 32-битном режиме.
Вы можете применить префикс переопределения размера адреса 67
, чтобы выбрать размер адреса 32 бита в 64-битных модах, однако 64-битный размер адреса недоступен за пределами 64-битного режима.