Курс лекций по программированию на языке ассемблера. Макурина Т.А. - 13 стр.

UptoLike

Составители: 

13
MOV AX, TABLE
Существует абсолютная и относительная прямая адресация.
Относительная прямая адресация. Используется в командах перехода
Абсолютная прямая адресация. В этом случае эффективный адрсе является
частью машинной команды, но формируется этот адрсе только из значения
поля смещения в команде.
3- Косвенная регистровая
При косвенной регистровой адресации исполнительный адрес операнда содержится в
базовом регистре BX, в регистре указателя BP или индексном регистре (SI или DI)
Косвенные регистровые операнды надо заключать в квадратные скобки, чтобы отличить их
от регистровых операндов.
MOV AX,[BX]
Для загрузки адреса в BX используется операция OFFSET(смещение) к адресу ячейки
памяти.
MOV BX, OFFSET TABLE
MOV AX,[BX]
4- Адресация по базе.
При адресации по базе Ассемблер вычисляет исполнительный адрес с помощью сложения
значения сдвига с содержимым регистров BXи BP.
Регистр BX удобно использовать при доступе к структурированным записям данных,
расположенным в разных областях памяти. В этом случае базовый адрес помещается в
базовый регистр BX и доступ к ее отдельным элементам осуществляется по их сдвигу
относительно базы.
MOV AX,[BX]+4
MOV AX,4[BP]
MOVAX,[BP+4]
5- Прямая адресация с индексированием.
При прямой адресации с индексированием исполнительный адрес вычисляется как сумма
значений сдвига и индексного регистра (DI или SI). Этот тип адресации удобен для доступа
к элементам таблицы, когда сдвиг указывает на начало таблицы, а индексный элемент к
элементам таблицы, когда сдвиг указывает на начало таблицы, а индексный регистрна ее
элемент.
MOV DI,2
MOV AL,B_TABLE[DI]
Загрузится 3-й элемент таблицы.
6- Адресация по базе с индексированием
При адресации по базе с индексированием исполнительный адрес вычисляется как сумма
значений базового регистра, индексного регистра и, возможно, сдвига.
В этом режиме адресации складывается два отдельных смещения, то он удобен при
адресации двумерных массивов, когда базовый регистр содержит начальный адрес массива,
а значение сдвига и индексного регистра суть смещения по строке и столбцу.
MOV AX,SMECH[BX][DI]
Начальный адрес в BX, в DI сдвиг блока(номер строки), а SMECH – сдвиг
Примеры:
MOV AX,[BX+2+DI]
MOV AX,[DI+BX+2}
MOV AX,[BX+2][DI]
MOVAX,[BX][DI+2]
MOV AX, TABLE
Существует абсолютная и относительная прямая адресация.
          • Относительная прямая адресация. Используется в командах перехода
          • Абсолютная прямая адресация. В этом случае эффективный адрсе является
             частью машинной команды, но формируется этот адрсе только из значения
             поля смещения в команде.
                               3- Косвенная регистровая
При косвенной регистровой адресации исполнительный адрес операнда содержится в
базовом регистре BX, в регистре указателя BP или индексном регистре (SI или DI)
Косвенные регистровые операнды надо заключать в квадратные скобки, чтобы отличить их
от регистровых операндов.
MOV AX,[BX]

Для загрузки адреса в BX используется операция OFFSET(смещение) к адресу ячейки
памяти.
MOV BX, OFFSET TABLE
MOV AX,[BX]
                                   4- Адресация по базе.
При адресации по базе Ассемблер вычисляет исполнительный адрес с помощью сложения
значения сдвига с содержимым регистров BXи BP.
 Регистр BX удобно использовать при доступе к структурированным записям данных,
расположенным в разных областях памяти. В этом случае базовый адрес помещается в
базовый регистр BX и доступ к ее отдельным элементам осуществляется по их сдвигу
относительно базы.
MOV AX,[BX]+4
MOV AX,4[BP]
MOVAX,[BP+4]
                         5- Прямая адресация с индексированием.
При прямой адресации с индексированием исполнительный адрес вычисляется как сумма
значений сдвига и индексного регистра (DI или SI). Этот тип адресации удобен для доступа
к элементам таблицы, когда сдвиг указывает на начало таблицы, а индексный элемент к
элементам таблицы, когда сдвиг указывает на начало таблицы, а индексный регистр – на ее
элемент.
MOV DI,2
MOV AL,B_TABLE[DI]
Загрузится 3-й элемент таблицы.
                         6- Адресация по базе с индексированием
При адресации по базе с индексированием исполнительный адрес вычисляется как сумма
значений базового регистра, индексного регистра и, возможно, сдвига.
В этом режиме адресации складывается два отдельных смещения, то он удобен при
адресации двумерных массивов, когда базовый регистр содержит начальный адрес массива,
а значение сдвига и индексного регистра суть смещения по строке и столбцу.
MOV AX,SMECH[BX][DI]
Начальный адрес в BX, в DI сдвиг блока(номер строки), а SMECH – сдвиг
Примеры:
MOV AX,[BX+2+DI]
MOV AX,[DI+BX+2}
MOV AX,[BX+2][DI]
MOVAX,[BX][DI+2]




                                       13