Files
FasmOnDelphi/RU_DOC.MD

3.6 KiB
Raw Blame History

Описание функций FasmOnDelphi:

function FasmVersion:TFasmVersion;

Возвращает версию ассемблера в структуре TFasmVersion.

function FasmAssemble(const Source:AnsiString;cbMemorySize:cardinal=1024*1024;nPassesLimit:DWORD=100):TFasmResult;

Компилирует код.

Source - содержит исходный код для компиляции.

cbMemorySize - количество памяти которую может использовать компилятор(может быть округлено до целого количества килобайт).

nPassesLimit - максимальное количество проходов которые может использовать компилятор.

Возвращает структуру TFasmResult с информацией об ошибке или скомпилированным кодом.

function FasmAssembleToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal=102410248;nPassesLimit:DWORD=100):TFasmResult;

Идентично FasmAssemble, но выход будет записан в файл(имя передаётся в OutFile).

function FasmAssembleFile(const Source:AnsiString;cbMemorySize:cardinal=102410248;nPassesLimit:DWORD=100):TFasmResult;

Идентично FasmAssemble, но код будет взят из файла(имя передаётся в Source).

function FasmAssembleFileToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal=102410248;nPassesLimit:DWORD=100):TFasmResult;

Идентично FasmAssembleFile, но выход будет записан в файл(имя передаётся в OutFile).

procedure OpenFASM(Location:string=FASMPath;AsDll:boolean=false);

Инициализирует Flat Assembler.

Location - путь до fasm.exe/fasm.dll (только Win32).

AsDll - установить в True если используется DLL версия компилятора иначе False (вне Win32 игнорируется).

procedure SetFasmTemp(Path:string);

Выбирает каталог для temp файлов.


Описание типов FasmOnDelphi:

TFasmError=FASMERR_ASSERTION_FAILED ..FASM_ERROR;

Тип для кодов ошибок Fasm'а.

TFasmVersion=packed record
  V1,V2:word;
end;

Тип для передачи версии ассемблера.

V1 - первое число версии(до точки).

V2 - второе число версии(после точки).

TFasmResult=record
  OutData:Pointer;
  sb:integer;
  Error:TFasmError;
  OutStr:string;
  Lines:array of TFasmLine;
end;

OutData - указатель на результат ассемблирования(nil при ошибке или FasmAssembleToFile/FasmAssembleFileToFile).

sb - размер результата ассемблирования(0 при ошибке или FasmAssembleToFile/FasmAssembleFileToFile).

Error - код ошибки(FASM_OK если всё прошло успешно).

OutStr - строка которую выдаёт компилятор.

Lines - подробная информация об ошибках (подробнее см. TFasmLine).

TFasmLine=record
  Line:UInt32;
  &File:string;
end;

Line - номер строки с ошибкой.

File - имя файла с ошибкой('' или файл из папки темпа подразумевает что это код переданный в FasmAssembleFile или FasmAssembleFileToFile).