Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Ассемблер.docx
Скачиваний:
26
Добавлен:
30.07.2019
Размер:
24.41 Кб
Скачать
  1. Регистр указатель команд ip

Содержит смещение на команду, которая должна быть выполнена. Прямого доступа к IP –нет, но его содержимое может меняться под воздействием команд: JMP, CALL, RET или отладчиков.

Используется в паре с регистром CS. Благодаря этому регистру комп «знает» что ему делать дальше.

  1. Регистр флагов flags

Содержит информацию о текущем состоянии машины и о результатах выполнения операций. Регистр своего названия не имеет, но в отладчиках его называют FLAGS. Многие арифметические и логические команды изменяют значения флагов.

9 из 16 битов регистра являются активными и называются флагами и имеют свои имена, которые могут быть использованы программистом.

Флаг это бит принимающий значение 1, если он установлен, и значение 0, если он сброшен.

Флаги условий: CF, PF, AF, ZF,SF, OF

Флаги состояний: TF, IF, DF

CF –флаг переноса. Содержит признак переноса из старшего бита или последний бит при операции сдвига.

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

AF – флаг дополнительного переноса. Фиксирует работу над двоично-десятичными операциями.

ZF – флаг нуля. Устанавливается если результат выполнения команды равен нулю.

SF – флаг знака. Копирует старший бит результата выполнения команды.

OF - флаг переполнения.

TF – флаг трассировки. Обеспечивает возможность работы процессора в пошаговом режиме выполнения команд.

IF – флаг внешних прерываний. Если If =1 прерывания разрешены, если IF = 0 –блокируются.

DF – флаг направления. Устанавливает направление обработки строк.

  1. Организация оперативной памяти

В компьютере может быть установлена память объемом от 640 кб до 512 Мб. Команды и данные могут быть записаны по- байтно и словами, но при записи 16 битовых и 32 битовых значений имеется следующая особенность:

    1. 16-ричное число 1234 представлены как 34_12

    2. 16-ричное число 12345678 представлено как 78_56_34_12

И так, max адрес байтов памяти в Мп 8086 – FFFF. Для его выражения необходимо 20 разрядов, а все регистры имеют только 16 разрядов. Для разрешения этого противоречия используется сегментирование памяти.

Адрес любого байта памяти записывается как пара чисел каждая, из которых выражается 4-мя 16-ричными числами: XXXX:YYYY

XXXX-сегмент. Эта часть обычно представлена в регистрах CS,ES,DS,SS

YYYY – смещение. Хранится в IP,BX,BP,SP

Особенность адресации – её неоднозначность.

  1. Структура программы на Ассемблере

Имеет следующий вид:

Программа

Сегмент стека

Директива распространения памяти

Директива окончания сегмента стека

Сегмент данных

Директива описания данных

Директива окончания сегмента данных

Сегмент кода

Директивы описания распространения памяти между сегментами

Процедура 1

Коды команд

Команда выхода процедуры

Директива окончания процедуры 1

…………………………………………………………………………………………………………………………………….

Процедура N

Коды команд

Команда выхода из процедуры

Директива окончания процедуры N

Директива окончания сегмента кода

Директива окончания программы