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

Команды пересылки данных общего назначения

К этой группе относятся следующие команды:

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.