Как разрядное количество регистра определяется?

Это - истинные регистры, являются 32-разрядными в x86 и 64-разрядными в x86-64?

3
задан 22.11.2013, 21:12

3 ответа

Короткий ответ: да.

Длинный ответ:

Все центральные процессоры имеют несколько регистров. На x86 центральных процессорах самое большое 32 бита длиной, и на x64 самое длинное 64 бита длиной.

Меньшие регистры предусмотрены назад совместимость с более старыми приложениями.

Например, bx регистр всегда 16 битов длиной, и существует для совместимости на 16 битов на большинстве центральных процессоров, ebx 32 бита длиной, и существует на центральных процессорах на 64 бита и на 32 бита.

Его важное для замечания этого bx точки к "правильной половине" ebx

Например:

Если значение в ebx 0f0f 0b0b затем значение в основном обмене 0b0b

4
ответ дан 07.12.2019, 23:28

Да, но...

Возьмите в качестве примера накапливающий регистр.

В 8086/8088 это было регистром AX на 16 битов. К левым и правым 8 эпизодическим ролям можно было получить доступ отдельно как AH и AL:

    1
    5               0
    |+++++++*+++++++|
AX: |   AH  |   AL  |
    |+++++++*+++++++|

Процессоры на 32 бита добавили регистры на 32 бита, в то время как исходные регистры на 16 и 8 битов сохранили доступными:

     3
     1                               0
     |+++++++*+++++++|+++++++*+++++++|
     |              AX               |
EAX: |               |   AH  |   AL  |
     |+++++++*+++++++|+++++++*+++++++|

И с 64 битами они повторили прием:

     6
     3                                                               0
     |+++++++*+++++++|+++++++*+++++++|+++++++*+++++++|+++++++*+++++++|
     |                               |              EAX              |
RAX: |                               |               |      AX       |
     |                               |               |   AH  |   AL  |
     |+++++++*+++++++|+++++++*+++++++|+++++++*+++++++|+++++++*+++++++|

И существуют также регистры с плавающей точкой, каждый 80 битов длиной независимо от основного размера регистра.

2
ответ дан 07.12.2019, 23:28

Регистры общего назначения и указатель команд составляют 16 битов на 16-разрядном x86 ЦП (т.е. 80x86 до 286, или позже в режиме эмуляции), 32 бита на 32-разрядном x86 ЦП (т.е. 386 вперед) и 64 бита на 64-разрядном ЦП (т.е. amd64 или совместимый). Поэтому ЦП N-bit более или менее определяется как ЦП, где регистры общего назначения являются широкими битами N (или ЦП, где указатель команд является широкими битами N, но на x86 и большей части другой архитектуры это - то же).

Некоторые другие регистры имеют различные размеры. Например, 32-разрядные x86 центральные процессоры имеют 16-разрядные сегментные регистры (редко используемый), и 80-разрядные регистры с плавающей точкой. Статья Википедии о X86 имеет больше полного списка.

1
ответ дан 07.12.2019, 23:28

Теги

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