Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Косвенная адресация с масштабированием.
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 или = позволяет назначать имена переменных и констант. Теперь можно назначить переменной адрес в одном месте и пользоваться идентификатором переменной во всей программе.





Дата публикования: 2015-01-26; Прочитано: 1284 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...