歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

ARM匯編程序結構

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 子程序名即可完成子程序的調用。該指令在執行時完成如下操作:

  1. 將子程序的返回地址保存在LR
  2. 將PC指向子程序的入口
  3. 子程序執行完畢需要返回時只需將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
...

Copyright © Linux教程網 All Rights Reserved