- •Однокристальная микроЭвм мс68нс705с8.
- •Теоретическая часть.
- •Отладочный модуль м68нс05еvм.
- •Блок оэвм.
- •Последовательный интерфейс.
- •Блок программирования.
- •Порты расширения.
- •Внешнее пзу с отладчиком evm-bug.
- •Псевдо-пзу.
- •Команды отладчика evm-bug. Начало работы.
- •Формат командной строки.
- •Команды отладчика evm-bug.
- •Ассемблер/дизассемблер (asm - аSseMbler).
- •Заполнение области памяти (bf - Block Fill).
- •Установка точки останова (br - bReakpoint).
- •Запуск программы на выполнение (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).
- •Работа с сервером.
- •Кросс-ассемблер. Формат исходной программы. Формат оператора.
- •Поле метки.
- •Поле команды.
- •Поле операнда.
- •Поле комментариев.
- •Элементы программы, определяемые пользователем.
- •Директивы ассемблера.
- •Регистры нс05.
- •Определение методов адресации.
- •Практическая часть.
- •Использование средств сервера для подготовки и загрузки программ.
- •Контрольные вопросы.
Поле комментариев.
Поле комментариев начинается с точки с запятой (;) и заканчивается концом строки. Это поле необязательное и может содержать любые 7-ми битовые ASCII символы, т.е. латинские буквы, цифры и знаки.
Элементы программы, определяемые пользователем.
Элементы программы, определяемые пользователем - это те элементы, которые определены посредством оператора присваивания (переменные) или объявлены как метки.
При определении элементов программы должны выполняться следующие требования:
·могут быть использованы только буквы латинского алфавита обоих регистров, цифры, знак доллара ($), точка (.) и подчеркиватель (_);
·первым символом не может быть цифра;
·элемент может состоять из произвольного числа элементов, но первые 8 символов должны быть уникальными;
·в элементе не должно быть пробелов и табуляций.
Директивы ассемблера.
Директивы ассемблера располагаются в поле команды и выполняют функции управления процессом ассемблирования. В каждой строке может быть расположена только одна директива.
Директива .area.
В начале каждой программы должна находиться директива:
.area SYS (ABS,OVR)
Назначение этой директивы не рассматривается. Использование - обязательно.
Директивы .byte и .db.
.byte данные1[,данныеN]
.db данные1[,данныеN]
Директивы .byte и .db размещают в памяти 8-битовые данные. При попытке разместить 16-ти битовые данные старший байт будет отброшен.
Примеры:
lab1: .byte 0h34 ;определить по адресу lab1 1 байт со значением $34
lab2: .db 12,23 ;определить по адресу lab2 2 байта
Директивы .word и .dw.
.word данные1[,данныеN]
.dw данные1[,данныеN]
Директивы .word и .dw размещают в памяти 16-ти битовые данные.
Примеры:
lab1: .word 0hFFFE ;определить по адресу lab1 2 байта: $FF и $FE
lab2: .dw 0d65535,3434 ;определить в памяти 2 слова
Директивы .blkb, .blkw, и .ds.
.blkb N
.blkw N
.ds N
Директивы .blkb и .ds резервируют N свободных байтов, а .blkw - N свободных слов.
Примеры:
lab1: .blkb 7 ;зарезервировать 7 свободных байт
lab2: .blkw 0d255 ;зарезервировать 510 байт
lab3: .ds 3 ;зарезервировать 3 байта
Директивы .ascii и .asciz.
.ascii строка4
.asciz строка
Директивы .ascii и .asciz размещают в памяти строку 7-ми битных ASCII символов. Директива .asciz добавляет в конец строки символ NULL (0).
Примеры:
lab1: .ascii "ABC" ;разместить по адресу lab1 строку ABC
lab2: .asciz 'HELLO' ;разместить строку HELLO/0
Директива .radix.
.radix символ
Директива .radix устанавливает систему счисления. Символ в определении команды должен соответствовать одному из символов:
B, b - двоичная система;
O, o, Q, q, @ (коммерческое at) - восьмеричная система;
D, d, пустое поле операнда - десятичная система;
H, h, X, x - шестнадцатиричная система.
Директива .org.
.org адрес
Директива .org размещает дальнейшую часть программы с адреса, указываемого в поле операнда.
Пример:
.org 0h3000 ;разместить программу с адреса 3000h
Сообщения об ошибках.
Ассемблер ASM05 в процессе ассемблирования обеспечивает диагностику некоторых ошибок и отображает сообщения в виде специальных символов:
(.) ошибка использования счетчика текущего положения;
(a) ошибка метода адресации (несоответствие пределов и т.п.);
(b) ошибка границы прямой адресации;
(d) ошибка при использовании прямой адресации;
(m) ошибка, вызванная повторным определением метки;
(o) ошибка, вызванная либо неправильным именем директивы или неправильной мнемоникой, либо использованием директивы .org в перемещаемой области (забыта директива .area);
(p) ошибка, вызванная изменением положения метки между вторым и третьим проходом (как правило случается при более чем одном уровне обращения к впереди стоящей метке);
(q) неправильный синтаксис: пропущен или неуместен оператор, разделитель полей или операндов.
(r) ошибка перемещения;
(u) неопределенный символ.