Пример 2.2. Использование непосредственной адресации                                                                                         1. MOV AL, 00101011B                  Команда пересылки. Осуществляет загрузку двоичного числа 00101011 (5310) в младший байт регистра данных.                  2. INT 21H                  Команда прерывания. Инициирует прерывание 2116 (3310).                  3. XOR AX, BX                  Исключающее ИЛИ содержимого регистров АХ и ВХ.                                     2. Прямой режим адресации. В этом режиме адресации 16-битный адрес также непосредственно указан в команде. Физический адрес по умолчанию вычисляется с использованием сегментного регистра DS. Операнд в команде записывается в виде константного выражения или переменной, или комбинации «переменная ± константное выражение».                                     Пример 2.3. Запись прямого режима адресации                  Если переменная описана как                                     TABLE DB 5, 4, 3, 2, 1                                     то нижеследующие команды пересылки можно записать:                                     1. MOV AL, TABLE                  Загрузка в младший байт регистра данных числа 5.                  2. MOV AL, TABLE+3                  Загрузка в младший байт регистра данных числа 2.                                     3. Регистровый прямой режим адресации. При использовании этого режима данные находятся в регистре, который указан в команде в виде имени.                                     Пример 2.4. Использование регистрового прямого режима адресации                  1. INC AX                  Содержимое регистра данных АХ увеличивается на единицу.                  2. MOV BP, SP                  Пересылать содержимое адреса стека (SP) в базовый регистр (ВР).                                     4. Регистровый косвенный режим адресации. В этом режиме адресации адрес данных может находиться в одном из следующих регистров: ЕВР, ЕВХ, ESI, EDI. Физический адрес вычисляется с использованием по умолчанию регистра сегмента стекаSS для регистра ЕВР и с использованием регистра сегмента данныхDS. Для остальных регистров в качестве операнда указывается имя регистра, заключенное в квадратные скобки.                                     Пример 2.5. Использование косвенного регистрового режима адресации                  1. INC WORD PTR [BX]                  Увеличить на единицу содержимое слова памяти, адрес которого находится в регистре ВХ.                                     5. Регистровый относительный режим адресации.В этом режиме адрес данных вычисляется как сумма смещения и содержимого одного из регистров EBP, EBX, ESI, EDI. При вычислении адреса по умолчанию используется содержимое регистра SS, если в команде указан регистрEBP, и регистраDS, если указан другой регистр. Операнд команды может быть записан в одном из следующих вариантов:                  · переменная [регистр ± константное выражение];                  · переменная [регистр];                  · [регистр ± константное выражение].                                     Пример 2.6. Использование регистрового относительного режима адресации                  1. INC TABLE [BX]                  Увеличить на единицу элемент массива TABLE. Смещение элемента относительно TABLE находится в регистре BX.                  2. INC WORD PTR [BX+3]                  Увеличить на 1 содержимое слова памяти, адрес которого определяется как сумма содержимого регистра ВХ плюс 3.                                     6. Базовый индексный режим адресации. В этом режиме адресации адрес данных вычисляется как сумма содержимого базового и индексного регистров. Возможны следующие 4 комбинации регистров: EBX+ESI, EBP+ESI, EBX+EDI, EBP+EDI. При вычислении физического адреса по умолчанию используется регистр SS, если используется регистр EBP, и регистр DS, если в команде указан другой регистр. Операнды в команде записываются в виде:                                     [Базовый регистр] [Индексный регистр]                                     Пример 2.7. Использование базового индексного режима адресации                  INC BYTE PTR [BX] [SI]                  Операнд адресует байт.                                     7. Относительный базовый индексный режим адресации. Исполнительный адрес в этом режиме адресации вычисляется как сумма смещения, содержимого базового и индексного регистров. Здесь также возможны 4 комбинации регистров: EBX + ESI + смещение, EBP + ESI + смещение, EBX + EDI + смещение, EBP + EDI + смещение. При вычислении адреса по умолчанию используется регистр SS, если в команде используется регистрBP, или регистрDS, если указан регистрDX. Операнд в команде может быть задан в одной из следующих комбинаций:                  · переменная [базовый регистр] [индексный регистр];                  · переменная [базовый регистр ± константное выражение] [индексный регистр];                  · переменная [базовый регистр] [индексный регистр ± константное выражение];                  · переменная [базовый регистр ± константное выражение] [индексный регистр ± константное выражение];                  · [базовый регистр ± константное выражение] [индексный регистр ± константное выражение];                  · [базовый регистр] [индексный регистр ± константное выражение];                  · [базовый регистр ± константное выражение] [индексный регистр].                                                                                                                                                                                                                        |