Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Полный отчёт по работе.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.8 Mб
Скачать

Методы классов

AssemblerObject

Название

Модификаторы

Возвращаемое значение

Описание

AssemblerObject()

Public

AssemblerObject

Конструктор

GetListing()

Public virtual

String

Формирует строку листинга для данного объекта

Segment

Название

Модификаторы

Возвращаемое значение

Описание

Segment()

Public

Segment

Конструктор

FindMarker()

private

Marker

Возвращает метку из списка, по названию

getSegmentBytes()

Public

void

Формирует последовательность байтов для объектного файла

initJMP()

private

void

Заполняет переходы, которые были сформированы до появления метки

Operator

Название

Модификаторы

Возвращаемое значение

Описание

GetListing()

public override

String

Формирует строку листинга для команд

GetMOP()

public virtual

int[]

Возвращает последовательность байтов для команды

Generator

Название

Модификаторы

Возвращаемое значение

Описание

Main()

private static

void

Точка входа в программу

RunGenerate()

private static

void

Обработка кода Ассеблера

WriteInFile(int comand)

private static

void

Запись байта в файл

WriteLeData()

private static

void

Запись структуры LEDATA

WriteTheadr()

private static

void

Запись структуры THEARD

WriteSegDef()

private static

void

Запись структуры SEGDEF

WriteLNames()

private static

void

Запись структуры LNAMES

WriteModEnd()

private static

void

Запись структуры MODEND

WriteListing()

private static

void

Запись файла листинга

PrintListing()

private static

void

Вывод на экран листинга

5.Описание структур

Класс объекта кода:

abstract class AssemblerObject

{

public string mnem;

public int length;

public int numberString;

public int location;

public string orig;

}

Класс Комадны:

class Operator : AssemblerObject

{

public int kop;

public int modRm;

public int sib;

public bool memory = false, use32Reg = false,

useDw = false, useSib = false, error = false;

}

Класс Команды POP:

class PopOperation:Operator

{

this.mnem = "pop";

}

Класс команды PUSH:

class PushOperation : Operator

{

this.mnem = "push";

}

Класс команды Dw

class DwOperation : Operator

{

public string data;

mnem = "dw";

this.length = 2;

}

Класс команды Jmp

class JmpOperation : Operator

{

public Marker marker;

public string markerName;

this.mnem = "jmp";

this.kop = 0xeb;

this.length = 2;

}

Класс команды Ret

class RetOperation : Operator

{

this.mnem = "ret";

this.kop = 0xC3;

this.length = 1;

this.orig = "ret";

}

Класс метки

class Marker : Operator

{

this.length = 0;

this.mnem = markerName;

}