ARM嵌入式学习(1)-----

本学期开始学习ARM嵌入式,为了便于自己学习以及后续的复习,就在这里做些笔记吧

第一次写文章,因为自己知识水平实在有限,写出来如果有错误还请大佬们多多指点和谅解。

寄存器组织

ARM Cortex_A8处理器有40个32位长的寄存器,
32个通用寄存器,(程序计数器也可以归入此类)
7个状态寄存器,
1个pc(程序计数器)

因为ARM Corte-A8具有8种处理器模式:(拿我们老师的PPT用用哈哈)
在这里插入图片描述
在每一种处理模式中都有一组相应的寄存器,具体看下图:
在这里插入图片描述
在这里插入图片描述
40个寄存器是怎么来的呢?
上面的图中,背景为橙色的表示该寄存器在其他7个处理模式中都相同(除开Mon模式下的SPSR),也就是这个寄存器是通用的。
数一数橙色的有几个:16+1=17 (CPSR为8种模式共有)
在看到FIQ模式:私有寄存器:R8-R14,SPSR,,共8个
IRQ模式一直到Mon模式:(2+1)x5=15个
17+8+15=40个

未分组寄存器:所有处理模式下对于每一个未分组寄存器都使用同一个物理寄存器。(在模式切换下,易造成数据破坏)

分组寄存器:每一个访问的物理寄存器都取决于当前处理器模式。

具体分类如下图:
在这里插入图片描述
图片来源)
在任何模式下,都可以存取下列寄存器:
R0-R12
R13(栈指向
R14(链路寄存器
R15(PC,程序计数器
以及除了user,sys模式下的SPSR
在这里插入图片描述
在这里插入图片描述

程序状态寄存器

在这里插入图片描述
在这里插入图片描述

N:运算结果为正或者0:N=0;运算结果为负:N=1

Z:运算结果为0:Z=1;否则为1

C:
(1):加法指令中(含CMN):产生进位,C=1
(2):减法指令中(含CMP):产生错位,C=0
(3):对于包含移位的指令:C被设置为被最后移出去的位。

V:
对于加减法指令:符号位溢出:V=1

**控制位**

在这里插入图片描述
在这里插入图片描述
就先记到这吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔芋爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值