Что означает X в EAX, EBX, ECX... в сборке?
Google не показывает результат,
Кто-нибудь знает?
Ответы
Ответ 1
X означает пара и возвращается к по меньшей мере 8080. Он имел 8-битные регистры B, C, D, E, H, L (среди прочих), которые также могут быть использованы в парах (BC, DE и HL). Группы BC и DE использовались в основном для 16-разрядной арифметики; пара HL обычно содержала адрес памяти. Некоторые примеры использования X для пары :
LXI D,12ABH ; "load pair immediate"
DCX B ; "decrement pair"
STAX D ; "store A (indirect) at pair"
Ускоренная пересылка на 8086. Она имеет регистры AL, AH, BL, BH, CL, CH, DL, DH, которые, подобно 8080, могут использоваться парами: AX, BX, CX, DX.
Как указывали другие, E в 32-битных именах регистров означает расширенный.
Ответ 2
Ничего, насколько я знаю. Он обозначает регистр общего назначения.
16-разрядный регистр AX может быть рассмотрен как AH (старший байт) и AL (младший байт).
Регистр EAX - это 32-разрядная версия регистра AX. E обозначает расширенный.
Ответ 3
В 8086 регистр AX был комбинацией AH и AL. Аналогично, BX был BH, BL и т.д. На 80386, вместо объединения 16-разрядных регистров в 32-битные регистры, Intel добавила 16 бит к каждому регистру. Имя "AL" по-прежнему относится к битам 0-7 первого буквенно-именного регистра "AH" к битам 8-15 и "AX" к битам 0-15; имя "EAX" теперь относится ко всем 32 битам регистра.
Интересно отметить, что большинство других 16- и 32-разрядных процессоров не предлагают никаких эквивалентных средств доступа только к верхней или нижней части регистра. Затраты на предоставление такого доступа, как в сложности аппаратного обеспечения, так и в битах кодирования команд, были значительными, а сегодня и днем способность добавлять одну 8-битную часть регистра в 8-разрядную часть другого регистра далеко менее полезен, чем многие другие применения, к которым может быть добавлено такое оборудование или пространство для кодирования команд. С другой стороны, еще есть моменты, когда такие способности могут быть полезны, когда они существуют.
Ответ 4
Как говорит Михай, это просто соглашение об именах.
Однако, учитывая, что "X" часто используется для "заполнения вашего значения" и обычно используется математиками в качестве первого имени переменной выбора в уравнениях и что эти конкретные регистры являются общими целями (в отличие от ESP который является расширенным (32-разрядным) указателем стека или EIP - указателем расширенной инструкции), возможно, именно поэтому X выбран в отличие от "B".
Ответ 5
Одна возможная причина, о которой я могу думать, означает, что она не имеет "нормального" состояния. Когда речь идет о последовательной связи в электронике, если одна из строк данных может быть чем угодно, вы можете сказать, что ее состояние равно X, так как оно не является ни тем, ни другим. 0 или 1.