Смекни!
smekni.com

Представление текстовой и графической информации в электронном виде (стр. 2 из 7)

CF – признак переноса из старшего разряда при выполнении операции

ZF – признак нуля: 1 - число = 0

AF – признак дополнительного переноса, сигнал, возникающий между тетрадами в двоичной операции.

SF – признак знака: 1 - число < 0, 0 - число > 0

PF – признак четности;

ОF – признак переполнения;

DF – признак направления;

IF – признак прерывания;

ТF – признак трассировки;

В блоке преобразования адресов формируются физические адреса данных, расположенных в основной памяти. Наконец, регистры используются для хранения управляющей информации: адресов и данных.

Всего в состав микропроцессора i8086 входит четырнадцать 16-битовых регистров (см. рис.):

a) четыре регистра общего назначения (регистры данных):

AX - регистр-аккумулятор,

BX - базовый регистр,

СХ - счетчик,

DX - регистр-расширитель аккумулятора (по умолчанию для хранения данных в командах умножения и деления);

б) три адресных регистра:

SI - регистр индекса источника,

DI - регистр индекса результата,

BP - регистр-указатель базы (позволяет прочитать произвольный элемент стека);

в) три управляющих регистра:

SP - регистр-указатель стека (адрес последнего числа, записанного в стек),

IP - регистр-счетчик команд (указывает адрес команды, подлежащей выполнению, т.е. следующей),

регистр флагов;

Данные регистры составляют сверхоперативную память.

г) четыре сегментных регистра:

CS - регистр сегмента кодов,

DS - регистр сегмента данных,

ES - регистр дополнительного сегмента данных,

SS - регистр сегмента стека.

Способы адресации

Процессор при обработке программы взаимодействует с оперативной памятью, которая представляется единым массивом однобайтных ячеек, обращение к которым происходит по их номерам (физическим адресам). Число ячеек зависит от разрядности шины адреса и составляет для процессора i8086 1Мбайт.

Для обращения к памяти процессор предварительно помещает адрес ячейки в один из своих регистров. Шестнадцатиразрядный процессор i8086 не может хранить в своих регистрах двадцатиразрядный адрес, поэтому в нем применена так называемая сегментация памяти, которая заключается в том, что истинный, физический адрес ячейки хранится в двух регистрах. Один из них – сегментный (хранит адрес начала блока памяти). Второй регистр хранит величину смещения адреса требуемой ячейки от начала сегмента. Адрес ячейки памяти записывается в виде двойного слова (4 байта): <сегмент>:<смещение>.

Команды могут формировать адреса операндов различными способами. Реализованы следующие режимы адресации:

1. Регистровая прямая (посылочная) - операнд находится в регистре.

Обозначение - <регистр>,< регистр > - АХ, ВХ, СХ, DX, SI, DI, BP, SP, AL, BL, СL, DL, AH, BH, CH, DH.

Пример: (приведен операторами языка ассемблера)

mov АХ,SI ; переслать содержимое регистра SI в регистр АХ.

2. Непосредственная - непосредственный операнд (константа) присутствует в команде.

Обозначение - < константное выражение > .

Пример:

mov AX, 093Ah ; занести константу 093Ah в регистр АХ.

3. Прямая (абсолютная)- исполнительный адрес операнда присутствует в команде.

Обозначение - < переменная >+/-< константное выражение >.

Пример:

mov AX, WW ; переслать в АХ слово памяти с именем WW

mov BX, WW+2 ; переслать в ВХ слово памяти отстоящее от переменной с именем WW на 2 байта.

4. Регистровая косвенная - регистр содержит адрес операнда.

Обозначение - [< регистр >], < регистр > - ВХ. ВР. SI, DI.

Пример:

mov [ BX ], CL ; переслать содержимое регистра CL по адресу, находящемуся в регистре ВХ.

5. Регистровая относительная - адрес операнда вычисляется как сумма содержимого регистра и смещения.

Обозначение - < переменная >[< регистр >] или [< регистр >]< константное выражение >, < регистр > - SI или DI индексная адресация, ВХ или ВР - базовая адресация.

Пример:

mov АХ, WW[SI] ; переслать в АХ слово из памяти, адрес которого вычисляется как сумма содержимого регистра SI и смещения WW.

6. Индексно - базовая - адрес операнда вычисляется как сумма содержимых базового и индексного регистров и смещения.

Обозначение - [< базов. регистр>][< индексн. регистр>] или <переменная >[<базов. регистр >][< индекс. регистр >] или [<базов. регистр >][< ин-декс. регистр >]< константное выражение>, где < индекс. регистр > - SI или DI, < базов. Регистр > - ВХ или ВР.

Пример:

mov [BX+ SI+ 2], CL; переслать содержимое регистра CL по адресу, вычисляемому как сумма содержимого регистров ВХ, SI и константы 2.

7.Стековая адресация - реализует неявное задание адреса операнда. Хотя адрес обращения в стек отсутствует в команде, он формируется с помощью указателя SP в котором автоматически при записи или чтении устанавливается номер последней занятой ячейки стека.

Прерывания

Прерывания осуществляют механизм переключения с одной задачи на другую. Прерывания рассматриваются с двух сторон:

- программно определенные события (предусмотрены текущей программой),

- события не предопределенные, поэтому процессор должен переключаться на какую-то задачу

Следовательно, различают 2 вида прерываний: аппаратные и программные.

1. Программные вызываются из программы с помощью команды int.

2. При аппаратном прерывании процедура прерывания инициируется внешним сигналом IRQ, поступившим с программируемого контроллера прерываний (КПР). Обработка запроса в КПР происходит по следующей схеме:

Происходит фиксация запросов и их селекция по принципу приоритета, который задается номером: запрос с меньшим номером имеет высший приоритет, и наоборот.

КПР выдает сигнал int в процессор. Периодически в конце каждой команды процессор анализирует сигнал int. Если это событие произошло, то процессор прекращает выполнять текущую операцию и приступает к процедуре прерывания:

ЦП записывает в стек содержимое регистра флагов IF (флаг разрешения прерывания), CS и указатель IP, чтобы сохранить состояние текущей команды в момент прерывания. Затем он сбрасывает флаг и передает управление программе обработки прерывания, загружая в регистр CS и IP адрес вектора прерываний, который представляет собой 2 числа (4 байта), задающие местонахождение обработчика прерывания. В оперативной памяти размещаются 256 векторов прерываний (1024 байта).

Адрес вектора прерывания с номером прерывания N вычисляется как N*4. В младшем байте хранится значение IP, а в старшем CS.

Чтобы вернуться из прерывания, необходимо использовать команду iret, которая восстанавливает из стека содержимое CS, IP и регистра флагов.

Программные прерывания применяются в первую очередь для вызова системных обслуживающих программ - функций DOS и BIOS. Большая часть векторов прерываний зарезервирована для выполнения определенных действий; часть из них автоматически заполняется адресами системных программ при загрузке системы. Вектора прерываний можно условно разбить на следующие группы:

 векторы внутренних прерываний процессора (0lh, 02h и др.);

 векторы аппаратных прерываний (08h...0Fh и 70h...77h);

 программы BIOS обслуживания аппаратуры компьютера (10h, 13h, 16h и др.);

 программы DOS (21h, 22h, 23h и др.);

 адреса системных таблиц BIOS

Запоминающие устройства ЭВМ

Ключевым принципом построения памяти ЭВМ является ее иерархическая организация (принцип, сформулированный еще Джоном фон Нейманом), которая предполагает использование в системе памяти компьютера запоминающих устройств (ЗУ) с различными характеристиками.


ВЗУ – энергонезависимая память, используемая для хранения больших объемов информации. Её емкость больше, чем в ОЗУ, но быстродействие во много раз меньше.

ОЗУ используется для хранения данных и программ (RAM – устройство с произвольным доступом). ОЗУ характеризуется следующими параметрами:

1. Время обращения: время чтения, время записи.

2. Емкость – количество адресуемых элементов в памяти. Ячейка памяти – то, что считывается за одно обращение. Количество данных (разрядность), считываемых за одно обращение называется шириной выборки. Адресуемый элемент <> ширины. Емкость может рассматриваться как физическая и как размер адресного пространства.

Все современные ОЗУ – полупроводниковые устройства:

1. Статические ОЗУ.

В качестве элемента памяти используется триггер. Статические ЗУ обладают меньшей плотностью хранения информации. Однако триггер со времен первых компьютеров был и остается самым быстродействующим элементом памяти. Поэтому статическая память позволяет достичь наибольшего быстродействия, обеспечивая время доступа в единицы и даже десятые доли наносекунд, что и обусловливает ее использование в ЭВМ, главным образом, в высших ступенях памяти – кэш-памяти всех уровней. Триггер создается на двух транзисторах, охваченных обратной связью, и имеет два различных устойчивых состояния. Статические ОЗУ поддерживают режимы хранения, чтения, записи, чтения и записи. Главными недостатками статической памяти являются ее относительно высокие стоимость и энергопотребление.

2. Динамические ОЗУ.

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

СОЗУ – сверхоперативное запоминающее устройство. Его быстродействие примерно в 100 раз больше быстродействия ОЗУ (реализовано на той же базе, что ЦП, поэтому по быстродействию сравнимо с ним), но емкость в несколько раз меньше.