Лекция: Способы адресации: косвенная адресация с масштабированием, адресация по базе с индексированием, адресация по базе с индексированием и масштабированием.

Косвенная адресация с масштабированием.
mov ax,[esi*2]+2 — этот метод адресации полностью идентичен предыдущему, за исключением того, что с его помощью можно прочитать элемент массива слов, двойных слов или учетверенных слов, просто поместив номер элемента в регистр
множитель, может быть равен 1, 2, 4 или 8 — соответствует размеру элемента массива — байту, слову, двойному слову, учетверенному слову соответственно.

Адресация по базе с индексированием — в этом методе адресации смещение операнда в памяти вычисляется как сумма чисел, содержащихся в двух регистрах, и смещения, если оно указано
Все следующие команды — это разные формы записи одного и того же действия:
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]

Адресация по базе с индексированием и масштабированием — это самая полная возможная схема адресации, в которую входят все случаи, рассмотренные ранее, как частные
mov eax, ds:[eax+ebx*2+2]

21. Структура программы: метки, команды/директивы, операнды, комментарии. Директивы LABEL, EQU и =.

Каждая инструкция программы может иметь свою метку – имя, которое будет однозначно описывать местонахождение этой инструкции в программе. Имя метки пишется в самом начале строки и отделяется двоеточием.

Команды или инструкции, представляющие собой символические аналоги машинных команд.

Директивы, являющиеся указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении;

· постоянные, или непосредственные, операнды

· адресные операнды

· перемещаемые операнды

· счетчик адреса

· регистровый операнд

· базовый и индексный операнды

· структурные операнды

Директива LABEL позволяет вам определить как имя метки, так

и ее тип, не определяя при этом данные. Вот, например, еще один

способ, с помощью которого можно определить в предыдущем примере

массив KeyBuffer:

 

.

.

.

KeyBuffer LABEL BYTE

DB 10 DUP (?)

.

.

.

 

Типы меток, которые можно определить с помощью директивы

LABEL, включают в себя:

Директива equ или = позволяет назначать имена переменных и констант. Теперь можно назначить переменной адрес в одном месте и пользоваться идентификатором переменной во всей программе.

еще рефераты
Еще работы по информатике