Система команд
В приводимых ниже таблицах указывается мнемоника всех допустимых инструкций для МП 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 {Переслать константу в память}
