HQYJ学习——ARM

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

 

 


一.ARM基本。

ARM成立于1990年,有Advanced Risc Machines三家公司组成。

1991年第一个ARM内核诞生。

ARM的核心功能:机器码,主频,高速缓存cache,多核,硬浮点计算,数据运算,功耗。

ARM的内核是一种CPU的架构设计。

cpu架构有冯诺依曼结构和哈佛结构,现在一般都采用哈佛结构,哈佛结构采用指令和数据独立编址,使用2条独立的通道,cpu读取指令和数据的操作可以重叠,而冯诺依曼结构是统一编址的,同条总线传输,cpu读取指令和数据的操作不能重叠。

处理器

通常使用的有RISC(精简指令集处理器)和CISC(复杂指令处理器)两种,现在更多的在使用RISC的方向。

RISC:RISC更着主于如何使计算机的结构更简单,使计算机的处理速度更快速,RISC固定指令长度,选取频率高的简单指令,抛弃复杂指令,在功耗,体积,价格等方面有很大优势,多用于嵌入式领域。

CISC:侧重于硬件执行指令的功能性,CISC指令及处理器的硬件结构复杂,其指令复杂,指令长度于周期不固定,在处理能力上优势。

CPU/MCU/SOC差别

CPU:所有cpu的工作原理都包括4个阶段:提取,解码,‘,写回。

MCU:微控制器,将cpu,ram,rom,各种接口集成在一个芯片上,有简单的操着系统,广泛应用于各种控制设备,仪表,传感器等等。

SOC:片上系统,系统级别的芯片,可以运行复炸的操作系统。

ARM是32位指令集,Thumb是16位指令集,从ARM v4E开始ARM开始支持16位指令集。

ARM寄存器:r0-r7为低位寄存器,r0-r12为通用寄存器,r13(sp)为堆栈指针,r14(lr)为连接寄存器,r15(pc)为程序计数器,CPSR为存储当前内核状态和模式标志。

ARM架构提供37个32-bit的寄存器,Cortex-A多出3个。

ASM的工作模式有User(正常)模式,特权模式下的异常模式和System特权模式。

二.ARM基础指令。

MOV/MVN:立即数,arm指令是RISC精简指令集,指令长度固定32位,指令格式中低112位表示要操作的常数,但范围太小了,所以用12位中的八位来表示基本数值,4位表位移,通过8位数右循环4位数值*2来表示

MOV能表示的数:1.除0外仅有一位合法数。  2.除零外仅有2位数,并且相邻(包括首尾)。   3.除零外,仅有三位数,如0x14000003,最高位取1,2,3,中间位取4,8,最低位0x0-0xf,这种组合。 4.0xffffffff

 ADD:ADD rd, rn, n     加

SUB:SUB rd, rn, n 减

MUL:MUL rd, rn, rm    乘,rd于rn不能是同一个

AND:AND rd,rn, n   与

ORR:ORR rd, rn, n   或

EOR:EOR rd, rn, n   异或

BIC:BIC rd, rn, n rn与n按位取反的结果放入rd中

CMP:CMP rd, rn 比较指令

B Label:直接跳转到label处,偏移量24位,最大正负32M处

BL Label:先保存pc到lr再跳转,执行完后回到调用处。

BX/BLX Label:跳转并arm和thumb之间切换

LDR pc, =label:长距离跳转

单数据访问:

LDR rd, 【rn】:读内存

STR rd, 【rn】:写内存

STR r0, 【r1, #4】      LDR r0,【r1, #4】:前索引

STR r0, 【r1】 #4      LDR r0,【r1】 #4:后索引

STR r0, 【r1, #4】!      LDR r0,【r1, #4】!:自动索引

多数据访问:

LDM{cond}<mode>Rn{!},{Reglist}:将一快内存的数据放到多个寄存器里

STM{cond}<mode>Rn{!},{Reglist}:将多个寄存器的值存储到一块内春里

出入栈操作;

stmfd sp!,{r0-r12}

ldmfd sp!,{r0-r12}

CPSR,SPSR操作指令:

MRS rd, CPSR/SPSR

MSR CPSR/SPSR, rd

ARM有7种异常模式

常见问题;

 

 


总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值