Linux内核使用哪个程序集?真的是NASM吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内核使用哪个程序集?真的是NASM吗?相关的知识,希望对你有一定的参考价值。
我正在读取https://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-1.html,它读取了一些程序集,例如
.section ".reset", "ax", %progbits
.code16
.globl _start
_start:
.byte 0xe9
.int _start16bit - ( . + 2 )
...
在某行中,他像这样编译
nasm -f bin boot.nasm && qemu-system-x86_64 boot
所以我认为这是Linux的NASM组件。我去找https://asmtutor.com/#,说它使用Linux的NASM程序集。但是,这不是同一回事。仅举几例:linux内核使用.section
代替SECTION
,.globl
代替global
,并且我不认识.byte
,.int
等。
那么linux使用哪个程序集,我在哪里可以学到呢?
答案
Linux内核使用GAS汇编程序(GNU汇编程序),它是GCC的一部分。您可以在其中找到参考文档here。
只要您已经对汇编有基本的了解,就可以找到关于GAS here的详尽介绍。
[对于.byte
和.int
,.byte
将在其后的1个或多个1字节值放在当前汇编器地址处,并且.int
进行相同的操作,但使用32位整数而不是字节。] >
以上是关于Linux内核使用哪个程序集?真的是NASM吗?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Xcode 命令行 nasm 程序集发出错误:unknown use of instruction mnemonic without a size suffix