Префикс REX влияет на кодирование команд в 64-разрядном режиме, расширяя возможности адресации и определяя размер операнда. osdev.fandom.com xem.github.io
Некоторые особенности влияния префикса REX:
- Увеличение разрядности полей базы и индекса. osdev.fandom.com Это позволяет использовать в качестве базовых и индексных дополнительные восемь регистров: R8/R8D–R15/R15D. osdev.fandom.com
- Определение размера операндов. osdev.fandom.com Когда бит W префикса REX равен 0, а префикс изменения размера операндов 66h отсутствует, размер операндов равен 32 битам. osdev.fandom.com При нулевом бите W и наличии префикса 66h используются 16-разрядные операнды. osdev.fandom.com При W=1 размер операндов равен 64 битам независимо от наличия префикса 66h. osdev.fandom.com
- Изменение набора регистров. stackoverflow.com Префикс REX заменяет регистры AH, BH, CH, DH на регистры SPL, BPL, SIL и DIL соответственно. stackoverflow.com
Префикс REX должен быть расположен непосредственно перед байтом опкода, в противном случае он игнорируется. habr.com Если REX используется вместе с инструкцией, требующей присутствия другого обязательного префикса, он должен быть расположен между этим префиксом и байтом кода операции. habr.com