Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm / Микроконтроллеры семейства МК51.DOC
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
254.98 Кб
Скачать

Запись программы на языке ассемблера и ее трансляция

Запись исходного текста программы осуществляется с помощью любого текстового редактора (например, вход в редактор Shift+F4). Рекомендуется поле метки располагать с нулевой позиции, остальные поля отделять друг от друга клавишей табуляции. Имя программы на языке ассемблера должно иметь расширение .asm. В программе можно использовать директивы (ORG, EQU, DB, DW). Программа должна заканчиваться директивой END.

Ниже приводится пример записи на языке ассемблера текста программы TABLO.ASM:

; Основная программа

MAIN:MOV R0,#20H ; начальный адрес массива в РПД

MOV DPTR,#20H ; адрес таблицы символов в ПП

MOV R7,#32 ; число элементов массива

LCALL TEXT ; вызов подпрограммы TEXT

MOV R0,#20H ; начальный адрес массива в РПД

MOV DPTR,#40H ; адрес таблицы символов в ПП

MOV R7,#32 ; число элементов массива

LCALL TEXT ; очистка экрана

SJMP MAIN ; зацикливание программы

; Подпрограмма заполнения массива ОЗУ

TEXT: CLR A ; очистка аккумулятора

MOVC A,@A+DPTR ; пересылка символа в А

MOV @R0,А ; пересылка символа в РПД

DJNZ R6,$ ; временная задержка

INC R0 ; увеличение указателей памяти

INC DPTR ; на единицу

DJNZ R7,TEXT ; организация цикла обработки

RET ; массива

; Таблица кодов отображаемых символов

ORG 20H

DB ' DEAR FRIEND! WELCOME TO TOMSK'

END

Для трансляции исходной программы с языка мнемокодов в машинные коды команд в данной лабораторной работе используются следующие кросс-средства:

  • Ассемблер а8051;

  • Редактор связей xlink.

Ассемблирование производится в диалоговом режиме. Для трансляции программы TABLO.ASM можно вызвать ассемблер командой а8051, следующим образом отвечая на его запросы:

sourse file [.msa/s03]=TABLO.ASM

list file [.lst}=TABLO

object file=<Enter>

options=<Enter>

После ассемблирования в текущей директории будут сформированы файлы TABLO.LST (файл листинга программы) и TABLO.R03 (файл программы в объектном коде).

При наличии синтаксических ошибок ассемблер выдаст строку с ошибкой и кратким комментарием к ней на экран дисплея, а также продублирует эту информацию в листинге программы.

Если ошибок нет, можно вызвать редактор связей:

Xlink -c8051 tablo -o tablo.Hex

Редактор связей сформирует файл TABLO.HEX, который необходим для работы эмулятора.

Загрузка программы в эмулятор и управление его работой

Эмулятор МК51 разработан фирмой AVOSET SISTEMS INC.

Для вызова эмулятора выполнить команду: avsim51 -c1 a

и загрузить в него программу:

Load Avoset

Enter filename: TABLO.HEX

Для пользователя эмулятор представлен в виде отдельных окон: окна для размещения отлаживаемой программы (левое окно) и набора окон для программно доступных ресурсов микроконтроллера.

Эмулятор работает в двух режимах: в командном режиме и в режиме окна. Переключение режимов осуществляется клавишей Esc.

В командном режиме пользователю предлагается меню из набора команд, выбор которых осуществляется с помощью курсора. Вот некоторые из них:

  • Load – загрузка отлаживаемых файлов в эмулятор (используется подкоманда Avoset);

  • Patch – позволяет подключать кросс-ассемблер для записи в командной строке мнемокода команды с автоматической ее трансляцией и помещением в окно программы;

  • Dump – выбор ячейки памяти верхнего (1) или нижнего (2) окна Data Space. Позволяет установить начало окна на любую ячейку памяти (подкоманда Abcolute);

  • Reset – сброс. Возможно осуществить системный сброс контроллера, счетчика циклов (счетчик циклов позволяет оценить реальное время выполнения программы в машинных циклах, в то время как при работе эмулятора она выполняется в замедленном масштабе по времени);

  • Set – установка. Позволяет запустить счетчик циклов;

  • Memory – позволяет производить очистку или заполнение любых областей памяти;

  • Quit – выход из эмулятора с помощью подкоманды Exit.

Для отказа от выполнения команды и выхода в основное меню нажать Ctrl+C.

В режиме окна с помощью курсора возможен выбор любых программно доступных ресурсов с целью изменения их содержимого в двоичном, шестнадцатеричном или ASCII кодах. Также возможно задание кодов команд с целью изменения текста программы (дизассемблирование).

Для редактирования в режиме окна могут применяться клавиши:

  • INS – инверсия бита, полубайта;

  • +/- – инкремент/декремент бита, полубайта;

  • ↑→↓← – движение курсора в окне;

  • Ctrl+A – быстрый доступ к аккумулятору;

  • Ctrl+В – быстрый доступ к расширителю аккумулятора В;

  • Ctrl+Т – быстрый доступ к ресурсам таймеров;

  • Ctrl+I – быстрый доступ к системе прерываний;

  • Ctrl+P – быстрый доступ к программному счетчику;

  • Alt+P – быстрый доступ к портам.

Для управления работой эмулятора в режиме отладки служат функциональные клавиши. Их назначение:

  • F1 – запуск программы в автоматическом режиме;

  • F10 – пошаговое выполнение команд;

  • F5 – переключение скорости выполнения программы.

Соседние файлы в папке asm