как процессор вычисляет 20-битный адрес в реальном режиме - PullRequest
5 голосов
/ 04 мая 2011

Я знаю, что он использует физический адрес = регистр сегмента << 4 + регистр смещения. Хотя эти два регистра 16-битные, как 8086 может обрабатывать 20-битную операцию плюс? </p>

Ответы [ 2 ]

5 голосов
/ 04 мая 2011

Модуль шинного интерфейса состоит из регистров сегмента, сумматора для генерации 20-битного адреса и очереди предварительной выборки команд.Как только этот адрес отправляется из BIU, байты инструкций и данных извлекаются из памяти и заполняют 6-байтовую очередь First In First Out.

См. Документ «8086_Internal_Block_diagram_enotes.pdf», легкобыть найденным через Google.Также см. этот документ , раздел об устройстве шинного интерфейса.

Таким образом, процессор генерирует эти 20-битные адреса "по требованию" с выделенным внутренним 20-битным регистром, если вы будете.

1 голос
/ 04 мая 2011

Когда вы сдвигаете 16-битное число на 4 позиции влево, вы по сути создаете 20-битное число. Затем смещение указывает, насколько далеко вы пойдете в этот диапазон. См. Статью Википедии об адресации в реальном режиме .

.

Пример:

0x0001  << 4  ->  0x00010  (5 sets of 4 bits in each hex digit -> 20 bits)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...