- •Вопрос 1
- •Вопрос 2
- •Алгоритм работы управляющего автомата
- •Inta - признак начала работы в режиме прерывания.
- •Вопрос 3
- •Способы адресации
- •Спецкоманды
- •Псевдокоманды
- •2.4. Способы адресации
- •2.5. Форматы команд 16-разрядного мп
- •2.6. Система команд 16-разрядного мп
- •2.6.1. Команды передачи данных
- •2.6.2. Команды обработки данных
- •2.6.3. Команды управления
- •2.6.4. Команды условного перехода
- •2.6.5. Команды обработки цепочек данных
- •Вопрос 4
- •Вопрос 5
- •Организация шин микроЭвм.
- •Увеличение нагрузочной способности шин мп
- •Шинные формирователи
- •Системный контроллер
- •Вопрос 6
- •Вопрос 7
- •Инициализация.
- •2 Разряда
- •Г Сброс раф работы первичного автомата
- •Вопрос 8
- •Структурная схема.
- •Режимы работы.
- •Управляющие слова, инициализация (уси).
- •Каскадная схема включения.
- •Вопрос 10
- •3.4. Обработка прерываний
- •3.5. Организация прямого доступа к памяти
- •3.6. Запуск и сброс микропроцессора
- •Вопрос 11
- •Вопрос 12
- •Вопрос 13
- •Вопрос 14
- •Вопрос 15
- •Сторожевые таймеры
- •Организация таймеров/счетчиков.
2.6.5. Команды обработки цепочек данных
Пять основных базовых команд: MOVS, CMPS, LODS, SCAS, STOS, позволяют обрабатывать по одному байту или 16-разрядному слову из цепочки (массива) данных. Этими командами могут обрабатываться цепочки данных до 64 кбайт. Команды могут выполнять передачу элемента цепочки данных, сравнение и поиск значений в цепочке данных.
Для адресации при использовании команд обработки цепочек данных используется сегментный регистр ES и индексные регистры SI и DI.
Регистр SI содержит смещение адреса источника. Состояние признака D определяет декремент (D=1) или инкремент (D=0) регистров SI и DI.
Команда MOVS осуществляет пересылку байта (MOVS B) или 16-разрядного слова (MOVS W) из цепочки данных источника, адресованного с помощью регистра SI, в цепочку данных приемника, адресованного с помощью регистра DI. После выполнения команды MOVS содержимое регистров указывает адрес следующего элемента цепочки данных.
Команда сравнения CMPS вычитает элемент цепочки данных приемника из элемента цепочки данных источника. Команда устанавливает признаки А, C, O, P, S, Z, но не изменяет операндов.
Содержимое регистров SI и DI изменяется в ходе выполнения команды. При выполнении команды сканирования элементов цепочки данных SCAS элемент цепочки данных, адресованный с помощью регистра DI, вычитается из содержимого аккумулятора AL (команда SCAS B) или из содержимого аккумулятора АХ (команда SCAS B). В процессе выполнения команды содержимое регистра DI изменяется и вырабатываются признаки A, C, O, P, S, Z. Содержимое аккумулятора и элемент цепочки данных не изменяются.
Команда LODS служит для загрузки аккумулятора AL (LODS B) или АХ (LODS W) элементом цепочки данных. После выполнения команды изменяется содержимое регистра SI. Обычно эту команду используют без повторений.
Команда STOS записывает содержимое аккумулятора AL (STOS B) или АХ (STOS W) в область памяти цепочки данных. После выполнения команды изменяется содержимое регистра DI.
Команда повторения REP предшествует вышеперечисленным командам и заставляет их повторяться. Число повторений задается содержимым регистра СХ, а конец цикла определяется состоянием (СХ)=0. Если команда REP предшествует командам CMPS и SCAS, то конец цикла определяется признаком Z, а для записи команды REP используется мнемоника REPZ (Z=1) либо REPNZ (Z=0).
Вопрос 4
Ассемблер в системе команд 8-разрядного МП. Типы ассемблеров. Требования к полям записи программ на ассемблере. Примеры программирования на ассемблере.
Ассемблер-язык среднего уровня программирования.
Типы ассемблеров:
1. Резедентный - загружается в память рабочей машины.
“+” – малообъёмный
“-” – нужно заведомо знать, что машина способна работать.
2. Кросеассемблер - ассемблер, который позволяет работать на “инструментальной машине” (не отлаживаемой).
“-” - надо знать обе среды.
3. Макроассемблер- позволяет работать с макроопределениями.
4. Метоассемблер – много ассемблерная конструкция, позволяет выбирать необходимый тип ассемблера, который подходит для нашей машины.
По типу функционирования:
Однопроходные а-ры многопроходные а-ры
за один проход а-ра исходный 2-ух проходные- за один
модуль преобр-ся в объектный. проход- делается таблица
метки(переходов),за 2-ой
транслируется программа.
DB-определить байт
DW-определить слово
DS 10H; -зарезервировать область памяти
ORG 1000H-установить счётчик на другой адрес
SET-установить значение, имя может переобозн.
EQV-эквивалентность(типа const)
IF < >
………. –Условное ассемирование
END IF.
MACRO
………. – Макро определена
END MACRO.
LIST-выводит листинг программы
END-конец программы
Пример: стандартный план программы
Поле адреса |
Поле кода команд |
Поле метки |
Поле мнемоники |
Поле операнда |
Поле комментарий |
Пишутся в 16 сс |
Пишется байты команды |
Помеченная команда: метки могут быть символьные и цифровые, но всегда начинается с символа, метка не должна совпадать с мнемоникой команды |
MOV |
B; Q D H |
ASCII |
Поле метки и поле символов - исходный модуль.
Адрес и поле команды – объектный модуль
Пример: перезапись старого массива в новую область памяти.
0800
…… - старый массив(16 байтов)
080F
0900
…… - новый массив.
090F
Будем использовать BC- для адресов старого массива и DE- для нового массива.
L- счетчик байтов. Рабочую программу начнем с адреса 1200H.
Адрес |
Код команды |
Метки |
Мнемоника |
Операнд |
Комментарии |
1200 |
010008 |
BEGIN: |
LXIB; |
0800H; |
Загружаем нач.адрес старого массива |
1203 |
110009 |
|
LXID; |
0900H; |
|
1206 |
2E10 |
|
MVIL; |
L, 16; |
Загружаем счетчик |
1208 |
0A |
CYCLE; |
LDAX B; |
|
[M]([RP])->A |
1209 |
12 |
|
STAX D; |
|
Загружаем Эл-ты старого массива |
120A |
03 |
|
INX B |
|
|
120B |
13 |
|
INX D |
|
|
120C |
2D |
|
DSR L |
|
|
120D |
C20812 |
|
JNZ |
CYCLE |
|
1210 |
76 |
|
HLT |
|
|