Система команд
В приводимых ниже таблицах указывается мнемоника всех допустимых инструкций для МП 8086/8088. Для удобства пользования все команды разбиты на 6 функциональных групп – пересылки данных, арифметические, битовые, строковые, передачи управления, прерываний. Внутри каждой группы команды объединяются в подгруппы по общим дополнительным признакам.
Детальный анализ всех команд МП 8086/8088 занял бы слишком много места, поэтому в идущих за таблицами пояснениях рассматриваются лишь наиболее популярные команды. Исчерпывающее описание всех команд Вы найдете в спец. литературе.
Команды пересылки данных
Мнемоника | Формат | Пояснение |
---|---|---|
Команды общего назначения | ||
MOV | MOV приемник, источник | Переслать значение |
PUSH | PUSH источник | Поместить в стек |
POP | POP приемник | Извлечь из стека |
XCHG | XCHG приемник, источник | Обменять значения |
XLAT | XLAT таблица | Загрузить в AL байт из таблицы |
Команды ввода-вывода | ||
IN | IN аккумулятор, порт | Читать из порта |
OUT | OUT порт, аккумулятор | Записать в порт |
Команды пересылки адреса | ||
LEA | LEA регистр 16, память 16 | Загрузить исполнительный адрес |
LDS | LDS регистр 16, память32 | Загрузить в DS:регистр16 полный адрес |
LES | LES регистр 16, память32 | Загрузить в ES:регистр16 полный адрес |
Команды пересылки флагов | ||
LAHF | LAHF | Загрузить флаги в АН |
SAHF | SAHF | Установить флаги из АН |
PUSHF | PUSHF | Поместить флаги в стек |
POPF | POPF | Извлечь флаги из стека |
Одна из наиболее часто используемых команд – МОV позволяет в защищенном режиме переслать байт или слово из регистра в регистр, из памяти в регистр или из регистра в память. Тип пересылаемых данных (байт или слово) определяется регистром, участвующим в пересылке. Ниже приводятся примеры использования команды:
mov ах,Table {Пересылка слова из памяти в АХ} mov Table,ah {Пересылка байта из АН в память} mov ds,ax {Пересылка в сегмент данных} mov es:[bx],ax {Пересылка слова в память: базовая адресация с заменой сегмента} mov ch,-17 {Переслать константу в регистр} mov Table,$FF {Переслать константу в память}