- •Новые информационные технологии: Программирование мобильных и встраиваемых систем ИсСледование системы команд и адресного пространства микроконтроллера с помощью эмулятора
- •1.Цель и задачи работы
- •2.Краткие теоретические сведения
- •2.1 Архитектура и структурная организация омк
- •2.2 Организация памяти мк-51
- •2.3. Система команд мк51
- •1000Н: 76 10 mov @r0, #10h Запись байта 10h в ячейку памяти данных, адрес которой содержится в регистре r0
- •1000H: a8 50 mov r0, 50h Пересылка содержимого ячейки встроенной памяти данных 50h в регистр r0
- •1000H: 75 10 08 mov 10н, #00001000b Загрузка числа 08н в ячейку с адресом 10н
- •2.4. Кроссассемблер-эмулятор Single-Chip Machine
- •3.Порядок выполнения работы
- •4.Варианты заданий
- •5.Контрольные вопросы
- •Список рекомендуемой литературы
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).
2.4. Кроссассемблер-эмулятор 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);
пошаговый, выполняющий по одной инструкции процессора за один шаг;
с использованием точек останова;
а также режим отката с полным восстановлением состояния всех регистров и ячеек памяти в предыдущей точке.
Также возможна регулировка скорости выполнения программы от обычной и ускоренной до мгновенной, не выполняющей отображение хода выполнения программы.