Что означают префиксы E и R в именах 32-разрядных и 64-разрядных регистров Intel?

Имена 32-битных регистров начинаются с E, а 64-битные начинаются с R. Что означают E и R? Есть ли причина для выбора этих алфавитов?

Кроме того, в 64-битных регистрах мы также можем видеть в любом низкоуровневом отладчике, таком как Windbg, что самые правые биты по-прежнему называются с тем же именем, что и у 64-битного регистра, за исключением того, что имя начинается с E. Например, самые правые 32 бита регистра RAX в 64-битной системе называются EAX.

Итак, E и R означают что-то? А также, почему суффикс X для регистра?

1 ответ

Решение
  • R просто означает " р эгистер". Расширение AMD64 ISA добавило 8 дополнительных регистров общего назначения, названных R8 через R15, 64-битные расширенные версии оригинальных 8 регистров имели R к ним добавлен префикс для симметрии.

  • E расшифровывается как "расширенный" или "расширенный". ( Википедия говорит "расширенный".) Это "расширенные" версии 16-битных регистров, в которых они предлагают 16 дополнительных битов для 32-битного общего количества.

  • X также для "e x tended" - или, возможно, подразумевает 16, как в x x adecimal. * The X Регистры с суффиксами - это 16-битные расширенные версии 8-битных регистров. Для 8-битных регистров L суффикс означает "низкий", а H суффикс означает "высокий".

Поэтому, взяв один конкретный регистр в качестве примера, вы получите 8-битный AL а также AH регистры, которые являются младшим и старшим байтами 16-битного AX регистр, который является младшим словом 32-битного EAX регистр, который является младшим двойным словом 64-битного RAX регистр.

| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |
======================================
.         .         | AH     | AL    |
.         .         | AX             |
.         | EAX                      | 
| RAX                                |
======================================
| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |

__
* X был использован в мнемонике (например, LXI а также DCX ) на 8080 для инструкций, которые обрабатывали пару отдельных в отдельности 8-битных регистров как 16-битное целое число, аналогично тому, как AX представляет AH:AL пара. Таким образом, другая возможная интерпретация заключается в том, что X означает пару, и это использование было продолжено при именовании пар high:low на последующих процессорах, включая 8086, который был полным 16-разрядным расширением 8080.

Другие вопросы по тегам