- •Лабораторная работа n1. Изучение программно-аппаратных средств разработки и отладки систем на базе mc68000. Введение
- •Регистры адреса
- •Программный счетчик рс (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. Встроенный ассемблер/реассемблер.
- •Формат транслируемой строки.
- •Поле команды
- •Поле операндов
- •Формат реассемблируемой строки
- •Мнемонические обозначения и специальные символы
- •Список символов
- •Директива определения константы 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. Подготовка, ассемблирование и загрузка программы с помощью программных средств сервера.
Dc Определение константы.
Данная директива используется для записи в память символьных строк и последовательности констант. Директива имеет следующий формат:
<метка> DC.<размер> <константа 1>,<константа 1>,...
Метка определяет адрес начала записи последовательности. Параметр <размер> определяет размерность данных, используемых для записи: байт (.B), слово (.W) или длинное слово (.L); по умолчанию выбирается размер слово.
Каждая константа может представлять собой выражение или символьную строку. Если константа является символьной строкой, заключенной в апострофы, то ее запись может происходить при любом указанном размере. При этом, если строка нацело не помещается в соответствующее количество слов или длинных слов, то оставшиеся байты заполняются нулями. Строки и выражения могут одновременно присутствовать в одной и той же директиве DC.
При записи слов (DC.W) или длинных слов (DC.L) запись констант будет производится начиная с границы слова в памяти, увеличивая на 1, если необходимо, содержимое локального счетчика.
Рассмотрим следующий пример:
TEXT DC.B 'DC Example',$0D,$0A,0
Данная директива запишет в память, начиная с ячейки TEXT, следующую последовательность байт:
44 43 20 45 78 61 6D 70 6c 65 0d 0a 00 (в шестнадцатиричном виде). Dbc Определение блока констант.
Данная директива заполняет область памяти одинаковыми константами. Формат директивы:
<метка> DBC.<размер> <длина>,<величина>
<Метка> определяет начало размещения блока в памяти. <Размер> определяет размерности записываемых констант: байт (.B), слово (.W) или длинное слово (.L); по умолчанию выбирается размер слово. <Длина> может описываться как выражение, она определяет количество байт, слов или длинных слов в блоке. Значение длины не должно быть отрицательным. Значение параметра <величина> определяет константу, которой будет заполнятся блок.
Ds Резервирование памяти.
Данная директива используется для резервирования блока памяти. Формат директивы:
<метка> DS.<размер> <длина>
Метка указывает на начальный адрес резервируемого блока памяти. Размер определяет блок байт (.B), слов (.W) или длинных слово (.L); по умолчанию выбирается размер слово. Длина может описываться как выражение, она определяет число байт, слов или длинных слов в блоке. Значение длины не должно быть отрицательным. Работа директивы заключается в увеличении значения локального счетчика на байт (при DS.B), слово (при DS.W) или длинное слово (при DS.L) столько раз, сколько указывается в параметре <размер>.
End Конец транслируемого файла.
Данная директива используется в качестве указателя конца транслируемого файла, является необязательной и имеет следующий формат:
END
Ассемблер будет игнорировать всю информацию, указанную после этой директивы.
Формат s-Record
Формат S-record был разработан с целью шифрования программ или блоков данных для перемещения их между компьютерными системами. Процесс перемещения может быть визуально отображен и запись в формате S-record может быть легко отредактирована.
Содержимое записи s-record.
С точки зрения пользователя, запись S-record, по существу, является символьной строкой, состоящей из нескольких полей, которые определяют тип записи, ее длину, адрес памяти, данные и контрольную сумму. Каждый байт двоичных данных кодируется как 2-символьное шестнадцатиричное число: первый символ представляет старшую тетраду, второй - младшую.
Запись S-record состоит из пяти полей, представленных ниже:
Тип Длина Адрес Код/Данные Контрольная сумма
Поля имеют следующие значения:
-
Ïîëå
Количество символов
Значение
òèï
2
тип записи S-record
длина записи
2
число 2-символьных слов в записи, не включая тип и длину записи
адрес
4, 6 èëè 8
2-, 3- или 4-байтовый адрес, начиная с которого данные должны быть загружены в память
код/данные
0-2n
от 0 до n байт машинных кодов, данных или символьной информации
контр. сумма
2
младший байт дополнения до единиц суммы 2-символьных составляющих величин длины записи, адреса и кодов/данных
