C与汇编合作编程+Makefile

本文介绍了如何在保护模式下通过C和汇编语言合作编写程序,详细阐述了从编写源代码到生成可执行文件的流程,包括使用'nasm'和'gcc'分别编译汇编和C文件,然后使用链接器'nasm'生成.bin文件。重点讨论了Makefile在自动化编译和链接过程中的应用,解释了Makefile的基本结构和变量如$@和$<的用法,帮助开发者更高效地管理项目文件。
摘要由CSDN通过智能技术生成

这周主要学习了保护模式下操作系统的加载与运行,但还没有完全学完。其中有个知识点是汇编语言与C语言合作实现一段程序。大概流程是这样:

8846565-7283592c0c64f959.png

image.png

(图来自《Orange'S:一个操作系统的实现》)

 

8846565-432398ffe04afdc2.png

image.png

 

在Linux上实现,具体实现大致是:

①在写.asm程序的时候使用“extern”表示使用的函数来自外部文件,使用“global”表示函数可以被外部使用。C语言不需要特殊说明,按语法写即可,函数间采用栈传递参数,后面的参数先入栈。

②编译(compile),各自生成目标文件.o文件,汇编用nasm,C用gcc,此时的.o文件已经是机器语言文件了。

③链接(link),采用nasm,生成.bin文件。本质上是根据函数名将函数相互链接起来,因此一定不要重名!

④ld指令可以指定程序在内存中的位置:ld –s –Ttext指定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值