1.Состав и структура IBM PC
Структурную схему персональных компьютеров типа IBM PC различных модификаций можно представить в обобщенном виде, как показано на рисунке 1.1.
Рисунок 1.1
Персональный
компьютер построен по модульному
принципу, т.е. в его состав могут входить
различные модули-устройства в зависимости
от желания и финансовых возможностей
покупателя. Отдельные модули соединяются
между собой
при
помощи
системной
шины.
На
рисунке 1.1 показан минимальный комплект,
включающий
центральный
процессор, оперативную память, дисплей
с клавиатурой, накопители на гибких и
жестких дисках, принтер и другие
устройства. Центральный процессор,
постоянная и оперативная память
подсоединяются к общей шине непосредственно,
а остальные устройства - при помощи
контроллеров. В современных
компьютерах
для повышения производительности
используют несколько шин различных
типов.
Конструктивно
обычно процессор, оперативная память,
накопители на дисках и контроллеры
остальных устройств объединены в один
электронный блок. При этом процессор,
а также оперативная и постоянная память
располагаются на так называемой
системной, или материнской плате, к
которой с помощью штепсельных разъемов
подсоединяются остальные устройства.
Основу компьютера составляет микропроцессор, упрощенная структура которого показана на рисунке 1.2. [Здесь приведена структурная схема процессора Intel 80286.] Для этого компьютера данные и команды имеют в основном формат длиной 2 байта (16 бит), а оперативная память может быть емкостью до 1 Мбайт.
Рисунок 1.2
Устройство управления дешифрирует команды и вырабатывает сигналы управления различными блоками процессора, а также блоками остальных устройств. Основой блока управления служит микропрограммная память, на адресный вход которой подается код операции из регистра команд.
Арифметико-логическое устройство (АЛУ) служит для выполнения арифметических и логических операций. Помимо результата операции, который сохраняется в регистре или памяти, АЛУ определяет ряд признаков результата, или флагов, которые фиксируются на специальном регистре – регистре флагов. Они будут описаны ниже.
В качестве регистра команд используется блок очереди команд; он позволяет хранить шесть очередных байтов команды. Очередь команд заполняется автоматически, как только освобождаются 2 байта в регистрах этого блока. Этот блок позволяет разместить в нем длинную команду и совместить во времени выполнение одной команды и выборку из основной памяти (ОП) следующей команды.
Для формирования исполнительного адреса памяти [он определяется сложением начального адреса сегмента, находящегося в регистре, и смещения в команде (см. ниже)] служит сумматор адресов. Буферы адреса/состояния и адреса/данных обеспечивают связь микропроцессора с другими устройствами. Шина адреса/данных имеет разрядность 16 бит. По этой шине передаются данные или младшие 16 бит адреса. Для передачи старших четырех бит адреса используется шина адреса/состояния.
Микропроцессор содержит 14 программно-доступных регистров, т.е. регистров, имеющих адреса, к которым можно обратиться из программы:
общие регистры, или регистры общего назначения (AX, CX, DX, BX);
адресные регистры (SP, BP, SI, DI);
сегментные регистры (CS, SS, DS, ES);
регистр флагов (признаков результата);
счетчик команд (IP).
Программно-доступные регистры позволяют хранить слова длиной 16 бит. Формат и адреса программно-доступных регистров приведены на рисунке 1.3. Общие регистры, иногда называемые также регистрами общего назначения (AX, CX, DX, BX), используются в качестве сверхоперативной памяти. Они допускают обращение как ко всему регистру (два байта), так и отдельно к старшему (Н) и младшему (L) байтам. Например, регистр АХ состоит из регистров АН (старший байт) и АL (младший байт). При этом регистр АХ имеет адрес 000, а регистры АН и AL - адреса 100 и 000, соответственно.
Регистры SP, BP, SI и DI обычно используются для хранения адресной информации, необходимой для определения адреса при различных режимах адресации.
Указатель команд (IP), называемый также счетчиком команд, предназначен для хранения адреса выполняемой команды. Более точно, в нем хранится не полный адрес, а только смещение в текущем сегменте (см. ниже).
Регистр флагов служит для хранения признаков результата выполнения команды. Эти признаки используются для организации условных переходов в программах. На рисунке 1.3 показано, что в регистре флагов используются только 8 разрядов.
Рисунок
1.3
Обозначение флагов
| Флаг | Установлен | Сбpошен | Описание |
| CF | CY | CN | Флаг пеpеноса. Устанавливается в состояние 1, если аpифметическая опеpация вызвала пеpенос (пpи сложении) или заем (пpи вычитании) из стаpшего бита pезультата. В пpотивном случае флаг CF сбpасывается |
| PF | PO | PE | Флаг четности. Во многих командах устанавливается в 1, если младшие восемь бит pезультата содеpжат четное число единичных бит. В пpотивном случае флаг PF сбpасывается в 0. |
| AF | AC | NA | Флаг вспомогательного пеpеноса.Устанавливается в 1, если аpифметическая опеpация вызвала пеpенос (пpи сложении) или заем (пpи вычитании) из младшей тетpады. В пpотивном случае флаг CF сбpасывается в 0. Пpогpаммно этот флаг недоступен. |
| ZF | ZR | NZ | Флаг нуля. Большинством команд устанавливается в 1, когда pезультат опеpации pавен 0. |
| SF | NG | PL | Флаг знака. Большинство команд устанавливают флаг SF в то же состояние, в каком находится стаpший бит pезультата. |
| IF | EI | DI | Флаг пpеpывания. Пpи установленном флаге IF пpоцессоp pаспознает и обpабатывает внешние аппаpатные пpеpывания. Пpи IF=0 пpоцессоp игноpиpует аппаpатные пpеpывания. |
| DF | UP | DN | Флаг напpавления обpаботки цепочек.Пpи DF=0 после выполнения цепочечной опеpации пpоизводится автоматический инкpемент, а в состоянии DF=1 - автоматический декpемент индексных pегистpов ESI/SI и EDI/DI, адpесующих цепочки. |
| OF | NV | OV | Флаг пеpеполнения. Флаг OF устанавливается в 1,если в аpифметических опеpациях со знаковыми опеpандами pезультат пpевышает диапазон пpедставимых чисел.В пpотивном случае OF сбpасывается в 0. |
Сегментные регистры (DS, CS, ES, SS) служат для сегментной организации оперативной памяти. При этом общее пространство памяти в 1 Мбайт делится на сегменты по 64 Кбайт каждый. Расположение сегмента в памяти жестко не фиксируется и задается при помощи сегментных регистров. В этом случае адрес ячейки оперативной памяти определяется адресом сегмента и смещением, которое указывается в команде. Сегментная организация памяти позволяет обеспечить перемещаемость программных модулей, т.е. возможность их записи на любое свободное место в оперативной памяти. Назначение сегментных регистров:
CS - сегмент кода (программы), используется для задания начального адреса сегмента памяти, в котором записана программа;
DS - сегмент данных, задает начальный адрес сегмента памяти, в котором записаны данные для активной программы;
SS - сегмент стека, используется при организации стековой памяти;
ES - дополнительный сегмент, используется для временного хранения других сегментов, например, при выводе данных на терминал.
Как указано выше, емкость оперативной памяти этого компьютера составляет 1Мбайт, и адрес должен быть 20-битным, а разрядность регистров (в том числе сегментных регистров и регистров смещения) равна 16 бит. Поэтому для формирования исполнительного адреса памяти производится суммирование адреса сегмента и смещения, при этом адрес сегмента сдвигается влево на четыре бита.
Пусть, например, в регистре сегмента записан адрес сегмента 0000 0001 0001 0000, а смещение равно 0000 0011 0000 0000.
Тогда адрес памяти будет равен:
0000 0001 0001 0000
+ 0000 0011 0000 0000
---------------------------------------------
0000 0001 0100 0000 0000
или в шестнадцатеричном виде 0 1 4 0 0
Для удобства ввода информации с клавиатуры она представляется в шестнадцатеричной системе счисления.