From 3970e8d71701339c6e7d1f2b10304ad9efbe3783 Mon Sep 17 00:00:00 2001 From: artem3213212 Date: Mon, 19 Mar 2018 18:25:30 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20'RU=5FDOC.MD'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RU_DOC.MD | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/RU_DOC.MD b/RU_DOC.MD index 4287ca8..0df956f 100644 --- a/RU_DOC.MD +++ b/RU_DOC.MD @@ -1 +1,36 @@ -# \ No newline at end of file +#Описание функций 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=1024*1024*8;nPassesLimit:DWORD=100):TFasmResult; +Эдентично FasmAssemble, но выход будет записан в файл(имя передаётся в OutFile). + +###function FasmAssembleFile(const Source:AnsiString;cbMemorySize:cardinal=1024*1024*8;nPassesLimit:DWORD=100):TFasmResult; +Эдентично FasmAssemble, но код будет взят из файла(имя передаётся в Source). + +###function FasmAssembleFileToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal=1024*1024*8;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 файлов. + +********************************************************** \ No newline at end of file From f9b7b49a5b01b8057e867c3322c0c4acf9897c28 Mon Sep 17 00:00:00 2001 From: artem3213212 Date: Mon, 19 Mar 2018 18:55:55 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20'RU=5FDOC.MD'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RU_DOC.MD | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/RU_DOC.MD b/RU_DOC.MD index 0df956f..061d6a3 100644 --- a/RU_DOC.MD +++ b/RU_DOC.MD @@ -1,7 +1,7 @@ #Описание функций FasmOnDelphi: ###function FasmVersion:TFasmVersion; -Возвращает версию компилятора в структуре TFasmVersion. +Возвращает версию ассемблера в структуре TFasmVersion. ###function FasmAssemble(const Source:AnsiString;cbMemorySize:cardinal=1024*1024;nPassesLimit:DWORD=100):TFasmResult; Компилирует код. @@ -33,4 +33,46 @@ AsDll - установить в True если используется DLL ве ###procedure SetFasmTemp(Path:string); Выбирает каталог для temp файлов. -********************************************************** \ No newline at end of file +********************************************************** +#Описание типов 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). \ No newline at end of file