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

Лабораторная работа №1

«Ознакомление с программой разработки и отладки программ на языке

Ассемблера - DEBUG»

 

Цель работы: изучить команды программы DEBUG при разработке и отладки программ на языке Ассемблера.

 

Оборудование: IBM - совместимый персональный компьютер, работающий под управлением операционной системы, совместимой с MS-DOS®.

 

Программное обеспечение: Программа DEBUG.

 

Краткие теоретические сведения.

 

1. Средства разработки программ на языке Ассемблера

2. Этапы разработки программы на языке Ассемблера

3. Применение команд программы DEBUG для создания и отладки прикладного программного обеспечения на языке Ассемблера.

 

Вопросы к защите лабораторной работы.

 

1. Ввод программы.

2. Отладка программы

3. выполнение программы

4. Ввод программы.

5. Вывод программы

6. Перемещение данных

7. Сравнение данных

8. Модификация памяти

9. Работа с регистрами микропроцессора

 

Лабораторная работа №2

«Изучение команд пересылки данных»

 

Цель работы: изучить способы адресации данных микропроцессором i8x86 и применение этих методов при пересылке данных.

 

Оборудование: IBM - совместимый персональный компьютер, работающий под управлением операционной системы, совместимой с MS-DOS®.

 

Программное обеспечение: Программа DEBUG

Краткие теоретические сведения.

1. Методы адресации данных

2. Команды пересылки данных

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

Микропроцессор 8x86 предоставляет Вам множество способов доступа к операндам, с которыми должна работать Ваша программа. Операнды могут содержаться в регистрах, в самих командах, в памяти или в портах ввода-вывода. В рекламных проспектах производителей оборудования утверждается, что микро­процессор 8x86 имеет 24 режима адресации операндов. Пожалуй, так оно и есть, если рассматривать все возможные комбинации. Здесь мы разделяем режимы адресации на семь групп:

1. Регистровая адресация.

2. Непосредственная адресация.

3. Прямая адресация.

4. Косвенная регистровая адресация.

5. Адресация по базе.

6. Прямая адресация с индексированием.

7. Адресация по базе с индексированием.

 

Микропроцессор выбирает один из семи режимов адресации по значению поля режима команды. Ассемблер присваивает то или иное значение полю режима в зависимости от того, какой вид имеют операнды в исходной программе. Напри­мер, если вы написали

MOV АХ,ВХ

то Ассемблер закодирует оба операнда (АХ и ВХ) для регистровой адресации. Однако если Вы заключили операнд-источник в квадратные скобки:

MOV AХ,[ВХ]

то Ассемблер закодирует операнд-источник для косвенной регистровой адреса­ции.

В табл. 1 приведены форматы операндов языка ассемблера для всех семи режимов адресации, реализуемых микропроцессором 8x86, и для каждого форма­та указано, какой из регистров сегмента используется для вычисления физическо­го адреса. Обратите внимание, что во всех режимах предполагается доступ к сегменту данных (т. е. регистром сегмента служит регистр DS), и только в тех случаях, когда используется регистр ВР, предполагается доступ к сегменту стека (т. е. регистром сегмента служит регистр SS).

Важное замечание: при исполнении команд микропроцессора 8x86, манипулирующих строками, предполагается, что регистр DI указывает на ячейку дополнительного сегмента, а не сегмента данных. Таким образом, в качестве регистра сегмента эти команды используют регистр ES. Все другие команды исполняются по правилам, описанным в табл.1.

Таблица 1. Режимы адресации микропро цессора 8x86

Режим адресации Формат операнда Регистр сегмента
Регистровый регистр Не используется
Непосредственный данное Не используется
Прямой сдвиг метка DS DS
Косвенный регистровый [ВХ] [ВР] [DI] [SI] DS SS DS DS
По базе [ВХ] + сдвиг [ВР] + сдвиг DS CS
Прямой с индексированием [DI] + сдвиг [SS] + сдвиг DS DS
По базе с индексированием [BX][SI] + сдвиг [ВХ] [DI] + сдвиг [ВР] |S1] + сдвиг [ВР] [DI] + сдвиг DS DS SS SS

 

Примечания к таблице:

1. Компонент сдвиг при адресации по базе с индексированием необязателен.

2. Операнд регистр может быть любым 8-ми 16-и битовым регистром, кроме регистра IP.

3. Операнд данное может быть 8- или 16-битовым значением константы.

4. Компонент сдвиг может быть 8- или 16-битовым значением смещения со знаком.

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

Каждое описание режима адресации, приведенное в данном разделе, сопровож­дается примерами его применения. В большинстве случаев для этого использует­ся команда MOV микропроцессора 8x86.