Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по архитектуре ЭВМ1 / Пересылка +лог.команды.doc
Скачиваний:
23
Добавлен:
02.05.2014
Размер:
93.7 Кб
Скачать

7

Основные команды простых программ на Ассемблере

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

  1. Команды пересылки данных, осуществляющие обмен информацией.

  2. Арифметические команды, выполняющие арифметические операции над числами со знаком и без знака.

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

  4. Команды передачи управления, управляющие последовательностью исполнения команд программы.

  5. Команды обработки строк для перемещения, сравнения и сканирования символьных данных.

  6. Команды прерывания, вызывающие обработку микропроцессором некоторых специфических ситуаций.

  7. Команды управления процессором, устанавливающие и сбрасывающие флаги состояния, а также изменяющие режим функционирования микропроцессора.

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

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

Мнемокод

Формат

Команды общего назначения

MOV

MOV приемник, источник

PUSH

PUSH источник

POP

POP приемник

XCHG

XCHG приемник, источник

XLAT

XLAT таблица_источник

Команды ввода-вывода

IN

IN аккумулятор, порт

OUT

OUT порт аккумулятор

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

LEA

LEA регистр (16), память (16)

LDS

LDS регистр (16), память (32)

LES

LES регистр (16), память (32)

Команды пересылки флагов

LAHF

LAHF

SAHF

SAHF

PUSHF

PUSHF

POPF

POPF

Никакие из этих команд, кроме SAHF и POPF значения флагов не изменяют.

Команды ввода-вывода будем подробнее рассматривать далее.

Относительно команд пересылки адреса следует отметить, что в отличие от MOV они пересылают не значения, а адрес операнда. Эту операцию выполняет LEA. По этой команде в приемник, каковым является 16-разрядный регистр, переносится исполнительный (эффективный) адрес данных (иначе говоря, в регистр загружается смещение адреса памяти относительно начала сегмента данных).

Для загрузки полного адреса ячейки памяти существуют команды LDS и LES. При их выполнении смещение искомого адреса пересылается в указанный командой 16-разрядный РОН, а сегментная составляющая адреса (которая потом смещается на 4 разряда при определении физического адреса) помещается в 1-ой команде в регистр данных DS, а во 2-ой команде – в дополнительный регистр данных ES.

Команды PUSH и POP помещают или извлекают указанные в них данные на вершину стека (более подробно их будем рассматривать на конкретных примерах программ).