草庐IT

xml - 使用 Delphi 使用 AsmXML

AsmXML由MarcKerbiquet编写的作为xml解析器似乎很有前途。我想用Delphi进一步利用它,但由于对象格式兼容性问题而绊倒了。是否可以调整fasm源代码来解决问题,还是应该将其移植到Tasm32? 最佳答案 您不必将其转换为由Delphi编译。您可以简单地使用生成的目标文件,然后使用类似providedhere的工具将其转换为.obj。.然后小的asm-xml.h可以转换成一个小的Delphi单元,调用外部.obj文件。然后您将拥有一个新单元。我怀疑它是否值得。例如,您将丢失64位编译。解析和内联数据是获得最佳速度的

windows - 调整示例 DLL 代码时获取无效图像

我使用示例代码从FASM示例目录创建一个简单的DLL,并根据我的需要对其进行调整。但是,当我进行一些(从我的POV来看是无辜的)更改时,生成的二进制文件被损坏-运行使用此库的exe会产生错误代码0xC000007B又名INVALID_IMAGE_FORMAT。动态链接库代码:;DLLcreationexampleformatPEGUI4.0DLLentryDllEntryPointinclude'win32a.inc'section'.text'codereadableexecutableprocDllEntryPointhinstDLL,fdwReason,lpvReservedmo

windows - 汇编循环循环太多次

我对汇编很陌生(昨天开始学习)并且遇到循环问题:下面的代码应该打印值0-49,但它打印的是0-49,然后是~20行垃圾(我假设这是堆栈的一部分,其他程序/程序的其他部分正在使用)。我预计问题出在第二个循环.loop,因为它打印了错误的行数,而打印由.loop处理。我正在使用FASM(FlatAssembler)程序来编译它。代码:formatPEconsoleinclude"win32ax.inc"start:movecx,50;numberofloops.mainloop:;fortestingpurposes,justpushes49-0ontothestackpushecx;pu

Windows 64 ABI,如果我不调用 Windows API,是否正确注册?

正如我在另一个问题中向我建议的那样,我检查了WindowsABI,如果我自己不调用WindowsAPI,我对我能做什么和不能做什么感到有点困惑。我的场景是我正在编写.NET程序,并且需要在asm中针对特定处理器编写一小段代码,用于对数组执行大量多channel处理的时间关键代码部分。在https://msdn.microsoft.com/en-us/library/9z1stfyw.aspx处检查ABI中的注册信息时我对什么适用于我感到有点困惑1)不要从asm代码调用windowsAPI2)不要返回一个值,只接受一个参数。这是我的理解,我的理解是否正确?RAX:我可以在不保留它的情况下

windows - 如何在部分上使用 fixups 属性?

“修复”应用于部分时究竟做了什么?在一个fasm示例中,我发现了以下部分delcaration,我真的不确定fixups属性的作用,我在fasm文档中找不到太多关于它的信息。section'.reloc'fixupsdatareadablediscardableif$=$$dd0,8;iftherearenofixups,generatedummyentryendif 最佳答案 这似乎是buginhowFASMgeneratesPECOFFDLLs的解决方法..reloc部分仅适用于PECOFF图像(EXE和DLL),并提供允许在任

windows - masm FPU 到 fasm FPU 无​​法转换并且不起作用

我在masm中有这段代码来处理FPU,它工作得很好在这段代码中,我从2个不同的文本框中获取一个数字,然后将它们相除,然后将结果输出到另一个文本框这是本地的数据LOCALvariable1:QWORDLOCALvariable2:QWORDLOCALvariable3:QWORDLOCALstring1[20]:BYTELOCALstring2[20]:BYTELOCALstring3[20]:BYTE这是代码invokeGetDlgItemText,hWin,textbox1,addrstring1,9invokeStrToFloat,addrstring1,addrvariable1

windows - Win32 FASM .inc 文件之间的差异

FlatAssembler中的win32a、win32ax、win32axp、win32w、win32wx和win32wxp.inc文件有什么区别?我试图在FASM文档中找到它,但找不到...提前致谢,ChristonianCoder 最佳答案 Therearesixheadersfor32-bitWindowsthatyoucanchoosefrom,withnamesstartingwithwin32followedbyeitheraletteraforusingtheASCIIencoding,oraletterwforthe

windows - assembly 计数程序

我是汇编的新手,我正在尝试编写一个计数达到10,000并退出的程序。我正在使用fasm`include'include/win32ax.inc'.dataincharDB?numwrittenDD?numreadDD?outhandleDD?inhandleDD?strFormatDB"Number%d",0strBuffRB64.codestart:;setupconsoleinvokeAllocConsoleinvokeGetStdHandle,STD_OUTPUT_HANDLEmov[outhandle],eaxinvokeGetStdHandle,STD_INPUT_HANDL

windows - 关于汇编远程调用和天堂之门,触发异常的段调用是否会在抛出异常之前推送 cs 和 eip?

目前我正在玩被称为“天堂之门”的windows/WOW64技巧,正如你们中的一些人可能知道的那样,即使在x86程序中,它也允许我们进入x64模式(我很惊讶当我测试了它,它成功了!)但我知道并非所有Windows版本都支持它,所以我的代码(因为有代码)使用seh,它看起来像这样:start:use32;;setupseh...call$33:.64bits_code;specify0x33segment,it'sthateasy;;successinx64mode,quitseh...jmp.exit.64bits_code:use64;;...use32retf.seh_handler

windows - FASM 汇编程序在退出前等待

这是我在FASM中使用的代码:formatPEconsoleentrymaininclude'..\MACRO\import32.inc'section'.data'datareadablewriteablemsgdb"привіт!",0dh,0ah,0;hilcl_setdb?section'.code'codereadableexecutablemain:;failwithoutsetlocalepushmsgcall[printf]popecx;succeedwithsetlocalepushmsgcall_liapnutypopecxpush0call[ExitProcess
12