...или подводная лодка в степях Белоруссии
Совместные действия таких гигантов как Intel, создавшей 16-разрядной процессор 8086, IBM, разработавшей архитектуру настольного компьютера, использующего этот процессор и компании Microsoft, занимающейся разработкой ключевого программного обеспечения для этого компьютера начали довольно энергично уничтожать всех конкурентов на рынке.
Довольно мощная компания Motorola не могда похвастаться идеальной организацией сбыта своих процессоров, выглядевших тогда на общем фоне весьма привлекательно. Создав процессор нужно было еще дать надежду производителям компьютеров, использующие эти процессоры, а те, в свою очередь должны были как-то побудить разработчиков программного обеспечения написать хоть какой-то минимальный и необходимый набор и чтобы это было интересно потребителю.
Именно так сформировалась вся цепочка когда появились домашние компьютеры для обычных людей не программистов. Пустые железки без программ стали никому не интересны.
Более того, компания IBM не стала скрывать особенности устройства своего компьютера, а наоборот позволила другим производителям приобретать лицензию на производство совместимых компьютеров.
Благодаря такому положению дел разработчики аппаратного обеспечения поспешили создать для всего этого многочисленного парка совместимых компьютеров всевозможные платы расширения и это превратилось в торнадо, который затягивал в себя большинство инженеров и программистов этого мира.
Устройство процессора
Давайте взглянем не техническую часть вопроса. Процессор представляет собой взаимосвязь нескольких компонентов. Центральным звеном является арифметико-логическое устройство (ALU), выполняющее операции над 16-разрядными числами, размещающимися во временных регистрах. Всевозможные признаки окончания операций заносятся в регистр флагов (Flag Register). Они потом могут быть использованы для изменения хода выполнения программы. Всеми узлами в процессоре управляет дешифратор команд (Internal Control System).
Кроме того, в процессоре 8086 имеется 8 регистров общего назначения (General Registers), 4 из которых могут быть использованы как 8-битные регистры если имеется такая необходимость. Состоящий из старшего (AH) и младшего (AL) байтов регистр AX используется как аккумулятор. Регистр BX используется как смещение при вычислении адреса. CX используется как счетчик в циклах. DX используется как неявный операнд в некоторых инструкциях и чтоб надолго не затягивать это перечисление особо обозначим регистр SP, являющийся указателем на вершину стека. Про роль стека в организации функций очень хорошо сказано в одном из выпусков.
Другая группа регистров, называемая сегментными участвует в формировании адреса данных памяти. Путем смещения содержимого сегментного регистра на 4 бита влево и сложением со смешением получается 20-битный адрес, который позволяет обращаться к диапазону адресов от нуля до одного мегабайта.
Этот адрес поступает на формирователь сигналов шины процессора (Bus Control Logic), которая связывает его со всем оборудованием компьютера, в том числе и оперативной памятью (RAM).
Регистр IP служит для хранения адреса-смещения очередной исполняемой инструкции. Поскольку полный 20-битный адрес инструкции вычисляется через сумму сегмента и смещения то содержимое этого регистра это еще не полный физический адрес. Здесь далеко не все так просто и понятно, как это было в других ранее рассмотренных архитектурах. Однако, если вы думаете что это уже сложно, то вы даже не представляете какой ад поджидает всех впереди.
Проклятие обратной совместимости
Все дело в том, что за непродолжительное, но яркое время популярности первого процессора из всего семейства х86 для него было написано огромное количество программного обеспечения. Однако, конкуренты продолжали наступать на пятки и вот уже компания Intel совсем не уверена, что 640 килобайт оперативной памяти хватит любой программе. Спустя 6 лет после Motorola пришлось выпустить на рынок следующего члена семейства - процессор 80286, который едва ли был конкурентом внутренне 32-разрядному процессору Motorola 68К.
После это каждые пару-тройку лет на рынок выходили 32-разрядные, а потом уже и 64-разрядные процессоры, но для совместимости со старыми программами 16-битные регистры общего назначения были поглощены регистрами большей разрядности, а 16-битные сегментные регистры так и остались 16-разрядными.
Даже и не знаю как это прокомментировать. Такого точно еще не знала история)
Продолжение следует...
Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.
Также не обойдите вниманием канал на YouTube. Подписки и лайки будут приятным ответом от аудитории.