我正在学习linux内核源代码。
而且我已经对汇编语言有了一些基本的了解,比如通用指令的使用(例如mov
, add
, jmp
, call
...),AT&T 类型和 Intel 类型的区别。
因此,就目前而言,了解这些 asm 代码在做什么的粗略概念对我来说不是什么大问题。但是这些指令,比如.text
.data
显示在下面代码的头部和尾部,让我很困惑。
.text
所以,我的直接问题是pair, pair的含义是什么.data
?我的根本问题是什么是 asm 版本或键入这些语法?我认为这是对英特尔的颠覆,因为常量前没有“$”。但是为什么有'#'和'_start'而不是'main'呢?我在哪里可以找到所有这些相关 asm 语法的完整介绍?
请帮帮我!</p>
非常感谢!
.globl begtext, begdata, begbss, endtext, enddata, endbss
.text
begtext:
.data
begdata:
.bss
begbss:
.text
BOOTSEG = 0x07c0 ! original address of boot-sector
INITSEG = 0x9000 ! we move boot here - out of the way
SETUPSEG = 0x9020 ! setup starts here
entry _start
_start:
mov ah,#0x03
xor bh,bh
int 0x10
... ...
.text
endtext:
.data
enddata:
.bss
endbss: