Почему там не регистр, который содержит более высокие байты EAX?

65
задан Digital Trauma 9 July 2018 в 18:08
поделиться

2 ответа

Только для некоторого разъяснения. В ранние дни микропроцессора 1970-х центральные процессоры имели только небольшое количество регистров и очень ограниченной системы команд. Как правило, арифметическая единица могла только воздействовать на единственный регистр ЦП, часто называемый "аккумулятором". Аккумулятор на 8 битах 8 080 & процессоры Z80 назвали "A". Было 6 других регистров на 8 битов общего назначения: B, C, D, E, H & L. Эти шесть регистров могли быть разделены на пары для формирования 3 регистров на 16 битов: до н.э, DE & HL. Внутренне, аккумулятор был объединен с регистром Флагов для формирования регистра AF 16 битов.

, Когда Intel разработал 16 битов 8 086 семей, они хотели быть в состоянии портировать 8 080 кодов, таким образом, они сохранили ту же основную структуру регистра:

8080/Z80  8086
A         AX
BC        BX
DE        CX
HL        DX
IX        SI    
IY        DI

из-за потребности портировать 8 битов кодируют, они должны были быть в состоянии обратиться к эпизодическим ролям индивидуума 8 AX, BX, CX & DX. Их называют AL, AH для низкого & высокие байты AX и так далее для BL/BH, CL/CH & DL/DH. IX & IY на Z80 только когда-либо использовались в качестве регистров указателя на 16 битов, таким образом, не было никакой потребности получить доступ к двум половинам SI & DI.

, Когда эти 80386 был выпущен в середине 1980-х, они создали "расширенные" версии всех регистров. Так, AX стал EAX, BX стал EBX и т.д. не было никакой потребности получить доступ к лучшим 16 битам этих новых расширенных регистров, таким образом, они не создали псевдо регистр EAXH.

AMD применил тот же прием, когда они произвели первые процессоры на 64 бита. Версию на 64 бита регистра AX называют, ПОТЯГИВАЮТСЯ. Так, теперь у Вас есть что-то, что похоже на это:

|63..32|31..16|15-8|7-0|
               |AH.|AL.|
               |AX.....|
       |EAX............|
|RAX...................|
131
ответ дан Rafael Winterhalter 24 November 2019 в 15:13
поделиться

В старые 8-разрядные дни, был регистром.

В 16-разрядные дни, был регистр AX на 16 битов, который был разделен на два 8 эпизодических ролей, AH и AL, в течение тех времен, когда Вы все еще хотели работать с 8 битовыми значениями.

В 32-разрядные дни, регистр EAX на 32 бита был представлен, но AX, AH и регистры AL были все сохранены. Разработчики не чувствовали его необходимый для представления нового регистра на 16 битов, который обратился к битам 16 - 31 из EAX.

25
ответ дан Greg Hewgill 24 November 2019 в 15:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: