3.ARM寄存器组织

ARM寄存器组织

寄存器

什么是寄存器?
寄存器是CPU内部的存储器。

特点
读写快,因为其在CPU内部。
没有地址

C语言中register修饰的局部变量类型大小小于等于int型可以放在寄存器中。不可 &a取地址。
因为ARM不支持浮点型运算符,因此只能用int以下的类型。局部变量在函数运行完后会销毁不占用寄存器资源。寄存器中没有地址。

通用寄存器:想存什么就存什么
专用寄存器:规定必须存什么,如PC寄存器只能存指令地址
控制寄存器:用于切换CPU的模式

在这里插入图片描述

ARM寄存器

不同的工作模式下能用的寄存器不同。
ARM一共有40个寄存器。
在这里插入图片描述

专用寄存器

R15寄存器:就是PC寄存器。
用于存放取址指令的地址。
取完后会自动加4.
能用程序指定要取的指令地址。

R14寄存器:(LR)链接寄存器。

  1. 当在执行一个程序时遇到一个函数要跳转到这个函数所在的地址去时(跳转)。LR会自动保存跳转指令下一条指令的地址,待那个函数执行完后再将LR的值复制到PC寄存器即可。
  2. 在程序被异常中断时,LR会自动保存中断的下一条指令的地址,待异常处理结束再将LR的值复制到PC寄存器。

R13寄存器:(SP)栈指针
栈就是一段内存,用来存放临时变量的。比如局部变量、参数、返回值等执行完会销毁的变量。
存放这些变量时通过指针来获取地址,这个指针就是栈指针。
存放一个变量后,栈指针后移,因此其在不停移动。

在这里插入图片描述

控制寄存器

CPSR:用来控制切换工作模式的
共32位。
0~4位:模式位。用来控制工作模式。详见下图。
5位:状态位。ARM或Thumb指令状态。
6~7位:开关FRQ、IRQ模式
31位:N位。运算器中产生负数的结果该位自动置1,否则为0
30位:Z位。运算器中产生了0的结果该位自动置1,否则为0
29位:C位。针对无符号数,加法进位置1,减法借位置0
28位:V位。针对有符号数,加法符号位进位置1,减法符号位错位置0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. - ARM: Advanced RISC Machines,是一种基于RISC(精简指令集)架构的处理器设计。 - RISC: Reduced Instruction Set Computing,指令集精简的计算机处理器架构。 - CISC: Complex Instruction Set Computing,指令集复杂的计算机处理器架构。 - ARM状态和Thumb状态:ARM处理器可以在两种状态下运行,ARM状态和Thumb状态。ARM状态下指令集更丰富,Thumb状态下指令集更紧凑,可用于节省存储空间。 2. 冯•诺依曼体系结构和哈佛体系结构的主要区别在于存储器的组织方式。冯•诺依曼体系结构中,指令和数据存储在同一存储器中,由一个总线连接;而哈佛体系结构中,指令和数据存储在两个不同的存储器中,各自拥有自己的总线。 3. ARM处理器有7种工作模式:用户模式、系统模式、快速中断模式、IRQ模式、FIQ模式、监管模式和中止模式。 4. ARM有16个寄存器,分为三类:通用寄存器、程序状态寄存器和协处理器寄存器。通用寄存器包括R0-R12,用于存储数据;程序状态寄存器(PSR)包括CPSR和SPSR,用于存储程序状态信息;协处理器寄存器用于协助处理器进行特定的计算任务。 5. ARM程序状态寄存器的控制位用于控制处理器的运行模式和行为,条件码标志位用于标识运算结果的类型。控制位包括模式位、中断屏蔽位、处理器状态位等。条件码标志位包括零位、进位位、负数位等。 6. ARM有7类异常:重置、未定义指令、软件中断、中断、快速中断、数据中止和指令中止异常。 7. 异常向量是指处理器在处理异常时跳转的地址。异常向量表存储了不同异常的向量地址,处理器在遇到异常时会根据异常类型找到对应的向量地址,跳转到处理异常的程序中。 8. ARM处理器响应异常的过程包括:保存当前程序状态、切换到对应的处理模式、跳转到异常向量表中的地址。退出异常的过程包括:恢复之前保存的程序状态、切换回之前的处理模式、返回到原程序继续执行。 9. ARM指令的条件域用于控制指令的执行条件。例如,BEQ指令表示当上一条指令的执行结果为“等于”时才执行该指令,否则跳过该指令。 10. 寄存器移位寻址、寄存器间接寻址、基址变址寻址、块拷贝寻址和堆栈寻址都是ARM处理器的寻址方式。其中,寄存器移位寻址是通过对寄存器的移位操作来生成地址;寄存器间接寻址是通过寄存器中存储的地址来访问数据;基址变址寻址是通过一个基地址加上一个偏移量来计算地址;块拷贝寻址是用于实现块拷贝操作的寻址方式;堆栈寻址是通过堆栈指针来访问数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值