ARM汇编学习笔记总结

本文是关于ARM汇编语言的学习笔记,详细介绍了ARM的寄存器分类与功能,包括通用寄存器和状态寄存器的作用。深入讲解了ARM的基本指令,如跳转、数据处理、数据传送等,并探讨了寄存器寻址方式,如立即寻址、寄存器寻址等。最后,文章阐述了函数调用过程中参数传递、返回值和现场保护恢复的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、ARM寄存器

二、ARM基本指令

三、寄存器寻址方式

四、程序中函数的实现—调用过程


1、汇编语言是CPU执行效率最高的一门语言,一条汇编指令是唯一对应一条机器指令(二进制码)。

2、ARM汇编语言是一门低级语言,它与系统的底层打交道,直接访问底层硬件资源。

3、寄存器是CPU的组成部分,是和存储器交互的桥梁,它们可用来暂存指令、数据和地址。


一、ARM寄存器

ARM寄存器分为2类,通用寄存器和状态寄存器。通用寄存器总共16种,分别为R0到R15;状态寄存器共2种,分别为CPSR和SPSR。

16种通用寄存器:(总个数31)

R15 别名PC(program counter)程序计数器:保存当前正在执行的指令在内存中的地址,当指令执行结束后,PC的值自动+1,即自动指向下一条即将执行的指令在内存中的位置。因为当程序通过汇编指令完成了对PC寄存器的赋值操作的时候,其实就是完成了一次无条件跳转。

R14 别名LR(linked register)链接寄存器:用于存放子程序的返回地址,它是ARM程序实现子程序调用的关键所在。

R13 别名SP(stack pointer)栈指针寄存器:用于存放堆栈的栈顶地址的。当我们进行出栈和入栈的时候,都将根据该寄存器的值来决定访问内存的位置(即出入栈的内存位置),同时在出栈和入栈操作完成后,SP寄存器的值也应该相应增加或减少。

R0-R12是普通的数据寄存器,可用于任何地方。R0-R3 常用来传入函数参数,传出函数返回值。R4-R11 常用来存放函数的局部变量。被调用函数返回之前必须恢复这些寄存器的值。R12 内部调用暂时寄存器。

2种状态寄存器:(总个数6)

CPSR(1个)状态寄存器:用于保存程序的当前状态。

SPSR(5个)备份程序状态寄存器: 异常返回后恢复异常发生时的工作状态。


二、ARM基本指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值