- •Лабораторная работа n1. Изучение программно-аппаратных средств разработки и отладки систем на базе mc68000. Введение
- •Теоретическая часть
- •1. Программная модель мп мс68000
- •1.1 Внутренние регистры
- •Регистры данных Dn
- •Регистры адреса
- •Программный счетчик рс (Program Counter)
- •Регистр состояния sr (Status Register)
- •1.2. Форматы данных и размещение данных в памяти Форматы данных
- •Форматы команд
- •2. Структура и возможности учебного одноплатного компьютера sbc68k
- •Структура организации памяти модуля sbc68k
- •Каналы последовательного обмена.
- •Порты параллельного ввода/вывода.
- •Программируемые таймеры/счетчики.
- •Контроллер дисковода.
- •3. Встроенный монитор (отладчик)
- •Инициализация системы.
- •Символы управления терминалом.
- •Формат командной строки.
- •Выражение в качестве параметра.
- •Адрес в качестве параметра.
- •Сообщения монитора при выполнении команд.
- •Система команд монитора
- •Заполнение блока памяти (Block of memory Fill)
- •Перемещение блока (Block Move)
- •Ввод точек останова (bReakpoint)
- •Поиск ячеек памяти (Block of memory Search)
- •Преобразование данных (Data Conversion)
- •Отображение состояния регистров процессора.
- •Выполнение программы в реальном времени (go)
- •Непосредственное выполнение программы.
- •Выполнение программы до точки останова (Go unTil breakpoint)
- •Вывод справочной информации (hElp)
- •Загрузка программы в память модуля (lOad)
- •Отображение содержимого памяти (Memory Display)
- •Изменение содержимого памяти (Memory Modify)
- •Запись блока данных в память (Memory Set)
- •Удаление точек останова (nobReakpoint)
- •Отображение/изменение содержимого определенного регистра.
- •"Прозрачный" режим работы последовательных портов (Transparent Mode)
- •Трассировка (tRace)
- •Трассировка до текущей точки останова (Trace to Temporary breakpint)
- •3. Встроенный ассемблер/реассемблер.
- •Язык ассемблера mc68000.
- •Мнемонические обозначения и специальные символы
- •Список символов
- •Директива определения константы dc.W (Define Constant.Word)
- •4. Работа с сервером
- •Запуск и работа ассемблера.
- •Кросс-ассемблер. Формат записи программы.
- •Поле метки
- •Операторы в выражениях.
- •Определение методов адресации.
- •Особенности записи в ассемблере некоторых команд Команды переходов.
- •Команда movem.
- •Команды быстрых вычислений (moveq, addq, subq).
- •Директивы ассемблера. Org Установка начального адреса.
- •Equ Определение имени.
- •Set Установка имени.
- •Reg Определение набора регистров.
- •Dc Определение константы.
- •44 43 20 45 78 61 6D 70 6c 65 0d 0a 00 (в шестнадцатиричном виде). Dbc Определение блока констант.
- •Ds Резервирование памяти.
- •End Конец транслируемого файла.
- •Формат s-Record
- •Содержимое записи s-record.
- •Типы записей s-record.
- •Практическая часть
- •1. Ввод исходных данных и анализ результатов работы программы с помощью команд просмотра и модификации памяти и регистров.
- •2. Ввод программы с помощью встроенного ассемблера
- •3. Режимы выполнения программы
- •4. Подготовка, ассемблирование и загрузка программы с помощью программных средств сервера.
Мнемонические обозначения и специальные символы
Ассемблер распознает все мнемоники команд MC68000, за исключением запрещенных. Числовые величины могут быть записаны в шестнадцатеричном или десятичном виде. Перед шестнадцатеричной величиной должен стоять символ "$" (например $AFE5); десятичная величина подразумевается по умолчанию или перед ней ставится символ "&" (1234 эквивалентно &1234).
Один или несколько ASCII символов, заключенных в апострофы (') представляют ASCII строку (см. также директиву DC.W). Символы этой строки ассемблируются в соответствующие им ASCII коды, например:
005000 5300 DC.W 'S'
005002 223C41424344 MOVE.L #'ABCD',D1
005008 3536 DC.W '56'
Мнемонические обозначения регистров процессора MC68000 имеют следующий вид:
D0-D7 Регистры данных.
A0-A7 Регистры адреса. Регистр A7 представляет собой указатель стека для текущего режима.
USP Указатель стека пользователя.
CCR Регистр флагов (младший байт регистра SR).
SR Регистр состояния.
PC Счетчик команд.
Список символов
В ассемблере монитора TUTOR допустимо использование следующих ASCII символов:
1. Заглавные буквы от A до Z
2. Цифры от 0 до 9
3. Арифметические операции: +, -
4. Скобки ( )
5. Символы, используемые в качестве специальных префиксов:
# указатель на непосредственные данные
$ указатель на шестнадцатеричные данные
& указатель на десятичные данные
@ указатель на восьмеричные данные
% указатель на двоичные данные
' указатель ASCII строки
6. Пять разделительных символов:
пробел
, запятая
. точка
/ наклонная черта
- дефис
7. Символ "*" (звездочка), указывающая на текущую ячейку памяти
Директива определения константы dc.W (Define Constant.Word)
Директива DC.W имеет следующий формат:
DC.W <операнд>
Директива DC.W предназначена для определения константы в памяти. Она имеет только один операнд (16-разрядный), который может быть в виде шестнадцатеричной, десятичной величины или ASCII строки. Также в качестве операнда может выступать выражение, значение которого будет вычислено ассемблером и записано в память. Для константы определяемой директивой DC.W выделяется 16 бит адресного пространства (одно слово).
ASCII строка распознается, когда символы заключены в единичные кавычки. Каждый символ (7 бит) занимает в памяти один байт (старший бит всегда равен нулю). Если вводится только один символ, то он будет записан в старший байт выделенного на него слова (при этом в младший байт будет записан 0). С помощью директивы DC.W может быть записано максимум два символа.
Примеры:
001022 04D2 DC.W 1234 десятичные данные
001024 AAFE DC.W $AAFE шестнадцатеричные данные
001026 4142 DC.W 'AB' ASCII строка
001028 5443 DC.W 'TB'+1 выражение
00102A 4300 DC.W 'C' один ASCII символ
4. Работа с сервером
Как уже отмечалось выше, при подготовке и ассемблировании сложных программ некоторые ограничения, присущие встроенному ассемблеру TUROR (например, невозможность использования меток и комментариев), могут оказаться неприемлемыми. В этом случае можно воспользоваться программными средствами сервера, такими как полноэкранный текстовый редактор и кросс-ассемблер. Использование сервера для подготовки программ подразумевает следующую последовательность действий:
·логическое соединение с сервером;
·подготовка исходного текста программы в редакторе (или редактирование ранее сохраненного на жестком диске исходного файла);
·ассемблирование исходного файла с получением объектного (загрузочного) файла в формате S-records;
·загрузка объектного файла в память модуля SBC68K.
Ниже приводится описание возможных операций по работе с сервером в указанной последовательности.
Для логического соединения (установления связи) с сервером в первую очередь необходимо войти в прозрачный режим, в котором терминал физически подключается к серверу терминалов, для чего, как отмечалось выше, служит команда ТМ. После ввода этой команды на экран выдается сообщение
*TRANSPARENT* EXIT=$01 = CTLA
указывающее, что произошел переход в прозрачный режим, и напоминающее о том, что для выхода из прозрачного режима служит комбинация клавиш Ctrl-A.
После этого двухкратным нажатием клавиши <RETURN> производится запрос на сервер терминалов, в ответ на который на экран выводится собщение:
VCP-300 V4.43
Please type HELP if you need assistance
и запрос для ввода имени пользователя
Enter username>
После ввода имени пользователя выдается приглашение сервера терминалов на ввод команды:
VCP>
Командой, осуществляющей соединение терминала с центральным компьютером, является
VCP> CO TE 192.210.210.2
После ввода этой команды пользователь соединяется с центральным компьютером, который запрашивает идентификационное имя пользователя (по этому имени будет создан Ваш именной подкатолог на жестком диске, где будут храниться все создаваемые Вами файлы):
Please enter you user ID
Введите свое имя, для которого рекомендуется использовать следующий формат:
Факультет/Группа/Номер по списку, например, ÌÐ521. Для подкаталогов, использующих формат, отличный от указанного, сохранность файлов не гарантируется. После ввода имени центральная ЭВМ выдает запрос на подтверждение правильности его ввода:
ID entered: MP521
Is it correct?
Cледует нажать клавишу Y в утвердительном случае или N в противоположном.
После нажатия клавиши Y на экран выводится директория пользовательского подкаталога и запрос имени файла для редактирования и/или ассемблирования. Имя файла необходимо вводить без расширения (по умолчанию расширение .ASM). После ввода имени файла производится запуск интегрированного текстового редактора, который наряду с функциями собственно редактирования, имеет возможность выполнять следующие операции (при нажатии соответствующих функциональных клавиш):
F1 - Помощь
F2 - Сохранение текущего файла
F3 - Загрузка файла
F4 - Сохранение текущего файла под другим именем
F7 - Выбор кроссасемблера (МС68000 или НС05)
F8 - Ассемблирование текущего файла
F9 - Загрузка объектного файла из сервера в ОЗУ микроЭВМ SBC68
F10 - Выход (прерывается связь с сервером)
При работе в редакторе можно использовать несколько управляющих клавиш, позволяющих перемещать курсор по тексту и редактировать его:
¬перевод курсора на позицию назад
¯перевод курсора на позицию вниз
®перевод курсора на позицию вправо
перевод курсора на позицию вверх
Delete удаление символа над курсором
Backspaсe удаление символа перед курсором
Return переход на новую строку
Ввод исходного текста программы в редакторе должен производится в соответствии с правилами описанными ниже в подразделе "Кросс-ассемблер". После ввода нового текста программы или редактирования старого необходимо сохранить файл нажатием на клавишу F2. После этого можно произвести запуск ассемблера.