Разработка однопроходного компилятора - Курсовая работа

бесплатно 0
4.5 72
Задачи трансляторов, характеристика их видов. Этапы и функции основных фаз процесса компиляции. Описание используемых директив и команд ассемблера, алгоритмов, таблиц. Листинг программы. Алгоритм работы программной реализации разрабатываемого компилятора.


Аннотация к работе
//Проверки function GERARGTYPE(arg:string):string;//получение типа аргумента function ISVAR(arg:string):boolean;//переменная function ISIMM(arg:string):boolean; //число function ISDATA(str:string):boolean;//[si n] function ISREG(arg:string):boolean; //регистр 16 function TFORM1.STRTOHEXSTR(str:string):string; //перевод текста в строку в код 16 с/с var pos:integer; hexstr:string; for row:=1 to Varibles.ROWCOUNT-1 do if Varibles.Cells[0,row]=name then begin GETVARCODEBYNAME:=Varibles.Cells[1,row];VARLEN:=Varibles.Cells[3,row];exit;end; procedure TFORM1.DATATABLEWRITE(Varible:string; Len:string;Code:string); //запись в таблицу переменных varrow:integer; if (marks.Cells[0,row]"")and(marks.Cells[2,row]"") then begin if (strtoint(marks.Cells[1,row])<strtoint(marks.

План
Оглавление

Введение

Расчет варианта задания

Разработка контрольного примера

Описание используемых директив и команд ассемблера

Выбор варианта построения ассемблера, описание алгоритмов и таблиц

Листинг программы

Алгоритм работы программной реализации разрабатываемого компилятора

Заключение

Введение

Вывод
Пример работы программы

Объектный код

Рис. 2 Получившийся объектный код при использовании компилятора TASM

Рис. 3 Получившийся объектный файл при работе программы

Расшифровка объектного кода откомпилированного примера.

• 80 0А 00 08 6B 6F 70 61 2E 61 73 6D 54 -запись названия исходного файла;

• 88 1A 00 00 00 1C 43 6F 6D 70 69 6C 65 72 20 4B 6F 70 79 6C 6F 76 61 20 4E 2E 53 2E 75 - запись названия транслятора;

• 88 10 00 40 E9 34 67 C4 42 08 6B 6F 70 61 2E 61 73 6D 7C- вторая запись с название исходного файла;

• 88 03 00 40 E9 4C 96 02 00 00 68 88 03 00 40 A1 94- три постоянные записи;

• 96 06 00 04 44 41 54 41 46 -описания имени сегмента данных (DATA);

• 98 07 00 60 08 00 02 01 01 F5 - описание данных сегмента данных;

• 96 06 00 04 43 4F 44 45 45- описания имени сегмента кода (CODE);

• 98 07 00 60 15 00 03 01 01 E7- описание данных сегмента кода;

• 88 04 00 40 A2 01 91 - предсегментный блок;

• A0 0C 00 01 00 00 01 10 00 01 01 01 00 4CF3- содержимое сегмента данных;

• A0 19 00 02 00 00 A1 00 00 05 01 01 FF 0E 04 00 C1 C8 05 7F 01 90 A1 06 00 CD 21 59 - содержимое сегмента кода (A10000 - mov ax,a1, 050101FF - add ax,101h, 0E 04 00 - dec a3, C1 C8 05 - ror ax,5h, 7F 01 - jg @2, 90-nop, A1 06 00 - mov ax,c, CD 21 - int 21h);

• 9C 0D 00 C4 01 54 01 C4 08 54 01 C4 11 54 01 F2- таблица ссылок сегмента кода;

8A 0700 C100 0202 0000 AA - запись конца объектного файла.

Размещено на
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?