linux运行asm文件,linux – 尝试在Ubuntu上的NASM上运行.asm文件时出错

这看起来可能是由nasm产生的和ld试图做的内容之间的简单的不匹配:

i386 architecture of input file 'hello.o' is incompatible with i386:x86-64 output

换句话说,nasm已经生成了一个32位的对象文件hello.o,ld想要这样做,并且做一个64位的可执行文件.

nasm -hf命令应该给你可用的输出格式:

valid output formats for -f are (`*' denotes default):

* bin flat-form binary files (e.g. DOS .COM, .SYS)

ith Intel hex

srec Motorola S-records

aout Linux a.out object files

aoutb NetBSD/FreeBSD a.out object files

coff COFF (i386) object files (e.g. DJGPP for DOS)

elf32 ELF32 (i386) object files (e.g. Linux)

elf ELF (short name for ELF32)

elf64 ELF64 (x86_64) object files (e.g. Linux)

as86 Linux as86 (bin86 version 0.3) object files

obj MS-DOS 16-bit/32-bit OMF object files

win32 Microsoft Win32 (i386) object files

win64 Microsoft Win64 (x86-64) object files

rdf Relocatable Dynamic Object File Format v2.0

ieee IEEE-695 (LADsoft variant) object file format

macho32 NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (i386) object files

macho MACHO (short name for MACHO32)

macho64 NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (x86_64) object files

dbg Trace of all info passed to output stage

我看到您链接的教程要求您运行:

nasm -f elf hello.asm

尝试使用:

nasm -f elf64 hello.asm

相反,您可能会发现ld停止抱怨输入文件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用NASM编写汇编程序,可以按照以下步骤进行: 1. 下载并安装NASM。可以从NASM官网(https://www.nasm.us/)下载适合你的操作系统的安装包,然后按照提示进行安装。 2. 编写汇编程序。使用文本编辑器编写汇编程序代码,保存为.asm文件。 3. 使用NASM将汇编程序编译成二进制文件。在命令行窗口中,进入.asm文件所在的目录,然后输入以下命令: ``` nasm -f bin -o output.bin input.asm ``` 其中,output.bin是编译生成的二进制文件名,input.asm是你编写的汇编程序文件名。 4. 使用DOSBox运行编译生成的二进制文件。DOSBox是一个模拟DOS环境的软件,可以在现代的操作系统中运行DOS程序。将编译生成的二进制文件复制到DOSBox的虚拟磁盘中,然后在DOSBox中运行该程序。具体步骤如下: - 启动DOSBox,进入虚拟DOS环境。 - 将编译生成的二进制文件复制到DOSBox的C盘根目录下。可以使用DOSBox提供的共享文件夹功能,将本地文件夹共享给DOSBox,然后在DOSBox中访问共享文件夹。 - 在DOSBox中执行以下命令,运行编译生成的二进制文件: ``` c:\output.bin ``` 其中,output.bin是你编译生成的二进制文件名。 以上就是使用NASM编写汇编程序并在DOSBox中运行的基本步骤。需要注意的是,具体的操作步骤可能会因操作系统和软件版本的不同而有所差异,请根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值