Официальный datasheet на Intel 8088 говорит, что внутренности процессора 16-битные, а шина - 8-битная:

Что же значит, что внутренности 16-битные? В действительности, АЛУ может иметь и меньшую разрядность, просто выполняя операции в несколько тактов. 16-битность внутренностей означает, что внутри процессора его компоненты соединены 16 линиями данных, то есть, например, 8-битный Z80 не может сразу передать в АЛУ 16-битный операнд из HL при 16-битном сложении и на самом деле просто на уровне микрокода выполняет отдельно сложение младших байт и потом сложение старших байт. Что занимает дополнительные такты. У 8086/8088 же внутри блок регистров соединен с АЛУ 16ю линиями данных, что позволяет передавать между ними сразу 16-битные операнды. Вот внутренняя организация 8088, где мы видим "16 бит":

Datasheet отвечает нам и на этот вопрос:
8088 обрабатывает внешнюю шину так же, как 8086, с той разницей, что одновременно обрабатывает только 8 бит. 16-битные операнды выбираются или записываются в двух последовательных циклах шины.
Там еще есть другие незначительные отличия (длина конвейера отличается и еще некоторые отличия внешней шины)
Вопрос: Когда шина разной разрядности - то ПО несовместимо?
8-битная шина означает, что процессор имеет на корпусе 8 ножек для передачи данных, а 16-битная - что 16 ножек для передачи данных. Именно такую ситуацию мы и видим у 8086/8088.
ПО вообще нет никакой разницы, сколько ножек расположено на корпусе процессора. У Pentium шина абсолютно такая же, как и у 8086? Чего же у него ног тогда сильно больше? А если шина не такая же, как же ПО остается совместимо?
Количество ножек данных у процессора (разрядность шины) влияет только на то, как процессор обменивается с другими чипами (например RAM или контроллер прерываний).
Соответственно, когда 8086 хочет прочитать 16 бит из памяти, он выставляет на шину адрес и читает с 16-ти ножек данных операнд. 8088 же вынужден проделать это в два такта: сначала выставляется адрес и читаются младшие 8 бит, потом выставляется адрес+1 и читаются старшие 8 бит. Соответственно, такой усложненный цикл чтения делает процессор медленнее, но софт этого не заметит вообще, так как будет прочитано 16 бит и в том, и в другом случае.
Автор текста: Николай Запольнов
15 июн, 2021
© 2007-2022 Правда в том, что какой-то чел взлетает в космосе