【发布时间】:2020-01-09 17:33:44
【问题描述】:
我正在阅读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/#,它说它使用 NASM 程序集 for linux。然而,这不是一回事。仅举几例:Linux内核使用.section而不是SECTION,.globl而不是global,我不知道.byte,.int等做了什么。
那么 linux 使用的是哪个程序集,我在哪里可以学习呢?
【问题讨论】:
-
内核使用 gnu 汇编器。如果您愿意,当然可以在 linux 上使用 nasm 或其他各种汇编程序。
-
请注意,每个汇编程序都有自己的语法。