Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Режимы адресации




Режимом адресации называется процедура нахождения операнда для выполнения команды.

Все обращения к данным делятся на три типа:

1) обращение к непосредственным данным;

2) обращение к данным в регистрах;

3) обращение к данным в памяти.

Непосредственная адресация – когда операнд-константа записана непосредственно в команде.

Например, MOV AX, 5 – вторым операндом является константа. Она может быть только источником.

Регистровая адресация. В качестве операндов могут быть использованы регистры микропроцессора. Они могут быть как приёмником, так и источником.

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

Например, MOV AX, BX

Если данные находятся в ячейках памяти, то в этом случае главная цель состоит в том, чтобы вычислить исполнительный адрес ЕА.

При адресации ячеек памяти различают два вида: прямую и косвенную

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

MOV AX, LABEL – эта команда загружает содержимое ячейки памяти LABEL в регистр AX, т.е. здесь явно известен адрес операнда в памяти.

Также при прямой адресации можно использовать выражение, состоящее из некоторой переменной или константы, которая добавляется к соответствующему смещению имени переменной.

Таким образом можно обращаться к полям составной переменной (например, можно обеспечить доступ к полям сложной переменной - структуры).

Косвенная адресация. При такой адресации в качестве исполнительного адрес ЕА выступает содержимое базового или индексного регистров.

Косвенная адресация называется базовой, если, используются базовые регистры BX и BP и индексной, если используются индексные регистры SI и DI.

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

Косвенная адресация имеет следующие разновидности:

1. косвенная базовая адресация;

2. косвенная базовая адресация со смещением;

3. косвенная индексная адресация;

4. косвенная индексная адресация со смещением;

5. косвенная базово-индексная адресация;

6. косвенная базово-индексная адресация со смещением.

1. Косвенная базовая адресация — исполнительный адрес находится в регистре BX, тогда подразумевается по умолчанию сегмент данных (сегментный регистр DS); если исполнительный адрес находится в BP, то подразумевается по умолчанию сегмент стека (сегментный регистр SS)

Например, MOV AX, [BX] или MOV AX, [BP]

2. Косвенная базовая адресация со смещением

При такой адресации исполнительный адрес равен сумме содержимого регистров BX (или BP) и значения сдвига.

Эта адресация удобна при доступе к структурированным записям данных, расположенных в разных областях памяти, тогда базовый адрес записи помещается в базовый регистр BX, а доступ к её отдельным элементам осуществляется по их сдвигу относительно базы.

Например, MOV AX, [BX]+4

или MOV AX, [BP]+4

3. Косвенная индексная адресация

Исполнительный адрес находится в одном из индексных регистров SI и DI.

Например, MOV AX, [SI]

MOV AX, [DI]

Косвенная индексная адресация со смещением — когда исполнительный адрес определяется как сумма содержимого регистра SI или DI и указанной в команде константы, называемой смещением, которое может быть числом или адресом. Этот тип адресации удобен для доступа к элементам таблицы.

Например, MOV AX, [SI]+5

MOV AX, [DI]+5

5. Косвенная базово-индексная адресация

При такой адресации исполнительный адрес определяется в результате сложения содержимого базового регистра и индексного

MOV AX, [BX+DI]

MOV AX, [BX+[SI]

Благодаря возможности изменения в процессе выполнения программы содержимого базового и индексного регистров, базово-индексная адресация является гибким средством доступа к самым различным областям компьютерной памяти.

6. Косвенная базово-индексная адресация со смещением

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

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

Например,

MOV AX, [BX+DI+2]

MOV AX, [BX+SI+2]

 

Глава 3 Представление данных

Здесь рассматривается машинное представление целых чисел, строк и адресов. Представление двоично-десятичных чисел, используемых достаточно редко, не рассматривается. Что касается вещественных чисел, то в ПК нет команд вещественной арифметики (операции над этими числами реа­лизуются программным путем или выполняются сопроцессором) и потому нет стандартного представления вещественных чисел.

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

При записи двоичных чисел используют в конце числа суффикс b.

Шестнадцатеричные числа записываются с суффиксом h на конце. Для того чтобы отличить шестнадцатеричные числа от имён и идентификаторов, в которых так же могут быть использованы такие же буквы, первая цифра любого шестнадцатеричного числа должна быть обязательно арабской; если она начинается с буквы, то в начале числа пишется ноль, например, 0A7h.

По умолчанию (если суффикс опущен) используется десятичная система счисления.




Поделиться с друзьями:


Дата добавления: 2014-11-09; Просмотров: 915; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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