Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПМПУ / ASM51 / avsim51

.pdf
Скачиваний:
96
Добавлен:
20.04.2015
Размер:
271.45 Кб
Скачать

1.КРОСС-СРЕДСТВА ДЛЯ ОДНОКРИСТАЛЬНОЙ ЭВМ К1816ВЕ51.

Рассмотрим процесс создания и отладки программ с использованием этих кросс-средств.

Исходный текст программного модуля может быть создан с помощью любого текстового редактора. Файл должен иметь расширение

.ASM.(Например demo1_.asm)

Исходный модуль обрабатывается программой/компилятором ASM51.EXE. Запуск программ производится из командной строки,

asm51.exe < имя файла >

Например:

asm51.exe demo1_.asm

Результатом работы ASM51 является объектный модуль с расширением

.OBJ , а также файл отчета компиляции с расширением .LST. Для примера: demo1_.obj, demo1_.lst

При успешном завершении компиляции на экране появится сообщение:

C:\Intel\asm51>ASM51.EXE DEMO1_.ASM

DOS 5.0 (038-N) MCS-51 MACRO ASSEMBLER, V2.3 Copyright 1979, 1983, 1986 Intel Corporation

ASSEMBLY COMPLETE, NO ERRORS FOUND

В противном случае появится сообщение:

ASSEMBLY COMPLETE, 1 ERROR FOUND (73)

В круглых скобках указывается номер строки в исходном тексте программы, в которой обнаружена ошибка. Кроме того, в файле с расширением .LST можно увидеть все ошибки, обнаруженные при компиляции. Если исходный текст программы объемный, то целесообразно сделать поиск по тексту по ключевому слову "error". В случае обнаружения ошибки, необходимо в текстовом редакторе исправить их и повторить процесс компиляции. Эти действия повторяются до полного устранения ошибок.

ОГРАНИЧЕНИЯ! Если вы сохраняете программу в кодировке MS-DOS, то при компиляции могут возникнуть ложные ошибки, связанные с присутствием в тексте программы (например, в комментариях) некоторых русских букв (например "е"). Устранить появление ошибок можно, либо отказом от комментариев на русском языке , либо перевод текста программы в кодировку Windows CP-1251.

Редактирование связей осуществляет программа RL51.EXE, запускаемая с помощью команды:

RL51 <список объектных модулей и библиотек> to

<имя конечного модуля с абсолютной адресацией>

Для примера: RL51 demo1_.obj ftl51.lib to rom_end.abs

Редактор связей нужно применять только в случае многомодульного программирования, необходимости воспользоваться библиотечными функциями или наличие перемещаемых участков программы в одном модуле. Если же в программе нет перемещаемых модулей, т.е. распределение программного кода в памяти выполняется директивой макроассемблера "ORG", то вызывать редактор связей не нужно.

Для загрузки откомпилированной программы в отладчик/моделировщик необходимо ее преобразовать в формат хранения машинных кодов, разработанный фирмой Intel - HEX – формат. Программа в HEX – формате представляет из себя текстовый файл, содержащий машинные коды программы, преобразованные в ASCII – символы и дополненный служебной информацией (адреса размещения кодов, команды, контрольные суммы строк и всего файла в целом).

Для этих целей служит утилита OH.EXE. Она вызывается из командной строки. В качестве входного параметра при вызове утилиты необходимо указать имя файла объектного кода с расширением .OBJ. Например:

oh.exe demo1_.obj

Результатом работы утилиты OH.EXE является файл с расширением

.HEX. В нашем случае это demo1_.hex.

2.МОДЕЛИРОВЩИК / ОТЛАДЧИК AVSIM51.

Моделировщик/отладчик AVSIM51 предназначен для моделирования работы ОЭВМ серии 8031 и 8051, отличающиеся друг от друга наличием и объемом памяти программ, памяти данных и имеющих аналогичные системы команд. Отечественными аналогами указанных ОЭВМ являются БИС серии К1816: K1816BE31, K1816BE51.

Запуск программы производится из командной строки, например :

AVSIM51.EXE -C1

(Ключ –С1 необходим для загрузки драйвера VGA, если его не указать, то отладчик/моделировщик будет работать в черно-белом режиме)

Для запуска программы может быть использован командный файл с расширением .CMD.

2.1 Описание интерфейса AVSIM51.

После запуска моделировщика/отладчика на экране появляется окно (рис.1). Для моделирования работы выбранной ОЭВМ необходимо нажать клавишу с соответствующей буквой, например, E для 80C51 ( К1830ВЕ51 ).

Рис.1 меню выбора типа микроконтроллера при запуске AVSIM51

После этого на экране появляется рабочее окно программы (рис.2). В левой части экрана находится поле мнемокодов программы. Каждому адресу памяти программ ставится в соответствие мнемокод команды, записанной по этому адресу. На текущую команду указывает световой курсор.

Рис.2 Интерфейс отладчика/моделировщика

В верхнем правом углу экрана показано содержимое регистров и флагов ОЭВМ:

Содержимое аккумулятора (А) выводится в двоичном, шестнадцатеричном и символьном коде. Рядом выводится состояние флага переноса (С), а также флага дополнительного переноса (АС) и флагов пользователя (F0) и (F1).

Содержимое счетчиков команд (поле PC) выводится в 16-ричном коде. Рядом выводится содержимое 4 байт памяти программ (поле data). Код, соответствующий указателю счетчика команд, выделяется цветом.

Значение указателя стека (поле SP) выводится в шестнадцатеричном виде, в окно стека (поле data) выводится содержимое 8 байт области стека. Значение, на которое указывает SP, выделено цветом.

Поле DP показывает содержимое регистра указателя DPTR, использующегося для доступа к внешней памяти данных. Рядом выводится содержимое 4 байт внешней памяти данных (поле data). Данные, на которые указывает регистр DPTR выделяется цветом.

Для работы с таймерами/счетчиками используются поля окна Timers.

Вэтом окне выводится значение различных флагов и регистров отвечающих за работу таймеров T0 и Т1:

a)TH/TL – содержимое старшего и младшего байтов регистра хранения счета.

b)TF/TR – значения флага TF (флаг переполнения) и бита TR (бит запуска/останова)

c)G/T – значения битов GATE (разрешение/запрещение работы

таймера от внешнего вывода) и С/Т (выбор режима таймер/счетчик)

d) М1/М0 – биты выбора режима работы блока таймеров счетчиков

Значение элементов системы прерывания отображаются в окне Ints: Поле En отображает содержимое регистра масок прерываний IE, Pr – значения битов регистра приоритетов прерываний IP:

a)X0 – бит разрешения внешнего прерывания INT0;

b)Т0 – бит разрешения прерывания от таймера 0;

c)X1 – бит разрешения внешнего прерывания INT1;

d)Т1 – бит разрешения прерывания от таймера 1;

e)S – бит разрешения прерывания от последовательного порта;

f)A – бит разрешения всех прерываний.

Для работы с последовательным портом используются следующие поля:

a)SBUF – значение регистров приемника (In) и передатчика (Out);

b)PCON – значение регистра управления PCON;

c)SCON – содержимое регистра управления/ статуса последователь-

ного порта SCON.

Поле регистров общего назначения (на рис.2 выделено зеленым цветом) показывает содержимое регистров R0-R1, в 16-ричном, и

символьном виде. Выведено также значение регистров R0 и R1 банка регистров 1, при использовании их в режиме регистров указателей. Поле RB показывает номер текущего банка регистров общего назначения.

В нижней части экрана находятся 2 поля (Data Space), в каждом из которых показано содержимое 32 байт памяти данных в 16-ричном и символьном виде.

В правой части экрана находится поле портов ввода/вывода, (Ports) содержащее информацию о портах Р0, P1,P2 и P3.

2.2 Система меню отладчика/моделировщика AVSIM51.

Две нижние строки экрана предназначены для вывода пунктов меню. Основное меню отладчика/моделировщика содержит 14 пунктов:

"DUMP" - предназначен для выбора области памяти, содержимое которой будет выведено в одно из окон поля памяти. Адресация может быть абсолютной или относительной (через регистры R0 или R1).

"EXPRESSION" - позволяет поместить значение введенного выражения в счетчик команд. Допускаются операции сложения (+), вычитания (-), скобки (до 4 уровней). Операндами могут быть двоичные (В), шестнадцатеричные (Н) или восьмеричные (Q) числа, а также символьные константы (например 'x' и "x"), символьные обозначения регистров ОЭВМ (R0,R1 и т.д.), $ - текущее значение, . - предыдущее значение счетчика команд.

"ComandFile" - вызывает подменю работы с командными файлами

(LOAD,OPEN, CLOSE,RESTART).

"HELP" - вызывает подменю подсказки, содержащее информацию об использовании клавиш управления режимом и перемещением курсора.

"IO" - работа с файлами ввода/вывода. Позволяет открывать и закрывать файлы ввода/вывода, содержимое которых может вводиться через порты или содержит значения вводимых через порты чисел.

"LOAD" - вызывает подменю загрузки (Avocet, Data, Programm, Symvoltable, rOm).

"Memory"- вызывает подменю работы с памятью (Clear, Fill,Move, Search, searchNext).

"Path" - вызывает подменю работы с памятью программ (изменяет содержимое памяти программ, не изменяя исходный файл).

"Quit" - выход из программы.

"Reset" - сброс выбранного объекта (Cpu,Disptrace,Cycles).

"Set"- установка выбранного объекта ( Memoryap, Passpoint, Cycles).

"setUp" - восстановление предыдущей установки (Undo).

"View" - вызов подменю просмотра объекта (Bkpts, IO-files, Memory-map, Opc-traps, Passpts, Symvols) точек прерывания, имен файлов ввода/вывода и т.д.

"Execute" - вводимый мнемокод помещается в текущую позицию указателя команд. Позволяет изменять содержимое памяти программ. Выбор пунктов меню может производится двумя способами :

a)нажатием соответствующих клавиш клавиатуры (большая буква в названии пункта меню )

b)нажатием пробела активизируется указатель пункта меню. Выбор пункта меню производится клавишами управления курсора. Т.к. все пункты меню одновременно не отображаются , перейти ко второй половине можно , повторно нажав клавишу пробела.

2.3 Описание клавиш управления в AVSIM51.

Выход в основное меню из подменю осуществляется нажатием комбинации клавиш: Ctrl+C.

Клавиши управления режимом:

ESC: переключатель режима команда/дисплей;

F7: режим курсора:hex,ASCII,двоичный;

Ctrl-PgUp: переключатель режима прокрутки;

Горячие клавиши:

Ctrl+A/B: аккумулятор/ доп. Регистр В;

Ctrl+P: счетчик команд (поле РС);

Ctrl+S: указатель стека (поле SP);

Ctrl+S: выбор поля RB;

Ctrl+D: регистр DPTR (поле DP);

Alt+0..7 : выбор регистров R0-R7;

Ctrl+C/X/F/O/: выбор флагов С/AC/F0/OV;

Ctrl+I: разрешения прерываний (поле А);

Ctrl+T: таймер 0;

Alt+A/B: Дампы памяти;

Alt+P/Q: порты Р0/Р2;

Alt+S/C: регистры SBUF/SC;

Клавиши управления курсором:

→ : влево на 1 символ;

: вправо на 1 символ;

: на 1 строку вверх;

: на 1строку вниз;

Home: первый символ окна;

End: последний символ окна;

PgUp: прокрутка вверх 1 окна;

PgDn: прокрутка вниз 1 окна;

Клавиши редактирования объектов:

+/-: инкремент/декремент байта/слова/флага;

Return: переход в последнюю позицию перемещения

Ins: переключатель байт/полубайт/ бит;

Ctrl+ : перемещение вправо на 1 окно;

Ctrl+End: очистка последнего объекта;

Ctrl+ : перемещение влево на 1 окно;

Ctrl+Home: очистка всего объекта;

Клавиши управления моделированием:

F1: моделирование до прерывания или переключения;

F2: переместить указатель точки прерывания вверх;

F3: установить точку динамического прерывания;

F4: переместить указатель точки прерывания вниз;

F5: установить скорость моделирования;

F6:

Display ON:экран корректируется после каждой моделируемой

 

команды , OFF:только окна трассировки обновляются

после

 

прерывающих событий;

 

F7:

тип курсора hex/ASCII/двоичный;

 

F8:

ON: простой шаг через вызов опкодов (для установки точек

прерывания в следующую команду и прогона с "Display ON");

F9: откат на 1 команду;

F10: простой шаг - моделирование 1 команды;

Alt+F6: Trace ON:окно обновляется даже когда Display OFF, OFF:окно обновляется только когда Display ON;

Alt+F5: Label:адреса и операнды отображаются символическими адресами (самый левый столбец экрана);

Соседние файлы в папке ASM51
  • #
    20.04.20150 б27ALEKSAND.HEX
  • #
    20.04.20150 б18ALEKSAND.MAP
  • #
    20.04.20151.37 Mб106ANDR.DOC
  • #
    20.04.20156.15 Кб22AVSIM51.HLP
  • #
    20.04.201530.56 Кб22AVSIM51.OVR
  • #
    20.04.2015271.45 Кб96avsim51.pdf
  • #
    20.04.20151.2 Кб26AVSIM51.REG
  • #
    20.04.201592 б29colin.asm
  • #
    20.04.201587 б22colin.hex
  • #
    20.04.20151.71 Кб22colin.lst
  • #
    20.04.2015963 б20colin.map