русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

OPND dw 25


Дата добавления: 2015-06-12; просмотров: 434; Нарушение авторских прав


При трансляции программы ассемблер заменит символическое имя смещением поля данных относительно начала сегмента, т.е. определит непосредственное смещение и поместит его в команду, например

inc word prt 28h ;увеличить на 1 слово cо смещением 28h

Примечание – В этом случае адресация данных выполняется по схеме:

EBР + <смещение, заданное в команде>,

но содержимое регистра EВР в вычислении исполнительного адреса не участвует, поскольку это частный случай команды, использующийся для явной адресации.

Размер операнда – слово, определяется директивой определения поля DW.

В отличие от прямого косвенный адрес определяет не смещение данных в основной памяти, а местоположение компонентов адреса этих данных. В этом случае в команде указываются один или два регистра в соответствии с допустимыми схемами адресации (см. ниже) и непосредственное смещение, которое может задаваться числом или символическим именем.

Адрес операнда (исполнительный) считается по формуле:

EA = (База) + (Индекс)*Масштаб + Непосредственное смещение

 

База Индекс Масштаб Смещение

é EAX ù

CS: ê EBX EAX ú

SS: ê ECX EBX 1 отсутств., ú

DS: ê EDX + ECX * 2 + 8 или ú

ES: ê EBP EDX 4 32бита ú

FS: ê ESP EBP 8 ú

GS: ê ESI ESI ú

ë EDI EDI û

Примеры:

inc word ptr[500]; непосредственный адрес

mov ES:[ECX],EDX; задана только база

mov EAX, TABLE[ESI*4] ; заданы индекс и масштаб

Косвенный адрес заключается в квадратные скобки весь или частично, например:

[OPND +ESI] OPND [ESI] OPND + [ESI] [OPND] +[ESI]

Приведенные выше формы записи косвенного адреса интерпретируются одинаково.

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



Примеры: [a + EBX] и [EBP +ESI +6].

В первом случае исполнительный адрес операнда определяется суммой содержимого регистра EBX и непосредственного смещения, заданного символическим именем «а», а во втором – суммой содержимого регистров EBP, ESI и непосредственного смещения, равного 6.

Примечание. При использовании косвенной адресации по схеме EВР + <смещение, заданное в команде> смещение не может быть опущено, так как частный случай адресации по данной схеме с нулевой длиной смещения используется для организации прямой адресации (см. предыдущую страницу). Следовательно, при отсутствии смещения в команде следует указывать нулевое смещение, т.е. [EВР +0] .

Длина операнда может определяться:

а) кодом команды – в том случае, если используемая команда обрабатывает данные определенной длины, что специально оговаривается;

б) объемом регистров, используемых для хранения операндов (1, 2 или 4 байта);

в) специальными указателями byte ptr(1 байт), word ptr(2 байта) иdword ptr(4 байта), которые используются в тех случаях, если ни один операнд не находится в регистре и размер операнда отличен от размера, определенного директивой объявления данных. Например:

mov byte ptr x, 255 ;нас интересует только первый байт слова

. . .



<== предыдущая лекция | следующая лекция ==>
Директивы определения полей памяти для размещения данных | Mov Приемник, Источник


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.