虽然现在的操作系统大多是用C语言写成的,不过在底层还是有许多的代码是使用汇编语言写的。汇编语言负责编写启动、堆栈初始化、系统运行段划分等关键部分的代码,而C语言则用在设计算法、逻辑等与硬件关联不大的地方,解决复杂问题。所以我们还是需要了解一些汇编语言的写法,至少要能够读懂一个汇编语言写出的程序。
先写一个简单的例子:
.global helloworld
.equ REG_FIFO, 0x50000020
.text
.align 2
helloworld:
ldr r1,=REG_FIFO
adr r0, .L0
.L2:
ldrb r2,[r0],#0x1
str r2,[r1]
cmp r2,#0x0
bne .L2
.L1:
b .L1
.align 2
.L0:
.ascii "hello world\n\0"
这就是一个简单ARM汇编版的“hello world”。 我们先简单介绍一下以上程序中使用到的伪指令。
本站采用 知识共享署名-非商业性使用-相同方式共享3.0 中国大陆许可协议 进行许可,转载请注明出处。
推荐使用 chrome 浏览器浏览本站。