Und*_*der 6 assembly arm gnu-assembler instruction-set
所以我正在研究Redox OS(一个用 Rust 制作的操作系统)的源代码,看看我是否能学到一些东西。
我读的汇编文件的start.s中bootloader的文件夹。在interrupt_vector_table标签中,我们有:
interrupt_vector_table:
b . @ Reset
b .
b . @ SWI instruction
b .
b .
b .
b .
b .
Run Code Online (Sandbox Code Playgroud)
究竟是b .什么?
我不是一个完整的组装初学者,我以前从未遇到过这种情况。
Mar*_*nau 12
在b为ARM CPU指令几乎是一样的jmp针对x86 CPU的指令:跳转指令
使用 GNU 工具链.意味着: 指令本身的地址。
所以b .等于:
temporaryLabel:
b temporaryLabel
Run Code Online (Sandbox Code Playgroud)
或(对于 x86 CPU):
temporaryLabel:
jmp temporaryLabel
Run Code Online (Sandbox Code Playgroud)