- •Лабораторная работа №1. Средства разработки и отладки систем на базе оэвм мс68нс705с8.
- •1.1. Теоретическая часть.
- •1.1.1. Отладочный модуль м68нс05еvм.
- •Блок оэвм.
- •Последовательный интерфейс.
- •Блок программирования.
- •Порты расширения.
- •Внешнее пзу с отладчиком evm-bug.
- •Псевдо-пзу.
- •1.1.2. Команды отладчика evm-bug. Начало работы.
- •Команды отладчика evm-bug.
- •Ассемблер/дизассемблер (asm - аSseMbler).
- •Заполнение области памяти (bf - Block Fill).
- •Запуск программы на выполнение (g - Go to).
- •Помощь (help).
- •Прозрачный режим (tm - Transparent Mode).
- •Загрузка (load).
- •Отображение памяти (md - Memory Display).
- •Изменение памяти (mm - Memory Modify).
- •Отмена точки останова (nobr - no bReakpoint).
- •Выполнять без учета точек останова (p - Proceed).
- •Отображение регистров (rd - Registers Display).
- •Изменение регистров (rm - Registers Modify).
- •Скорость обмена (speed).
- •Трассировка (т - Trace).
- •1.1.3. Работа с сервером.
- •Запуск и работа ассемблера.
- •1.1.4. Кросс-ассемблер. Формат исходной программы. Формат оператора.
- •Поле метки.
- •Поле команды.
- •Поле операнда.
- •Двухоперандные выражения.
- •Временное переключение систем счисления.
- •Поле комментариев.
- •Элементы программы, определяемые пользователем.
- •1.1.5. Директивы ассемблера.
- •1.2.2. Использование средств сервера для подготовки и загрузки программ.
- •1.3. Контрольные вопросы.
Запуск и работа ассемблера.
Перед ассемблированием текста программы необходимо установить тип кроссассемблера клавишей <F7>, после чего можно произвести трансляцию файла в активном окне, нажав <F8>. При обнаружении ошибок, экран разбивается на два окна - в одном текст транслируемого модуля, в другом - список сообщений об ошибках или предупреждениях. В этом случае, после завершения трансляции, активным (текущим) становится окно с перечнем ошибок. Просто нажмите <S8>. Теперь редактор может указать конкретно, в какой строке какая ошибка возникла - для этого нажмите <F6> или <S6> (см. таблицу выше).
Кроссассемблер создает файл, содержащий машинные коды программы в формате S-records (описание формата S-records приведено в конце данного раздела). Этот файл имеет расширение "sRecords" и располагается в пользовательском каталоге.
Прежде чем запустить программу в отладочном модуле, необходимо переписать объектный файл в ОЗУ ОЭВМ. Для этого необходимо нажать клавишу F9, после чего сервер выдаст сообщение о том, что он готов к выгрузке и ожидает команду от ОМ. Далее комбинацией <Ctrl-A> производится выход из прозрачного режима и возврат в монитор. Загрузка объектного кода в ОЗУ производится командой LOAD h=@.
Если Вы хотите загрузить готовый объектный код, не повторяя трансляции, загрузите исходный текст программы, установите тип кроссассемблера (!!!) и сразу нажмите <F9>. Далее следуйте вышеописанному протоколу работы.
1.1.4. Кросс-ассемблер. Формат исходной программы. Формат оператора.
Исходная программа составляется из команд (операторов) языка ассемблер. Каждый оператор должен быть записан на одной строке. Строка может содержать до 80 символов. Операторы ассемблера имют 4 поля, которые распознаются по порядку следования внутри строки и разделяются символами между полями. Основной формат оператора следующий:
[метка:] Команда операнд [;комМентарии]
Поля метки и комментариев необязательные. Поля команды и операнда взаимозависимые и отделяются пробелами или табуляцией. Поле операнда может быть как необходимым, так и необязательным, в зависимости от контекста команды. Рассмотрим поля, входящие в состав оператора, подробнее.
Поле метки.
Метка - это определяемый пользователем элемент программы на языке ассемблера, который ставится в соответствие адресу текущей команды. Метку можно использовать в командах перхода и присваивания, указывая вместо адреса ячейки надлежащую метку. При описании метки можно использовать символы: A-Z, a-z, 0-9, . (точка), $ (знак доллара) и _ (подчеркивание). Поле метки отделяется от следующего поля двоеточием (:).
Примечания:
·метка не может начинаться с цифры;
·метка может иметь произвольную длину, но только первые 8 символов являются значащими.
Поле команды.
Поле команды определяет выполняемую ассемблером функцию. В поле команды может содержаться либо мнемоника команды, либо директива ассемблера (см. ниже). Все лишние пробелы и табуляции перед и после команды отбрасываются. Поле команды отделяется от поля операнда пробелом(ами) или табуляцией.
Поле операнда.
Поле операнда используется только в том случае, если команде необходим операнд. Операнд может также быть выражением. При использовании нескольких операндов их следует разделять запятыми. При определении операндов возможно использование выражений, которые приведены в таблицах ниже.
Унарные операторы.
символ |
назначение |
пример |
знак меньше (<) |
младший байт значения выражения |
<0h0800=0h00 |
знак больше (>) |
старший байт значения выражения |
>0h0800=0h80 |
çíàê ïëþñ (+) |
положительное значение |
+23=23 |
знак минус (-) |
отрицательное значение (инверсия старшего бита) |
-0h13=0h93 |
тильда (~) |
инверсия числа |
~0h00=0hFF |
апостроф (') |
код символа |
'À=0h41 |
кавычки (") |
код строки |
"AB=0h4142 |