Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция - red 25.12.12.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
156.67 Кб
Скачать

24.10.2012 — Лекция №11

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

    2. Бит SF — используется для хранения знака результата. Если результат отрицательный, SF устанавливается в 1, иначе 0.

    3. Бит TF — трассировка — бит для установки режима пошагового выполнения программы. Если бит установлен в 1, используется режим пошагового выполнения (используется в debugger'е), если в 0 — режим прерывания (используется в системе)

    4. Бит IF — запрет прерывания, если установлен в 1

    5. Бит DF (direction) — задает направление сканирования массива в специальных командах обработки массивов. Если установлен в 1 — в область уменьшения адрессов масива, 0 — увеличения.

    6. Бит OF — бит переполнения разрядной сетки. Если установлен в 1, значит сетка переполнена, реализуется прерывание и управление передается ОС.

    7. Команды микропроцессора x086.

Все команды делятся на группы для удобства приминения и изучения.

    1. каманды пересылки данных

    2. логические команды

    3. арифметические команды

    4. команды передачи управления

    5. команды управления ресурсами микропроцессора

    6. цепочечные команды (работа с цепочками данных)

Команды пересылки данных

обобщенное обозначение команды пересылки

mov reg/mem, reg/mem / d8 / d16 — переместить содержимое правого операнда в левый операнд. Одновременное использование memory запрещено.

Пример: Mov AL, BH

xchg reg/mem, reg/mem — обмен данными м/у указанными регистрами.

Xlat — команда чтения в аккумулятор; AL ← ((BX)+(AL)). Это команда для табличной перекодировки символов. Создается таблица (256 адресов). Начало записывается в BX, AL является смещением этой таблицы. Регистр AL является перекодировщиком из одного кода в другой.

Lea reg, адресс_метки — команда загрузки регистра адресом метки. Используется для подготовки регистра к косвенному способу адресации (как бы формирование указателя).

Имеется аналог псевдокоманды в Ассемблере ,позволяющий сделать ту же самую операцию:

mov reg, offset метка — записывает смещение метки в регистр.

Lahf —загрузить содержимое младшего байта в регистр признаков.

Sahf — загрузить содержимое старшего байта в регистр признаков.

Команды введены для совместимости с 8байтными командами более ранних версий микропроцессоров.

Push reg/mem и pop reg/mem — сохранить/восстановить содержимое в/из регистр(а). Т.к. стек — упорядоченный способ хранения данных, то необходимо эти команды использовать в паре, что бы не изменять/нарушать структуру стека. В языках высокого уровня для уменьшения ошибок стек программисту недоступен.

In AL, port и out AL, port — ввод/вывод данных в/из порт(а) (порты 0-255).

Для увеличения числа портов есть вторая модификация команды:

in acc, [DX] и out [DX], acc

Способы адресации микропроцессоров:

    1. регистровый (неявный, безадресный)

mov reg(приемник), reg(источник)

Содержимое правого регисстра пересылаются (копируются в левый регистр). Это наиболее быстродействующий способ адресации, поэтому его рекомендуется использовать чаще для повышения эффективности работы ЭВМ.

    1. Непосредственный — второй операнд находится непосредственно после команды в области команд. Этот способ адресации применяется для введения констант в вычислительный процесс. При этом константы хранятся внутри программы.

mov BL, d8 (0-FF)

mov CX, d16 (0-FFFF)

    1. Прямой. При этом в качестве операнда команды указывается адрес ячейки памяти, в которой хранятся данные. Достоинства — можно обраатиться к любой ячейке доступной области памяти. В Ассемблере используется аппарат меток, т.к. заранее вычислить прямой адрес ячейки памяти практически невозможно.

mov DX, MT1,

где MT1 — символическое имя ячейкипамяти.

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

mov DX, WORD PTR MT1

mov AL, BYTE PTR MT1+1

mov DB, 0a5h, 37h

    1. Косвенный. При этом в адресной части команды указывается адрес ячейки памяти (в регистре), соодержиимое которого является адресом ячейки памяти. Это косвенная регистровая адресация.

mov reg, [reg].

Для выполнения этой команды необходимо предварительно загрузить адрес в регистр косвенной адресации.

lea BX, Mt2

mov AX, BX

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