- •Исследование процессов ввода/вывода информации и системы команд микропроцессоров семесйства intel 80×i86
- •Введение
- •1.Цель работ
- •2.1. Архитектура микропроцессора Intel 8086.
- •2.2. Адресация памяти и данных.
- •2.3. Синтаксис операндов языка assembler
- •2.4. Команды передачи данных.
- •Mov ax,segment
- •3) Mov [bx],dx переслать (dx) в ячейку адресованную (вх)
- •Mov al,es:[si]; ds заменен на es
- •Команды lea, lds, les.
- •Lea reg, memr
- •Команда xchg
- •Стековые команды push и рор
- •2.5 Префикс программного сегмента (psp)
- •2.6 Арифметические команды
- •Команды сложения и вычитания
- •0015 65А0
- •0037 1D3e
- •0004 В837
- •0001 F0f8
- •Команды расширения знака.
- •Команды inc, dec, neg, cmp.
- •Команды двоичного умножения и деления.
- •Дополнительные сведения.
- •2.7 Основные правила при разработке программ на языке assembler.
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •3. Лабораторные работы
- •Контрольные вопросы
- •Лабораторная работа № 2
- •Контрольные вопросы
- •Лабораторная работа № 3
- •Дополнительная информация для составления программы по данному заданию.
- •Лабораторная работа № 4
- •Контрольные вопросы
- •Лабораторная работа № 5
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Контрольные вопросы
- •Лабораторная работа № 7
- •Рекомендации по выполнению лабораторной работы.
- •4.1. Тексты подпрограмм вывода на экран.
- •Int 21h
- •Int 21h
- •Контрольные вопросы
- •Лабораторная работа № 8
- •Контрольные вопросы
- •Лабораторная работа № 9
- •Контрольные вопросы
- •Лабораторная работа № 10
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 14
- •Контрольные вопросы
- •6. Требования к отчетам
- •7. Библиографический список
2.3. Синтаксис операндов языка assembler
Общий формат ассемблерной команды имеет следующий вид:
Метка: Мнемоника Операнд 1,Операнд 2; Комментарий.
Пробелы вводятся произвольно, но минимум один пробел должен быть в тех местах, где его отсутствие ведет к неоднозначности. Например, между мнемоникой и первым операндом. Наличие операндов зависит от команды- некоторые команды не имеют операндов, в других командах требуется один операнд, а в некоторых - два операнда. В случае двух операндов они разделяются запятой. Наличие метки в команде необязательно. При отсутствии метки двоеточие не ставится. При отсутствии комментария точка с запятой не нужна. Комментарием может быть целая строка и в этом случае первый символом в строке должна быть точка с запятой.
Ассемблерная команда должна иметь операнд для каждого оператора машинной команды и обозначение каждого операнда должно идентифицировать режим его адресации. При двух операндах первым указывается операнд- получатель, а вторым операнд-источник. Рассмотрим типичную ассемблерную команду:
М1: ADD AX, COUNT[BX]; добавить элемент ; из COUNT в АХ
Эта команда прибавляет к регистру АХ содержимое ячейки памяти COUNT, адрес которой формируется из содержимого регистра ВХ. В этой команде используется регистровый и регистрово-относительный режим адресации.
Когда операндом является слово в памяти, младший байт слова имеет меньший (младший) адрес, а старший байт - больший.
Форматы (синтаксис) операндов для различных режимов адресации приведем в табл. 2.
Таблица 2 .
-
Формат
Примеры
Непосредственный
Выражение_константа
10011В
523
0А5Н
’аb’
Прямой
Переменная +/-выражение_константа
уу-хх+5 wat cnt-5 array +5
Регистровый
Регистр
ВН
АХ
Регистровый косвенный
[Регистр]
[ВХ]
[DI]
[SI]
Продолжение таблицы 2
-
Регистровый относительный
Переменная [базовый регистр +/- выражение_ константа] или [регистр +/- выражение константа]
war[BX]
[SI+10]
[ВХ-1]
Базовый индексный
[базовый_регистр][индексный регистр]
[BP][DI]
[ВР+DI]
Относительный базовый индексный
Переменная[базовый регистр+/- выражение_кон-станта][индексный_регистр +/-выражение_константа
или
переменная[базовый регистр][индексный регистр]
DATA[ВХ+5] [SI-2]
DATA[BX][SI]
[базовый_регистр +/ - выражение_конс-танта][индексный_ регистр +/- выраже-ние_константа]
[BP+2][SI+5]
Примечание: во всех режимах, кроме непосредственного, "выражение константа" не обязательно.