- •Лабораторная работа 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.
Язык ассемблера MC68000 является символическим языком записи машинных команд и включает в себя следующие группы мнемонических обозначений:
1. команды
- команды MC68000
- директивы (псевдооператоры)
2. операнды
3. специальные символы
Команды MC68000
Язык ассемблера оперирует с мнемоническими обозначениями команд MC68000. Эти обозначения приводятся в описании на процессор MC68000.
Директивы
Язык ассемблера может содержать мнемонические директивы, которые определяют дополнительные функции, выполняемые ассемблером. Директивы не транслируются в машинные коды. Ассемблер монитора TUTOR работает только с одной директивой DW.C. Эта директива используется для определения данных внутри программ и будет рассмотрена позднее.
Особенности ассемблера монитора TUTOR.
В качестве основных особенностей ассемблера монитора TUTOR, отличающие его от большинства других ассемблеров, можно выделить следующие:
1. Не используются метки и нумерация строк.
2. Листинг ассемблера не сохраняется в памяти. При выводе на дисплей текста программы, ее машинные коды каждый раз реассемблируются заново.
3. Ограниченное количество сообщений об ошибках.
4. Используется только одна директива DC.W.
5. Не используются макрооперации.
6. Ограниченное использование специальных символов.
Формат транслируемой строки.
Трансляция программы ассемблером монитора TUTOR может производиться только в построчном режиме (см. команду монитора изменения содержимого памяти MM). В каждой строке размещается одна команда MC68000 (или директива), включающая в себя поле мнемоники команды и поля ее операндов. Общий формат строки:
sp<поле команды>sp[<поле операндов>]
,где sp - пробел (один или более).
Поле команды
В этом поле должно находится мнемоническое обозначение команды процессора или директивы ассемблера. Символы B, W или L, следующие через точку (.) непосредственно после мнемоники, определяют разрядность данных, которые использует данная команда:
B = байт (8-разрядные данные)
W = слово (размер по умолчанию, 16-разрядные данные)
L = длинное слово (32-разрядные данные)
Размер операндов указывается только для команд, использующих атрибут размера данных.
Поле операндов
При необходимости, за полем команд может следовать операнд, который отделяется от поля команд по крайней мере одним пробелом. Между собой операнды разделяются запятыми.
Формат реассемблируемой строки
Формат реассемблируемой строки визуально может не совпадать с форматом строки, транслируемой реассемблером. Реассемблер производит переобозначение числовых величин в соответствие со следующим правилом: если число определяется как адрес или "подразумевается" адресом, то оно отображается в шестнадцатеричном виде (перед числом ставится символ "$"); во всех остальных случаях число отображается в десятичном формате. Например, если начиная с ячейки $500 в памяти записан машинный код команды MOVE.L #$1234,$5678 , при реассемблировании этой команды высветится следующая строка:
00500 21FC000012345678 MOVE.L #4660,$00005678
Для некоторых команд существуют две допустимые мнемоники для одного и того же машинного кода или имеется более одного эквивалента на языке ассемблера. Реассемблер может выбирать мнемонику, отличную от первоначально введенной. Например:
BRA выводится вместо BT и
DBF выводится вместо DBRA.
Примечание.Ассемблер распознает две формы мнемоник двух команд переходов. Форма BT имеет тот же самый машинный код, что и команда BRA. Аналогично, DBRA и DBF являются различными формами одной и той же команды. В любом случае ассемблер воспринимает обе формы.