
- •10.09.2012 — Лекция №1
- •12.09.2012 — Лекция №2
- •17.09.2012 — Лекция №3
- •23.09.2012 — Лекция №4
- •26.09.2012 — Лекция №5
- •1.10.2012 — Лекция №6
- •08.10.2012 — Лекция №7
- •08.10.2012 — Лекция №8
- •22.10.2012 — Лекция №10
- •24.10.2012 — Лекция №11
- •Команды микропроцессора x086.
- •03.12.2012 — Лекция №19
- •10.12.2012 — Лекция №21
- •17.12.2012 — Лекция №22
- •19.12.2012 — Лекция №23
24.10.2012 — Лекция №11
Бит ZF - если после выполнения команды результат равн 0, то признак ZF устанавливается в 1, иначе 0.
Бит SF — используется для хранения знака результата. Если результат отрицательный, SF устанавливается в 1, иначе 0.
Бит TF — трассировка — бит для установки режима пошагового выполнения программы. Если бит установлен в 1, используется режим пошагового выполнения (используется в debugger'е), если в 0 — режим прерывания (используется в системе)
Бит IF — запрет прерывания, если установлен в 1
Бит DF (direction) — задает направление сканирования массива в специальных командах обработки массивов. Если установлен в 1 — в область уменьшения адрессов масива, 0 — увеличения.
Бит OF — бит переполнения разрядной сетки. Если установлен в 1, значит сетка переполнена, реализуется прерывание и управление передается ОС.
Команды микропроцессора x086.
Все команды делятся на группы для удобства приминения и изучения.
каманды пересылки данных
логические команды
арифметические команды
команды передачи управления
команды управления ресурсами микропроцессора
цепочечные команды (работа с цепочками данных)
Команды пересылки данных
обобщенное обозначение команды пересылки
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
Способы адресации микропроцессоров:
регистровый (неявный, безадресный)
mov reg(приемник), reg(источник)
Содержимое правого регисстра пересылаются (копируются в левый регистр). Это наиболее быстродействующий способ адресации, поэтому его рекомендуется использовать чаще для повышения эффективности работы ЭВМ.
Непосредственный — второй операнд находится непосредственно после команды в области команд. Этот способ адресации применяется для введения констант в вычислительный процесс. При этом константы хранятся внутри программы.
mov BL, d8 (0-FF)
mov CX, d16 (0-FFFF)
Прямой. При этом в качестве операнда команды указывается адрес ячейки памяти, в которой хранятся данные. Достоинства — можно обраатиться к любой ячейке доступной области памяти. В Ассемблере используется аппарат меток, т.к. заранее вычислить прямой адрес ячейки памяти практически невозможно.
mov DX, MT1,
где MT1 — символическое имя ячейкипамяти.
Обычно все данные группируются в одном адресном пространстве в конце программы. Если же формировать ее в начале программы, то необходимо их обойти с помощью команды jump или не запускать программу с начального адреса трансляции.
mov DX, WORD PTR MT1
mov AL, BYTE PTR MT1+1
mov DB, 0a5h, 37h
Косвенный. При этом в адресной части команды указывается адрес ячейки памяти (в регистре), соодержиимое которого является адресом ячейки памяти. Это косвенная регистровая адресация.
mov reg, [reg].
Для выполнения этой команды необходимо предварительно загрузить адрес в регистр косвенной адресации.
lea BX, Mt2
mov AX, BX
Косвенная адресация используется для работы с массивами данных, в качестве начала массива записывается начальный адрес, позже он изменяется программным способом.