Разработка транслятора упрощенного языка ассемблера. Преобразование файла в мнемокодах в файл, содержащий объектный двоичный код. Анализ набора команд. Выбор формата ассемблерной команды. Методика определения типа операнда. Формирование строки листинга.
Аннотация к работе
Анализ набора команд 3. Описание программы 7.1 Класс Asm 7.2 Класс SourceLine 7.3 Класс InfoBag 7.4 Класс ListingLine 7.5 Класс BinCom 7.6 Класс DiagLine 8. Отладка и тестирование программы 8.1 Исходные данные 8.2 Файл листинга 8.3 Файл диагностики 8.4 Бинарный файл Заключение Список литературы Приложение Введение Ассемблер (от англ. assembler - сборщик) - компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке. Первый байт определяет код команды в соответствии с таблицей команд (биты 0-3). Следующие 4 бита предназначены для указания номера регистра, коммутируемого к буферному регистру а. Второй байт используется для задания адреса памяти, где находится второй операнд. Если в качестве второго операнда используется регистр, то его номер хранится в младших 4-х битах второго байта команды, а старшие 4 бита не используются. Код Мнемокод и операнды Описание 0000 ILR регистр Rn:=Rn флаг переполнения 0001 NOTR регистр Rn:= Rn флаг переполнения 0010 ADR регистр,память Rn:=Rn Память[Адрес] флаг переполнения 0011 CLR регистр Rn:=0 0100 ONR регистр, адрес Rn:= Rn ?Память[Адрес] 0101 ANR регистр, адрес Rn:= Rn ?Память[Адрес] 0110 XNR регистр, адрес Rn:= Rn?Память[Адрес] 0111 JZ адрес Переход, если результат равен 0 1001 JL адрес Переход, если результат меньше 0 1010 JMP адрес Безусловный переход 1011 CLF Регистр флагов := 0 1100 DOP регистр Перевод содержимого Rn в дополнительный код 1101 LOAD регистр, адрес Rn:= Память[адрес] 1110 SAVE регистр, адрес Память[адрес]:= Rn 1111 CMP регистр, адрес Сравнение содержимого Rn и Память[адрес]. Если длина массива слов исходной строки равна нулю или , или начинается с символа ;, то тип строки - C.