用于系统编程的x64汇编程序

时间:2014-11-15 02:22:03

标签: assembly

我想进行系统编程,我需要组装一些我要做的事情。问题是,我找不到64位计算机的汇编程序。我尝试过TASM和NASM。使用TASM,它不会让我组装任何东西,并且使用NASM,生成的可执行文件说它与我的计算机不兼容。我还可以使用其他装配工吗? (我不想使用需要AT& T语法的那个)

2 个答案:

答案 0 :(得分:1)

如果您使用的是Linux x86_64

$ nasm -f elf -g -F stabs FOO.asm 
$ ld -o FOO FOO.o -melf_i386

生成一个32位文件,可以在32位或64位计算机上运行 $是Linux OS“bash”控制台的命令行提示符。 (FOO是示例文件名)

$ nasm -f elf64 -g -F stabs FOO.asm 
$ ld -o FOO FOO.o

再次为Linux OS生成64位可执行文件。 MS窗口将使用不同的 例如,使用win32或win64代替elf或elf64。

$nasm -hf 

会为您提供更多信息。 对不起,我15年前就抛弃了Windows for Linux。 我自己只是一个集会初学者,所以这就是我所能提供的一切。希望它有所帮助。

答案 1 :(得分:0)

如果您正在运行Windows,Visual Studio Express(免费)包括ml64.exe,一个64位汇编程序。需要一个自定义构建步骤来调用ml64.exe,我想你第一次尝试这个时会得到提示,但是我手动创建了这个步骤。我首先创建一个空项目,然后选择项目,属性,配置管理器,< new&gt ;,并选择x64以生成64位可执行文件。对于自定义构建步骤

对于调试版本:

Command Line:
ml64 /c /Zi /Fo$(OutDir)\example.obj example.asm

Outputs:
$(OutDir)\example.obj

对于发布版本:

Command Line:
ml64 /c /Fo$(OutDir)\example.obj example.asm

Outputs:
$(OutDir)\example.obj