zoukankan      html  css  js  c++  java
  • 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
    ...
    
  • 相关阅读:
    类成员函数的重载、覆盖和隐藏区别 (C++)(转)
    man时括号里的数字是啥意思
    Redis事务
    功能接口
    持久化方式
    宿主
    路由
    静态文件
    Log4Net 配置
    Redis命令与配置
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/6063616.html
Copyright © 2011-2022 走看看