- •Лабораторная работа 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. Подготовка, ассемблирование и загрузка программы с помощью программных средств сервера.
Операторы в выражениях.
Операторы, которые разрешается использовать в выражениях, представлены ниже в порядке уменьшения их приоритета. Внутри каждой группы операторы вычисляются в порядке слева-направо (за исключением группы 2, в которой вычисление производится наоборот).
Операторы:
()Парные скобки
-Инверсия знака (дополнение до двух)
~ Двоичное НЕ (дополнение до 1)
<< Сдвиг влево (x<<y обеспечивает сдвиг x влево на y бит с нулевым заполнением)
>>Сдвиг вправо
&Двоичное И
! Двоичное ИЛИ
* Умножение
/ Целочисленное деление
\ Модуль (x\y обеспечивает остаток при делении x на y)
+Сложение
-Вычитание
Определение методов адресации.
Процессор МС68000 обеспечивает 12 основных методов адресации. Форматы, используемые для определения этих методов в языке ассемблера, рассматриваются в таблице ниже. Для описания форматов используемых методов адресации операндов используются следующие символы :
Dn регистр данных
An регистр адреса (SP можно использовать вместо A7)
Xn регистр данных или адреса
.s код размера индексного регистра (.W или .L , по умолчанию .W)
<ex8> выражение в пределах 8-битовой величины (в случае отсутствия интерпретируется как 0)
<ex16> выражение в пределах 16-битовой величины (в случае отсутствия интерпретируется как 0)
<ex> любое выражение
PC программный счетчик
Форматы методов адресации
-
Метод адресации
Формат ассемблера
Прямая регистровая адресация по регистру данных
Dn
Прямая регистровая адресация по регистру адреса
An
Косвенная регистровая адресация
(An)
Косвенная регистровая адресация с предекрементом
-(An)
Косвенная регистровая адресация с постинкрементом
(An)+
Косвенная регистровая адресация со смещением
<ex16>(An)
Индексная адресация
<ex8>(An,Xn.s)
Абсолютная короткая или длинная адресация
<ex>
Относительная адресация со смещением
<ex16>(PC)
Относительная индексная адресация
<ex8>(PC,Xn.s)
Непосредственная адресация
#<ex>
Дополнительно, как операнды в основных командах, могут использоваться следующие имена регистров:
SR=регистр статуса
CCR=байт флагов регистра статуса
USP=указатель стека пользователя
Особенности записи в ассемблере некоторых команд Команды переходов.
Команды переходов (Bcc, BRA и BSR) - единственные команды, использующие код длины перехода ".S". Этот суффикс определяет короткий переход в диапазоне от -128 до +127 байт. Если точка перехода находится вне этого диапазона, то выдается сообщение об ошибке. В случае использования кода длины ".L" переход может осуществляться в пределах от -32768 до +32767 байт. Если код длины не указывается, то ассемблер будет использовать, если возможно, короткий переход, в противном случае будет использоваться длинный переход.
Команда movem.
Команда MOVEM, которая используется для сохранения и восстановления набора регистров, может иметь две формы:
MOVEM <список регистров> <эффективный адрес>
MOVEM <эффективный адрес> <список регистров>
Список регистров может быть записан в форме явного списка регистров. Однако, если один и тот же список регистров используется в программе много раз, то для его обозначения в качестве имени может использоваться директива REG (см. описанние директивы REG ниже). Например, имя списка регистров WORKSET может определяется директивой REG следующим образом:
WORKSET REG A0-A4/D1/D2
При этом две следующие команды выполняют одинаковые функции:
MOVEM.L WORKSET,-(SP)
MOVEM.L A0-A4/D1/D2,-(SP)
Если используется имя списка регистров, оно должно быть определено до использования в команде MOVEM.