Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Косвенная адресация с масштабированием.
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!