fasm相关内容

push/pop eax 给了我“非法指令"在编译时

我刚开始使用 fasm/x86 编程,我从 64 位样本开始作为我项目的目标,在该项目中我需要一些汇编程序是 64 位至强. 我从 PE64DEMO 开始并对其进行了修改以添加一个循环,但是在第一次迭代后它失败了,因为(从我可以在线收集的信息)Windows api 函数可以更改寄存器而不是恢复它们.我还读到我应该保存我需要自己从堆栈中推送和弹出的内容,我评论了推送和弹出,如果我取消注释它们 ..
发布时间:2021-09-29 19:48:07 其他开发

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

“修正"在应用于某个部分时究竟有什么作用?在 fasm 示例中,我发现了以下部分声明,但我真的不确定 fixups 属性的作用,我在 fasm 文档中找不到太多相关信息. section '.reloc' fixups data 可读可丢弃如果 $=$$dd 0,8 ;如果没有修正,则生成虚拟条目万一 解决方案 这似乎是 FASM 如何生成 PECOFF DLL 的错误..reloc 部分仅 ..
发布时间:2021-09-29 19:46:09 其他开发

为什么必须取消引用数据标签才能在其中存储内容:Assembly 8086 FASM

考虑以下示例: mov al, [variable1] 这是有道理的,因为您在寄存器 al 中保存了变量 1 的内容(因此取消了对它的引用). 现在考虑这个例子: mov dword L6, 1 这是不正确的;正确的形式是 mov dword [L6], 1 如果我们将 1 移动到内存中,我应该告诉它存储在那个地址而不是内容中.假设您要告诉某人去某个地方参 ..
发布时间:2021-09-29 19:33:45 其他开发

匿名本地标签(@@):哪些汇编程序支持多步引用,例如@FF(第二个下一个@@)?

在某些x86汇编方言中,可以使用@@:放置匿名本地标签,并像jmp @F这样在跳转中引用它们,其中@F表示“下一个@@",而@B表示“上一个@@". 以下是我在网上搜索时发现的来自Microsoft的描述: Q33067:匿名标签跳转说明 我使用预处理器的宏工具今天,我对MASM在处理匿名本地标签方面的差异(如果有的话)感到好奇.但是,我找不到任何明确表明MASM支持多步引用的信息.我 ..
发布时间:2021-02-15 20:43:10 其他开发

FASM-将参数传递给外部程序

在将参数传递到主ASM文件之外的过程时遇到麻烦.这是我的代码.它显示了一个主要过程_main(在main.asm中),该过程在另一个源文件(sub.asm)中调用子过程_sub.子过程将打印由主过程指定的字符串. main.asm: ;subprocedure test- main.asm org 100h include 'sub.asm' ;file of sub-procedur ..
发布时间:2020-06-14 19:12:26 其他开发

如何在Windows和FASM中写入StdOut?

这个问题非常简单,但是我似乎找不到解决方法:如何在Windows/FASM中写入StdOut? 似乎没有任何在线文档.想法? 解决方案 有一些选择... 1)使用WinAPI.这是 WriteConsole 或通过使用CreateFile,文件名为CON,然后使用 WriteFile 2)使用msvcrt和 printf ,就像在ac程序中一样. ..
发布时间:2020-06-14 19:12:24 其他开发

FASM HelloWorld .exe程序

我试图在FASM上编写我的第一个.exe程序.当我使用org 100h时,它可以正常工作,但是我想编译.exe文件.当我用"format PE GUI 4.0格式"替换第一行并尝试对其进行编译时,发生了错误:“值超出范围"(行:mov dx,msg). ORG 100h ;format PE GUI 4.0 mov dx,msg mov ah,9h int 21h mov ah ..
发布时间:2020-06-14 19:12:21 其他开发

调用sprintf在程序集中崩溃

我试图调用sprintf格式化字符串并将结果存储在堆栈变量中.但是,我的尝试惨遭失败,并立即崩溃. sub esp, 0x100 ;Allocate 256 bytes on the stack. push dword[RequestedFile] ;push string2 pus ..
发布时间:2020-06-14 19:12:18 其他开发

FASM是否使用英特尔语法?

我尝试在FASM中编译以下代码: mov DWORD PTR [ebp - 4], 1234567 它给了我一个“无效的表达式"错误.但是,以下代码有效: mov DWORD [ebp - 4], 1234567 FASM是否使用Intel语法(我假设第一行代码符合Intel语法)? 解决方案 它给了我一个“无效的表达式"错误. 与MASM(和其他)不同 ..
发布时间:2020-06-14 19:12:13 其他开发

转换16位DOS .com程序集以在64位上使用

我在32位Windows XP的平面汇编程序中编写了一些汇编程序.但是,由于我现在拥有64位Windows 8,因此我无法运行.com文件,因为它们似乎与64位版本不兼容(程序为32位). 我如何转换它以便也可以在win8中运行它?也许使用其他汇编程序? 我想避免使用仿真器和虚拟机. 解决方案 .com文件为16位.您可以使用32位指令和寄存器,但这是16位代码.一旦将64位C ..
发布时间:2020-06-14 19:12:10 其他开发

在DOS EXE程序中从保护模式切换到实模式

我学会了使用基于DOS的简单Bootloader切换到保护模式.该加载程序将kernel.bin加载到缓冲区中,并将缓冲区复制到100000h(内核为8KiB).然后将控制权转移到内核.当我从内核返回并尝试切换到实模式时,我遇到了问题. 我的FASM汇编代码(类似于我以前的 Stackoverflow问题)如下: format MZ push cs pop ds mov eax,cs ..
发布时间:2020-06-14 19:12:02 其他开发

ASM:MASM,NASM,FASM?

我已经完成了ARM汇编编程,并且想学习Intel Assembler.我一直在听所有提到的所有这些F/M/N/ASM,但是我不确定它们与我想要实现的目标之间有什么联系? 有人可以帮助我确定学习如何在Intel架构上进行低级编程所需的知识吗?我不太了解“不同的汇编程序"之间的关系,甚至与x86,IA64,AMD64/x86-64等之间的关系如何? 如果有帮助,我最喜欢Eclipse和Vi ..
发布时间:2020-05-06 09:07:36 其他开发

为什么在启用地址随机化的情况下此代码会崩溃?

我正在学习amd64汇编程序,并试图实现一个简单的Unix过滤器.由于未知的原因,甚至简化为最低的最低版本(下面的代码),它也会随机崩溃. 我试图在GNU调试器(gdb)中调试该程序.在gdb的默认配置中,该程序运行良好,但是如果启用地址随机化(set disable-randomization off),该程序将开始崩溃(SIGSEGV).清单中标记了有问题的说明: format E ..
发布时间:2020-05-01 08:32:52 服务器开发