查看“Which assembler should I use?(x86)”的源代码
←
Which assembler should I use?(x86)
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==导言== 汇编器(assembler)是将汇编语言代码转换成机器代码的程序。 即使你没有使用汇编语言作为操作系统的主要编程语言,你仍然必须编写一些汇编语言。 本文讨论了用于操作系统开发的常用汇编程序的优缺点。 == GAS == GNU汇编程序或[[GAS]]是GNU二进制文件中包含的汇编程序。 它也是紧密集成在GNU工具链中的汇编器,因此与之交互效果最好。 GAS默认使用AT&T语法,但也可以使用Intel语法。 它通常与C预处理器结合使用,以实现宏功能。 GAS可以为许多不同的平台产生代码。 == NASM == Netwide Assember或[[NASM]]是一种流行的汇编程序,使用Intel语法和自己的宏系统。 它是用C语言编写的,但只为x86及其前身生成代码。 == FASM == Flat Assembler,或 [[FASM]],是一种完全用汇编语言编写的自组装(self assembling)汇编器,使用Intel语法和自己的宏系统。 它只为ia32和amd64平台生成代码,尽管存在一个用于ARM系统的分支。 它的下一代,FASMG可以通过其强大的宏系统生成几乎任何架构:x86、ARM、Z80,甚至[[WebAssembly]]。 == 结论 == 如果你想用C语言、C++语言或其他高级语言编写你的操作系统,你只需要汇编语言中最少量的部分。 在这种情况下,推荐使用的汇编器是GAS,因为它与OSDev中常用的GNU工具链紧密集成。 GAS包含在GNU binutils中,因此不会向你的项目引入新的依赖关系。 如果你想完全用汇编语言写一个项目,后两种工具通常是你的首选。 然而,FASM是自组装的,只需要一个C标准库就可以工作,这方面是它的一个轻微优势,因为它更容易移植。 [[Category:Assembly]] [[Category:x86]]
返回至“
Which assembler should I use?(x86)
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息