- •Курский государственный технический университет Кафедра конструирования и технологии эвс
- •Програмирование на языке ассемблера Методические указания
- •Введение
- •Эмулятор ос cp/m
- •Методические указания Контрольные вопросы
- •Лабораторная работа 2 "Исследование отладчика sid. Программирование в кодах 8080".
- •Лабораторная работа 3 "Линейное сложение и вычитание многобайтовых чисел ".
- •Цель работы
- •Лабораторная работа 5 "Ассемблирование и загрузка программ на языке ассемблера 8080". Цель работы
- •Лабораторная работа 6 "Вывод информации на экран дисплея с использованием системных вызовов ос cp/m".
- •Лабораторная работа 7 "Ввод информации с клавиатуры с использованием системных вызовов ос cp/m".
- •Лабораторная работа 8 "Исследование программ. Дизассемблирование".
- •Приложение 1 Кодировка команд ассемблера 8080 коды команд микропроцессоров i8080/i8085
- •Приложение 3 Ассемблер asm и макроассемблер mac. Справочные данные
- •Приложение 4 Сведения об ос cp/m
- •1.Резидентные команды
- •2. Характеристики dos
- •3. Обращение к dos. Входная и выходная информация.
- •Функции dos для управления консолью.
- •Приложение 5 Кодировки символов кодировка символов
Приложение 3 Ассемблер asm и макроассемблер mac. Справочные данные
ASM
Вызов двухпроходного ассемблера и трансляция файла с заданным именем.
Вызов команды:
asm имя файла (1)
asm имя файла.p1p2p3 (2)
В любом случае файл должен иметь тип asm.
p1 - диск,содержащий исходный файл
p2 - диск,на который будет записываться hex файл
(если p2=z,то hex файл не создается)
p3 - диск,на который будет записываться prn файл,
т.е. файл с листингом (если p3=x,то листинг
выводится на консоль;если p3=z,то prn файл
не создается)
Программа состоит из последовательности строк вида:
номер метка операция операнд ;примечания
типы меток: идентификатор или
идентификатор:
Идентификатор состоит из букв и цифр и начинается с буквы, длина
идентификатора не должна превышать 16 знаков. Знак * игнорируется.
типы констант:
b двоичная константа
q восьмеричная константа
d десятичная константа
h шестнадцатеричная константа
Строковые константы представляют собой набор знаков ascii,
заключенный в апострофы.
Зарезервированные имена:имена всех регистров,имена машинных
инструкций и директив ассемблера.
Арифметические и логические операторы:
a+b беззнаковое сложение a и b
a-b беззнаковое вычитание b из a
+b унарный плюс
-b унарный минус
a*b беззнаковое умножение a на b
a/b беззнаковое деление a на b
a mod b остаток от деления a на b
not b логическая инверсия b
a and b логическое ''и''
a or b логическое ''или''
a xor b логическое ''исключающее или''
a shl b сдвиг а влево на в битов, дополнение нулями
a shr b сдвиг а вправо на в битов, ополнение нулями
Приоритет операторов
* / mod shl shr - + not and or xor
Директивы ассемблера
org установить значение счетчика адреса
end конец программы, может присутствовать стартовый адрес
equ числовое ''приравнять''
set числовое ''установить''
if начало условного ассемблирования
endif конец условного ассемблирования
db задать байт данных
dw задать слово данных
ds отвести область памяти
Список инструкций совпадает со списком инструкций микропроцессора
intel 8080
Сообщения об ошибках:
d ошибка в данных: элемент данных не может быть помещен
в указанную область памяти
e неверное выражение: выражение неверно образовано и не
может быть вычислено в процессе ассемблирования
l неверная метка: метка не может появиться в данном
контексте(может быть двойное определение)
n не реализовано:возможности, которые будут присутство-
вать в следующих версиях asm
o переполнение: очень сложное выражение
p ошибка фазы: метка получает разные значения при двух
последовательных проходах по программе
r регистровая ошибка: значение заданное в качестве ре-
гистра, не соответствует коду инструкции
v ошибка значения: операнд, вычисленный в выражении, не-
верно образован
no source file present файл заданный в команде asm, не существует на диске
no directory space каталог диска заполнен
source file name error неверно задано имя файла asm
source file read error ошибка при чтении исходного файла
output file write error ошибка при записи выходного файла
cannot close file выходной файл не может быть закрыт
