Прямая адресация (Direct Addressing).
Операнд определяется 8-битным адресом в инструкции. Эта адресация используется только для внутренней памяти данных и регистров SFR.
Косвенная адресация (Indirect Addressing).
В этом случае инструкция адресует регистр, содержащий адрес операнда. Для указания 8-битных адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP. Для 16-битной адресации используется только DPTR. Например:
1000Н: 76 10 MOV @R0, #10H Запись байта 10H в ячейку памяти данных, адрес которой содержится в регистре R0
Регистровая адресация (Register Instruction).
Данная адресация применяется для доступа к регистрам R0-R7 выбранного банка. Команды с регистровой адресацией содержат в байте кода операции 3-битовое поле, определяющее номер регистра. Выбор одного из 4 регистровых банков осуществляется программированием битов селектора банка (RS1, RS0) в PSW. Например:
1000H: A8 50 MOV R0, 50H Пересылка содержимого ячейки встроенной памяти данных 50H в регистр R0
Непосредственная адресация (Immediate constants).
Операнд содержится непосредственно в поле команды вслед за кодом операции и занимает один или два байта (data8, data16). Например:
1000H: 75 10 08 MOV 10Н, #00001000B Загрузка числа 08Н в ячейку с адресом 10Н
Индексная адресация (Indexed Addressing).
Индексная адресация используется при обращении к памяти программ и только при чтении. 16-битовый регистр (DPTR или PC) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора). Например:
1000H: 93 MOVC A,@A+DPTR (A) ((A)+(DPTR))
Другой тип индексной адресации применяется в командах "перехода по выбору". При этом адрес перехода вычисляется как сумма указателя базы и аккумулятора.
Неявная адресация (Register-Specific Instructions).
Некоторые инструкции используют индивидуальные регистры (например, операции с аккумулятором, DPTR), при этом данные регистры не имеют адреса, указывающего на них; это заложено в код операции.
В командах PUSH и POP используется указатель стека (SP).
Кроссассемблер-эмулятор Single-Chip Machine
Программный комплекс SCM (Single-Chip Machine) выполнен в виде независимого запускаемого модуля, работающего под управлением операционной системы MS Window 95/98/2000/NT/XP. В его состав входят два основных модуля: редактор-компилятор программ на ассемблере и эмулятор-отладчик полученного программного кода. Выполнение программы пользователя осуществляется с максимальным приближением к действительности с помощью имитационной модели (см. рис.1). Кроме того, пользователю предоставляется такие средства, как временные диаграммы внутренних и внешних сигналов, имитация внешних сигналов, возможность изменения значений регистров в процессе работы модели и др.
Для редактирования и компиляции программ на ассемблере используется встроенный текстовый редактор. При нажатии кнопки “компиляция” текст программы переводится в машинный код и записывается в одноименный с исходным текстом файл с расширением “.MPM” (Microcontroller Program Memory). SCM по умолчанию работает с MPM-файлами, но также может работать с файлами стандартного формата HEX. Скомпилированный программный модуль автоматический загружается в отладчик, где отображается содержимое ПЗУ в окрестностях ячейки соответствующей текущему состоянию счетчика команд, текущая команда подсвечивается синим курсором.
Программа имеет несколько режимов трассировки:
- потактовый, в котором отображается каждый элементарный акт передачи адреса или данных по соответствующим шинам,
- поцикловый, (каждая команда выполняется за 1-2 машинных цикла, умножение и деление – за 3);
- пошаговый, выполняющий по одной инструкции процессора за один шаг;
- с использованием точек останова;
- а также режим отката с полным восстановлением состояния всех регистров и ячеек памяти в предыдущей точке.
Также возможна регулировка скорости выполнения программы от обычной и ускоренной до мгновенной, не выполняющей отображение хода выполнения программы.
Порядок выполнения работы
1. Изучить описание структуры адресного пространства и системы команд микроконтроллеров семейства МК-51;
2. С использованием полученных знаний написать программу для обработки данных по указанию преподавателя. Ввести программу в редакторе программ программного комплекса Single-Chip Machine 2;
3. Проверить правильность кода с помощью встроенного средства редактора программ. Скомпилировать программу и сгенерировать ее шестнадцатеричный дамп;
4. Загрузить программу в эмулятор и, сначала в потактовом, а затем в пошаговом режиме выполнить ее. Освоить операции установки точек останова, отката и сброса;
5. Записать отлаженную программу с описанием задания и схемой входных и выходных данных в отчет;
6. Ответить на вопросы преподавателя.
Варианты заданий
1. Просуммировать содержимое всех нечетных ячеек 2-го и 3-го регистровых банков памяти. Результат поместить в R0-R1 0-го банка в двоично-десятичном виде.
2. Найти максимальный элемент в массиве из 16 байт, расположенных по адресу 10h в ОЗУ. Результат поместить в R2 0-го банка в двоично-десятичном виде.
3. Заполнить 3-й банк регистров числами Фиббоначи. Сумму всех чисел разместить в ОЗУ по адресу 03h в двоично-десятичном виде.
4. Заполнить 2-3-й банк регистров представлениями их адресов как ячеек ОЗУ в двоично-десятичном виде.
5. Скопировать содержимое 2-го банка регистров в 3-й в обратном порядке. Сумму всех чисел поместить в R4 в двоично-десятичном виде.
6. Отсортировать массив из 16 байт, расположенных по адресу 10h в ОЗУ, по возрастанию. Максимальное число поместить в ячейку ОЗУ по адресу 06h в двоично-десятичном виде.
7. Найти среднее арифметическое всех ячеек 2-го и 3-го регистровых банков памяти. Результат поместить R7 0-го банка в двоично-десятичном виде.
8. Найти максимальное из 16 чисел, расположенных по адресу 10h в ОЗУ, делящееся без остатка на 5. Результат поместить в ячейку ОЗУ по адресу 08h в двоично-десятичном виде.
5. Контрольные вопросы
1. В чем различие между гарвардской и принстонской архитектурой микропроцессорной техники?
2. Назовите основные узлы и блоки микроконтроллера МК-51 и опишите их назначение.
3. В чем отличие между однокристальным микропроцессором и однокристальным микроконтроллером?
4. Какие виды памяти используются в микроконтроллерах? Каков общий объем памяти у микроконтроллера КР1816ВЕ31?
5. Каково назначение счетчика команд? Как разрядность счетчика команд связана с адресным пространством памяти программ?
6. Какие банки регистров имеются в МК-51 и как установить номер банка?
7. Какие режимы работы имеет отладчик Single-Chip Machine 2?
8. Как структура микроконтроллера МК51 отображена на экране эмулятора?
9. Как произвести ввод и выполнение программ с помощью программного комплекса Single-Chip Machine 2?
10.В чем отличие между различными режимами трассировки?
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
1. Новиков, Ю.В. Основы микропроцессорной техники / Ю.В. Новиков, П.К.Скоробогатов – М.: ИНТУИТ.РУ, 2003. – 440 с.
2. Сташин, В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин, А.В. Урусов, О.Ф. Мологонцева – М.: Энергоатомиздат, 1990. - 224 с.
3. Боборыкин, А.В. Однокристальные микроЭВМ / Боборыкин и др. – М.: МИКАП, 1994. – 400с.
4. Нерода, В.Я. Однокристальные микроЭВМ MCS-51. Архитектура./ Нерода В.Я., Торбинский В.Э., Шлыков Е.Л. – М.: Дижитал Компонентс, 1995. – 350 с.
5. MCS 51. Microcontroller Family User's Manual. Order NO.: 272383-002, February 1994. – 640 с.
Новые информационные технологии: Программирование мо-бильных и встраиваемых систем. Использование кросс-ассемблера Single-Chip Machine 2 для разработки и отладки программ микропроцессоров серии МК51. Методические указания к выполне-нию лабораторной работы №2 для студентов 5 курса специальности 220400 «Программное обеспечение вычислительной техники и авто-матизированных систем»
ПОТАПОВ МАКСИМ ЛЕОНИДОВИЧ
Научный редактор К.В. Дергачев
Редактор издательства Л.И. Афонина
Компьютерный набор М.Л. Потапов
Темплан 2006 г., п.
Подписано в печать . .06. Формат 60x84 1/16. Бумага офсетная. Офсетная печать.Усл. печ.л. 0,63. Уч.-изд.л. 0,63. Тираж 50 экз. Заказ Бесплатно.
Брянский государственный технический университет. 241035 Брянск, бульвар 50-летия Октября, 7, БГТУ. 54-90-49
Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2025 stydopedia.ru Все материалы защищены законодательством РФ.
|