Сведения из теории

1.Состав и структура IBM PC

Структурную схему персональных компьютеров типа IBM PC различных модификаций можно представить в обобщенном виде, как показано на рисунке 1.1.

Рисунок 1.1

Персональный компьютер построен по модульному принципу, т.е. в его состав могут входить различные модули-устройства в зависимости от желания и финансовых возможностей покупателя. Отдельные модули соединяются между собой при помощи системной шины. На рисунке 1.1 показан минимальный комплект, включающий центральный процессор, оперативную память, дисплей с клавиатурой, накопители на гибких и жестких дисках, принтер и другие устройства. Центральный процессор, постоянная и оперативная память подсоединяются к общей шине непосредственно, а остальные устройства - при помощи контроллеров. В современных компьютерах для повышения производительности используют несколько шин различных типов.
Конструктивно обычно процессор, оперативная память, накопители на дисках и контроллеры остальных устройств объединены в один электронный блок. При этом процессор, а также оперативная и постоянная память располагаются на так называемой системной, или материнской плате, к которой с помощью штепсельных разъемов подсоединяются остальные устройства.

2. Структура микропроцессора

Основу компьютера составляет микропроцессор, упрощенная структура которого показана на рисунке 1.2. [Здесь приведена структурная схема процессора Intel 80286.] Для этого компьютера данные и команды имеют в основном формат длиной 2 байта (16 бит), а оперативная память может быть емкостью до 1 Мбайт.

Рисунок 1.2

Устройство управления дешифрирует команды и вырабатывает сигналы управления различными блоками процессора, а также блоками остальных устройств. Основой блока управления служит микропрограммная память, на адресный вход которой подается код операции из регистра команд.

Арифметико-логическое устройство (АЛУ) служит для выполнения арифметических и логических операций. Помимо результата операции, который сохраняется в регистре или памяти, АЛУ определяет ряд признаков результата, или флагов, которые фиксируются на специальном регистре – регистре флагов. Они будут описаны ниже.

В качестве регистра команд используется блок очереди команд; он позволяет хранить шесть очередных байтов команды. Очередь команд заполняется автоматически, как только освобождаются 2 байта в регистрах этого блока. Этот блок позволяет разместить в нем длинную команду и совместить во времени выполнение одной команды и выборку из основной памяти (ОП) следующей команды.

Для формирования исполнительного адреса памяти [он определяется сложением начального адреса сегмента, находящегося в регистре, и смещения в команде (см. ниже)] служит сумматор адресов. Буферы адреса/состояния и адреса/данных обеспечивают связь микропроцессора с другими устройствами. Шина адреса/данных имеет разрядность 16 бит. По этой шине передаются данные или младшие 16 бит адреса. Для передачи старших четырех бит адреса используется шина адреса/состояния.

Микропроцессор содержит 14 программно-доступных регистров, т.е. регистров, имеющих адреса, к которым можно обратиться из программы:

Программно-доступные регистры позволяют хранить слова длиной 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

Для удобства ввода информации с клавиатуры она представляется в шестнадцатеричной системе счисления.