Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по информатике.docx
Скачиваний:
80
Добавлен:
10.05.2015
Размер:
150 Кб
Скачать
☆

3.Регистр флагов eflags/flags

Содержит флаги, подразделяющиеся на флаги состояния и флаги управления. Каждый флаг является одним разрядом в регистре флагов. Флаги состояния сообщают об особенностях результата команд обработки данных. К этим флагам относятся следующие.

  1. Флаги состояния

Флаг переноса CF устанавливается в состояние 1, если арифметическая команда вызвала перенос (при сложении) или заем (при вычитании) из старшего разряда результата

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

Флаг нулевого результата ZF устанавливается в 1, когда результат выполнения команды равен 0.

Флаг знака SF устанавливается в то же состояние, в каком находится старший разряд результата.

Флаг переполнения разрядной сетки OF устанавливается в 1, если при выполнении арифметических команд со знаковыми операндами результат превышает диапазон представимых чисел. Алгоритм формирования этого флага будет изложен позднее.

Флаг вспомогательного переноса AF устанавливается в 1, если при выполнении арифметической операции возник перенос из 3 в 4 разряд (при сложении) или заем между из 4 разряда (при вычитании). Этот флаг используется при выполнении команд десятичной арифметики.

Режимы адресации

1. Неявная адресация Пример mul cx . Второй операнд (множитель) в регистре al, результат в регистре ax.

1.Регистровая адресация - операнд находится в одном из регистров общего назначения Пример add ax, bx

2.Непосредственная адресация - операнд находится в самой команде, т.е. хранится вместе с командой в сегменте кода. Пример add ax, 15.

3.Остальные режимы адресации осуществляют обращение к памяти.

A) Прямая адресация - адрес, по которому процессор выполняет обращение к память, содержится в команде в виде смещения относительно базового адреса Пример

Q db 20h

add ax, Q

B) Косвенная адресация, адрес, по которому процессор обращается к памяти, находится либо в регистре общего назначения, либо же находится в ячейке памяти. Если адрес находится в регистре, то такая адресация называется косвенной регистровой. Пример

mov bx, Q

add ax, [bx]

В качестве регистра, содержащего косвенный адрес, может быть использован регистр общего назначения, кроме регистра E(SP), который используется для работы со стеком.

Следующий режим косвенной адресации – это базовая индексная адресация, при которой адрес рассчитывается при сложении содержимого двух регистров общего назначения. Разновидностью этой адресации является базовая индексная адресация со смещением, при этом к содержимому суммы двух регистров прибавляется целое число, указанное в команде. Как правило в качестве базы используется регистр BX , а в качестве индекса регистры SI, DI. Пример add ax, [bx,si+20]

Сегментная организация памяти

В МП используется сегментированная память. Вся оперативная память делится на участки со последовательными адресами, которые называются сегментами.

Сегменты:

кодовый сегмент (CS) для хранения кода программы;

сегменты данных – основной (DS) и дополнительные (ES,FS,GS) для хранения данных

стековый сегмент (SS) для хранения стека

Каждый сегмент в первую очередь характеризуется собственным базовым адресом, относительно которого и происходит обращение к памяти при работе МП.

Базовые адреса сегментов содержатся в сегментных регистрах.

CS - для кодового сегмента DS, ES, FS и GS – для сегментов данных. SS – для стекового сегмента

Максимальный размер сегмента в реальном режиме равняется 64 Кбайт.