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