gpt4 book ai didi

linux - Linux 内核使用哪个程序集?真的是NASM吗?

转载 作者:行者123 更新时间:2023-12-02 16:48:17 27 4
gpt4 key购买 nike

我正在阅读 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 assembly for linux。然而,这不是一回事。仅举几例:linux 内核使用 .section 而不是 SECTION.globl 而不是 global 而我不认识 .byte.int 等的作用。

那么linux用的是哪个程序集,哪里可以学呢?

最佳答案

Linux 内核使用 GCC 的一部分 GAS 汇编程序(GNU Assembler)。您可以在上面找到引用文档 here .

您可以找到对 GAS 的相当详尽的介绍 here前提是您已经对汇编有一个基本的了解。

至于.byte.int.byte在当前汇编程序中将其后的1个或多个1字节值放入内存中地址,.int 做同样的事情,但对于 32 位整数而不是字节。

关于linux - Linux 内核使用哪个程序集?真的是NASM吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59669393/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com