Косвенная базовая (регистровая) адресация
При такой адресации эффективный адрес операнда может находиться в любом из регистров общего назначения, кроме sp/esp и bp/ebp (это специфические регистры для работы с сегментом стека). Синтаксически в команде этот режим адресации выражается заключением имени регистра в квадратные скобки [].
Косвенная базовая (регистровая) адресация со смещением
Этот вид адресации является дополнением предыдущего и предназначен для доступа к данным с известным смещением относительно некоторого базового адреса. Этот вид адресации удобно использовать для доступа к элементам структур данных, когда смещение элементов известно заранее, на стадии разработки программы, а базовый (начальный) адрес структуры должен вычисляться динамически, на стадии выполнения программы.
Косвенная индексная адресация со смещением
Этот вид адресации очень похож на косвенную базовую адресацию со смещением. Здесь также для формирования эффективного адреса используется один из регистров общего назначения. Но индексная адресация обладает одной интересной особенностью, которая очень удобна для работы с массивами. Она связана с возможностью так называемого масштабирования содержимого индексного регистра.
Косвенная базовая индексная адресация
При этом виде адресации эффективный адрес формируется как сумма содержимого двух регистров общего назначения: базового и индексного. В качестве этих регистров могут применяться любые регистры общего назначения, при этом часто используется масштабирование содержимого индексного регистра.
Косвенная базовая индексная адресация со смещением
Этот вид адресации является дополнением косвенной индексной адресации. Эффективный адрес формируется как сумма трех составляющих: содержимого базового регистра, содержимого индексного регистра и значения поля смещения в команде.
53. Команды пересылки данных
Команды пересылки данных общего назначения
К этой группе относятся следующие команды:
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).
Аналогично, следующие три команды выполняют действия, обратные рассмотренным выше операциям:
Читать дальше
Конец ознакомительного отрывка
Купить книгу