Читайте также:
|
|
Лабораторная работа №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.
Дата добавления: 2015-11-13; просмотров: 37 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
FACULTY OF PHYSICS AND APPLIED INFORMATICS – 15 | | | Команды общего назначения |