汇编笔记3_NASM使用1

本文介绍了使用NASM编译生成ELF文件和链接过程,包括解决32位与64位兼容问题。同时,探讨了ELF格式的四种类型以及aout的历史与现状。此外,讨论了在Linux系统调用中的作用,以及汇编中的section概念,如.data和.bss段的作用。
摘要由CSDN通过智能技术生成

编译和链接

nasm编译生成elfnasm -f elf hello.asm
gcc链接gcc hello.o -o hello
如果报错i386 架构于输入文件 hello.o 与 i386:x86-64 输出不兼容,是因为输入32bit,输出64bit,用elf64即可(事实上,这个参数自己选,有elf,elf32,elf64,aout)
或者也可以不用gcc来link(特别是有的时候,妾身的代码不支持64bit,ld就显得很重要了)
ld -m elf_i386 hello.o -o hello
然后,./hello 跑程序就可以了

elf&aout

ELF

全称是Executable Linkable Format
1.可重定位文件 这类文件包含了代码和数据,可以被用来链接成可执行文件或共享目标文件,静态链接库也可以归为这一类
2.可执行文件 这类文件包含了可以直接执行的程序,它的代表就是ELF可执行文件,它们一般都没有扩展名
3.共享目标文件 这类文件包含了代码和数据,可以在两种情况下使用。一种是链接器可以使用这种文件跟其他的可重定位文件和共享目标文件链接,产生新的目标文件。第二种是动态链接器可以将几个这种共享目标文件与可执行文件结合,作为进程映像的一部分来运行
4.核心转储文件 当进程意外终止时,系统可以讲该进程的地址空间的内容及终止时的一些其他信息转储到核心转储文件

aout

assembler output(汇编程序输出)最初没有连接器,所有源文件连接在一起,进行汇编
但是现在程序编程中出现它并不是汇编输出,而

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值