64位汇编程序问题

时间:2011-07-06 23:17:04

标签: assembly

(在win7 64位上编码)

我昨天开始编写程序集,我下载了平面汇编程序。 现在,当我编译代码时,我得到一个.fas文件和一个.bin文件。

所以我听说你将扩展名更改为.exe或.com,这就是你构建的代码。 但是当我运行它时,我得到一个错误,因为我正在尝试运行32位应用程序。

我试过了:

  1. 通过文件属性(从谷歌读取)将文件执行更改为32位,但那里有这样的选项。

  2. 一个不同的汇编程序 - 很多。我已经尝试过NASM 64位,同样的问题。还有2个我已删除的因为它们不起作用。

  3. 任何人都可以给我一个工作64位组合器的下载链接吗?我一整天都在寻找1 :(

    如果它有一个反汇编选项,它会更好,但不是必要的。

    顺便说一句,我更喜欢一个也有IDE的汇编程序(比如FASM,你在程序中编写代码并在编译时通知你错误),而不像NASM那样只是一个汇编程序。

    我还有另一个问题: 我发现了许多32位汇编程序指南,但更少的是64位汇编程序指南。我也应该从32位学习吗?我假设有64位指令,我在这些指南中找不到,但只要在64位编码时所有现有的32位指令都是EQU EQUAL,那对我来说没问题。那么,他们呢?

    并且...如果有人有一个好的x64指南,我会在这里发布一个链接。

    提前致谢。

2 个答案:

答案 0 :(得分:2)

您必须链接生成的二进制文件。对于NASM(Netwide Assembler),您可以指定输出格式,但it defaults to bin if you don't supply the argument

只需指定nam -fwin64 ...选项即可。有关NASM中Windows-64位汇编程序的更多信息,请参阅section 7.6 of the NASM manual

答案 1 :(得分:1)

FASM 支持x64。你读过manual了吗?您是否看过* EXAMPLES \ WIN64 *中的示例?