Что такое 8-битный регистр на настольном процессоре? - PullRequest
2 голосов
/ 16 ноября 2011

Чтение следующего руководства по таблице инструкций Я вижу, что умножение целых чисел часто намного быстрее для 8-bit registers.

В контексте обычного процессора настольного компьютера, что делает 8-bit registerимею в виду?Что значение, хранящееся в 32-битном регистре, просто находится в 8-битном диапазоне?В действительности нет 8-битных регистров, верно?

Ответы [ 3 ]

8 голосов
/ 16 ноября 2011

Существуют действительные 8-битные регистры, и они являются просто частью полного регистра.Например, на процессоре Intel:

AL  8-bit
AH  8-bit
AX  16-bit
EAX 32-bit
RAX 64-bit

На картинках:

63                             32      24      16       8       0
|-------|-------|-------|-------|-------|-------|-------|-------|
                                                        |<- AL->|
                                                |<- AH->|
                                                |<----- AX ---->|
                                |<------------ EAX ------------>|
|<---------------------------- RAX ---------------------------->|
2 голосов
/ 16 ноября 2011

См. этот превосходный ответ на аналогичный вопрос. По сути, благодаря архитектуре Intel x86 вы можете получить доступ к частям регистра. Вы правы, что в действительности нет 8-битных регистров, но есть способы получить доступ только к частям полного регистра. Это особенность Intel, так как 8086 хочет быть максимально совместимым с 8080. И эта причуда была затем передана новым поколениям, поскольку архитектура перешла от 16-битной к 32-битной к 64-битной. Обычно процессоры поддерживают только полный доступ к регистру, поэтому такое разбиение немного странно.

0 голосов
/ 16 ноября 2011

В x86 вы можете адресовать верхнюю и нижнюю половины 16-битного регистра как 8-битный регистр

...