Сделай Сам Свою Работу на 5

Прямая адресация (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- 2017 stydopedia.ru Все материалы защищены законодательством РФ.