博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ARM汇编程序结构
阅读量:7099 次
发布时间:2019-06-28

本文共 601 字,大约阅读时间需要 2 分钟。

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, =0x3ff5000ldr r1, 0xffstr r1, [r0]ldr r0, =0x3ff5000ldr r1, 0x01str r1, [r0]bl  print_text  ;执行跳转...print_text:...mov pc, bl...

转载于:https://www.cnblogs.com/xiaojiang1025/p/6063616.html

你可能感兴趣的文章
Emmet:HTML/CSS代码快速编写神器
查看>>
webpack实战
查看>>
虚幻4游戏开发_3_创建与继承材质
查看>>
win2003域控主备(热备)搭建
查看>>
浪潮之巅读后感
查看>>
Mathematica 函数调用发生异常时停止计算
查看>>
Clenshaw–Curtis quadrature
查看>>
ajax做分页
查看>>
CHIL-SQL-约束 (Constraints)
查看>>
64位操作系统在DOSBox中进入debug的问题
查看>>
ArrayList源码分析
查看>>
WiFi无线连接过程中有哪几个主要步骤?
查看>>
C++之编码问题(Unicode,ASCII,本地默认)
查看>>
[日常] DNS的迭代查询过程
查看>>
[Linux] Nginx 提供静态内容和优化积压队列
查看>>
Excel VBA 基本概念
查看>>
获取文件Md5值
查看>>
Linux常用命令整理
查看>>
逛论坛时发现 有关 递归调用
查看>>
JavaScript的3大组成部分&&ECMAScript函数&&闭包
查看>>