транслируются в одну и ту же машинную команду и помещают в регистр AX слово, которое находится в сегменте, указываемом DS, со смещением, равным значению BX плюс 2.
С помощью данного способа адресации часто организуется доступ к одномерному массиву однобайтных данных. Непосредственно заданное число соответствует адресу начала массива, а число в регистре — индексу элемента массива, к которому нужно обратиться.
Если элементами одномерного массива являются не байты, а одинарные, двойные или четверные слова, то предыдущий способ адресации не годится. Он дополняется масштабированием.
Например, команда
MOV AX, [ESI*2]+2
Помещает в регистр AX слово, которое находится в сегменте, указываемом DS, со смещением, равным сумме удвоенного значения ESI и числа 2.
В данном способе адресации можно использовать только регистр BX или 32-разрядные регистры общего назначения.
В данном способе адресации смещение операнда в памяти вычисляется как сумма двух чисел, содержащихся в двух различных регистрах, и смещения, если таковое задано.
Например, все нижеследующие команды:
MOV AX, [BX+SI+2]
MOV AX, [BX][SI]+2
MOV AX, [BX+2][SI]
MOV AX, [BX][SI+2]
MOV AX, 2[BX][SI]
транслируются в одну и ту же машинную команду, которая помещает в регистр AX слово, которое находится в сегменте, указываемом DS, со смещением, равным сумме значений, хранящихся в BX и SI, и числа 2.
Из 16-разрядных регистров так складывать можно BX+SI, BX+DI, BP+SI и BP+DI, а из 32-разрядных — все регистры общего назначения в любом сочетании.
Примечание. Как и в случае прямой адресации, вместо числа обычно ставится имя переменной.
Это самый полный способ адресации, включающий все ранее рассмотренные случаи как частные. Полный адрес операнда задаётся выражением по следующей схеме:
[сегментный регистр:][
РОН1+
РОН2*
{1
|2
|4
|8
}]+
смещение где РОН1 — любой 32-разрядный
регистр общего назначения;
РОН2 — любой 32-разрядный регистр общего назначения, кроме ESP.
Смещение может быть байтом или двойным словом.
7.1. Команды пересылки данных
7.2. Команды арифметических операций
7.3. Команды двоично-десятичной арифметики
7.4. Команды логических операций
7.5. Команды операций сдвига
7.6. Команды операций над битами и байтами
7.7. Команды передачи управления
7.8. Строковые операции
7.9. Команды управления флагами
7.10. Команды загрузки сегментных регистров
7.11. Другие команды
[1, 3, 10]
Команды пересылки данных не изменяют флагов.
MOV приёмник, источник пересылка данных 8086
Базовая команда пересылки данных. Копирует содержимое источника в приёмник. Содержимое источника не изменяется.
Источником может быть:
— непосредственный операнд,
— регистр общего назначения,
— сегментный регистр,
— память.
Приёмником может быть:
— регистр общего назначения,
— сегментный регистр, кроме CS,
— память.
Оба операнда должны быть одного и того же размера.
Недопустимые сочетания приёмника и источника:
— переменная, переменная;
— сегментный регистр, сегментный регистр;
— сегментный регистр, непосредственное число.
Примечание. Помещение значения одного
сегментного регистра или непосредственного значения в другой сегментный
регистр, кроме CS, выполняются парой команд MOV
или через стек парой команд PUSH
, POP
.
CMOVxx приёмник, источник условная пересылка данных P6
Условная пересылка данных. Копирует содержимое источника в приёмник. Содержимое источника не изменяется.
Источником может быть:
— регистр общего назначения;
— память.
Приёмником может быть регистр.
xx имеют то же значение, что и в командах условного перехода.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.