Команды пересылки данных общего назначения К этой группе относятся следующие команды:
- 1) mov — это основная команда пересылки данных;
- 2) xchg — применяют для двунаправленной пересылки данных.
Команды ввода-вывода в порт Принципиально управлять устройствами напрямую через порты несложно:
- 1) in аккумулятор, номерпорта — ввод в аккумулятор из порта с номером номерпорта;
- 2) out порт, аккумулятор — вывод содержимого аккумулятора в порт с номером номерпорта.
Команды преобразования данных К этой группе можно отнести множество команд микропроцессора, но большинство из них имеет те или иные особенности, которые требуют отнести их к другим функциональным группам.
Команды работы со стеком Эта группа представляет собой набор специализированных команд, ориентированных на организацию гибкой и эффективной работы со стеком.
Стек — это область памяти, специально выделяемая для временного хранения данных программы.
Для работы со стеком предназначены три регистра:
- 1) ss — сегментный регистр стека;
- 2) sp/esp — регистр указателя стека;
- 3) bp/ebp — регистр указателя базы кадра стека. Для организации работы со стеком существуют специальные команды записи и чтения.
- 1. push источник — запись значения источникв вершину стека.
- 2. pop назначение — запись значения из вершины стека по месту, указанному операндом назначение. Значение при этом «снимается» с вершины стека.
- 3. pusha — команда групповой записи в стек.
- 4. pushaw — почти синоним команды pusha. Атрибут разрядности может принимать значение use16 или use32. Р
- 5. pushad — выполняется аналогично команде pusha, но есть некоторые особенности.
Следующие три команды выполняют действия, обратные вышеописанным командам:
- 1) popa;
- 2) popaw;
- 3) popad.
Группа команд, описанная ниже, позволяет сохранить в стеке регистр флагов и записать слово или двойное слово в стеке.
- 1. pushf — сохраняет регистр флагов в стеке.
- 2. pushfw — сохранение в стеке регистра флагов размером в слово. Всегда работает как pushf с атрибутом use16.
- 3. pushfd — сохранение в стеке регистра флагов flags или eflags в зависимости от атрибута разрядности сегмента (т. е. то же, что и pushf).
Аналогично, следующие три команды выполняют действия, обратные рассмотренным выше операциям:
- 1) popf;
- 2) popfw;
- 3) popfd.