所以我正在调查source code for Redox OS(一个用Rust制作的操作系统),看看我是否可以学到一些东西。
我正在start.s文件夹中阅读汇编文件bootloader
。在interrupt_vector_table
标签中我们有:
interrupt_vector_table:
b . @ Reset
b .
b . @ SWI instruction
b .
b .
b .
b .
b .
什么是b .
?
我不是一个完整的装配初学者,我以前从未遇到过这个问题。
ARM CPU的b
指令与x86 CPU的jmp
指令几乎相同:跳转指令
使用GNU工具链.
意味着:指令本身的地址。
所以b .
等于:
temporaryLabel:
b temporaryLabel
或(对于x86 CPU):
temporaryLabel:
jmp temporaryLabel