ARM彙編程式結構 一個ARM程式可以被劃分為多個代碼段和數據段,在彙編的時候這些段會被形成一個可執行文件 子程式調用 ARM彙編中,子程式的調用一般通過 指令實現,在程式中,執行 即可完成子程式的調用。該指令在執行時完成如下操作: 1. 將子程式的返回地址保存在LR 2. 將PC指向子程式的入口 ...
ARM彙編程式結構
一個ARM程式可以被劃分為多個代碼段和數據段,在彙編的時候這些段會被形成一個可執行文件
.text ;正文段,包含程式的指令代碼
.data ;數據段,包含固定的數據,如常量,字元串
.bss ;未初始化數據段,包含未初始化的變數,數組等
.sdata
.sbss
.section .data
;initialized data
.section .bss
;uninitialized data
.section .text
.global _start
_start:
;instruction code
子程式調用
ARM彙編中,子程式的調用一般通過BL
指令實現,在程式中,執行BL 子程式名
即可完成子程式的調用。該指令在執行時完成如下操作:
- 將子程式的返回地址保存在LR
- 將PC指向子程式的入口
- 子程式執行完畢需要返回時只需將PC指向LR即可
.text
.global _start
_start:
ldr r0, =0x3ff5000
ldr r1, 0xff
str r1, [r0]
ldr r0, =0x3ff5000
ldr r1, 0x01
str r1, [r0]
bl print_text ;執行跳轉
...
print_text:
...
mov pc, bl
...