ARM 汇编语言知识积累

博文参考:

arm中SP,LR,PC寄存器以及其它所有寄存器以及处理器运行模式介绍

arm平台根据栈进行backtrace的方法-腾讯云开发者社区-腾讯云 (tencent.com)

特殊功能寄存器:

SP: 即 R13,栈指针,

LR:即 R14,链接指针,保存未跳转之前的程序的下一条指令的地址,由 CPU 硬件实现。

PC:R15,程序计数器,保存当前正在取的指令的地址 ,由于 ARM 是两级流水线,可以理解为正在执行的指令有两条 32 位的指令(2*32 bit = 8 Byte 的指令长度),即正在执行的指令的地址 +8(字节)。

状态寄存器:

CPSR 和 SPSR,arm 进入异常模式后,SPSR自动保存进入异常前的 CPSR 的值,以便异常返回后恢复异常发生时的工作状态。

LDR:Load 读内存

STR:Store 写内存

ADD:加法

SUB:减法

CMP:比较

B:直接跳转

BL:跳转和 Link,将返回地址保存到 LR 寄存器再跳转

汇编对比理解视频:

[3-2-2]_ARM架构简明教程_汇编实例_哔哩哔哩_bilibili

相关推荐
宁静致远20212 小时前
深入理解Qt状态机的应用
arm开发·qt·状态机
技术干货贩卖机7 小时前
0基础 | 开发环境 |51单片机编译环境 Keil C251和C51,STM32的编译环境Keil 5 MDK-ARM
arm开发·stm32·嵌入式硬件
szxinmai主板定制专家1 天前
基于STM32+FPGA的地震数据采集器软件设计,支持RK3568+FPGA平台
arm开发·fpga开发
总结所学1 天前
arm_math.h、arm_const_structs.h 和 arm_common_tables.h
arm开发·单片机·嵌入式硬件
x-cmd1 天前
[250416] GitHub Action 新升级,支持 Windows on Arm
arm开发·windows·github·github action
q1204489992 天前
zigbee和wifi都是无线通信,最大区别是低功耗,远距离!
arm开发
丁总学Java2 天前
wget(World Wide Web Tool) 教程:Mac ARM 架构下安装与使用指南!!!
前端·arm开发·macos
乔宕一2 天前
获取 arm-none-eabi-ld 默认使用的链接脚本
arm开发
星仔_X4 天前
STM32 HAL库之USART示例代码
arm开发·stm32·单片机·嵌入式硬件
楚灵魈5 天前
[Linux]从零开始的ARM Linux交叉编译与.so文件链接教程
linux·arm开发