1.版本及其命名方法

ARMv+[版本号]+[变种的字符]+[字符x+排除某种功能的字符]

1.1 ARM体系的变种

①Thumb指令集(T变种)

与ARM指令集的32位长度对应,Thumb指令集的长度仅为16位。其与ARM指令集相比有如下局限性:完成形同的指令需要更多的指令,也就是说耗时更长;没有     包含进行异常处理的一些指令。

②长乘法指令(M变种)

共两条指令:【32位整数】 * 【32位整数】 = 【64位整数】

【32位整数】 * 【32位整数】 + 【32位整数】 = 【64位整数】

需要注意的是在ARM体系版本4及其以后,M变种成为系统的标准配置。

③增强型DSP指令(E变种)

实现一些典型DSP算法包括:16位数据的乘法和乘加;饱和的带符号的加减法(所谓饱和就是若计算结果溢出则使用最大数或最小负数来表示);双字节数据操作;cache预取指令

④Java极速器Jazelle(J变种)

⑤ARM媒体扩展功能(SIMD变种)

2.【重要】ARM处理器模式

①用户模式(usr)

正常程序执行的模式

②快速中断模式(FIQ)

用于高速数据传输和通道处理

③外部中断模式(IRQ)

用于普通的中断处理

④超级模式(Supervisor,sve)

给操作系统使用的一种模式

⑤数据访问中止模式(Abort,abt)

用于虚拟存储和存储保护

⑥未定义指令中止模式(und)

CPU将要执行的下一条指令码不在指令集范围内

⑦系统模式(sys)

用于运行特权的操作系统任务

其中除①外的其他模式——特权模式(Privileged Modes)。特权模式中除系统模式外叫——异常模式。

2.【重要】ARM寄存器

在不同的工作模式下,可见的寄存器有所同,如下表所示为各个模式下可见的寄存器。共计31个寄存器通用寄存器和6个状态寄存器

2.1通用寄存器

分成三类:

①未备份寄存器:R0~R7,其在所有模式下都相同的,物理地址也是相同的。

②备份寄存器:

R8~R12,每个寄存器有两个物理地址,其一为FIQ模式下专用记做rx_fiq,其二为其他模式下通用,记做rx_usr。

R13(SP),一般用作栈指针,在各个模式下拥有各自的专用物理地址(usr和sys共用一个r13)记做r13_[mod]。一般情况下,将r13初始化指向各个异常状态的专用栈地址,当进入某个异常模式时,将需要用的到寄存器压入r13指向的栈地址中,当退出异常模式时,将其弹出。

R14(LR),称为连接寄存器,一般拥有以下两种作用:①在对应模式下存入当前子程序的返回地址;②当发生异常中断时,存入中断返回地址。

③程序计数器R15(PC),存入当前运行指令的下一条指令地址,其偏移量有可能为8字节,也有可能为12字节,其取决与芯片的设计方式。

2.2 程序状态寄存器

CPSR:当前程序状态寄存器

①条件标志位

N——当两个补码表示有符号运算时,N=1表示结果为负数,N=0表示结果为正数或0。

Z——Z=1表示运算结果为0,=1表示结果不等于0.

C——在加法指令中,C=1表示发生上溢出,C=0表示其他情况;在减法指令中,C=0表示借位或无符号数发生下溢出,C=1表示其他;③移位操作,C表示最后一次溢出的位。

V——加减法操作中,当操作数和运算结果为二进制补码表示的带符号的数时,V=1表示符号位溢出。

Q——DSP指令溢出则Q=1

②控制位

I——禁止IRQ中断,I=1

F——禁止FIQ中断,F=1

T——T=0表示执行ARM指令,T=1表示执行Thumb指令

M控制位——如下表所示

SPSR——程序状态备份

当ARM发生中断时,会将当前的CPSR复制给对应中断模式的SPSR,当中断返回时会将当前中断模式下的SPSR复制回给返回状态的CPSR中。

【arm体系结构与编程】1.概述及其基本编程模型(一)相关推荐

  1. ARM体系结构与编程阅读笔记系列(第一章)

    系列文章目录 第一章 ARM概述机器基本编程模型 ARM概述及其基本编程模型 系列文章目录 前言 ARM体系结构的版本及命名方法 ARM体系结构的版本 ARM体系结构的变种 ARM/Thumb体系版本 ...

  2. ARM体系结构与编程(更)

    目录 ARM指令分类及其寻址 ARM指令集介绍 ARM汇编语言程序设计 伪操作 ARM汇编语言伪指令 ARM存储系统 ATPCS ARM程序和Thumb程序混合编程 异常中断处理 ARM C/C++编 ...

  3. ARM体系结构与编程总结

    V1.0:初始版本.读完<ARM体系结构与编程>后的一个小总结 时间:2021-10-19 基本知识 arm版本变种 T:thumb指令集 M:长乘法指令集(V5版本后.均带有) E:增强 ...

  4. ARM体系结构与编程_2015.08_P513_完整版PDF电子书下载 带索引书签目录高清版

    ARM体系结构与编程_2015.08_P513_完整版PDF电子书下载 带索引书签目录高清版_13864654 下载链接http://pan.baidu.com/s/1cDq8pS 基本信息 作者:  ...

  5. ARM体系结构与编程-第一章

    1. ARM概述与基本编程模型 1.4 ARM处理器模式 用户模式(User, usr) 快速中断模式(FIQ, fig) 外部中断模式(IRQ, irq) 特权模式(Supervisor, sve) ...

  6. ARM体系结构与编程(篇二):ARM体系架构与寄存器介绍

    文章目录 前言 一.ARM内核与架构 1.1 ARM芯片的组成 1.2 ARM指令集与架构 二.ARM处理器模式与寄存器 2.1 ARM处理器模式 2.2 ARM寄存器 前言 该文章是通过学习< ...

  7. ARM体系结构与编程模型

    内容转自:https://mp.weixin.qq.com/s/3HVRroBAwVUT13SXqGeocQ 1.ARM处理器简介及RISC特点 1.ARM处理器简介 ARM(Advanced RIS ...

  8. arm体系结构与编程_ARM体系结构基础(1)

    本文转载自:智能软件研究中心 鲲鹏处理器兼容ARM架构,openEuler操作系统可以运行在鲲鹏架构的服务器上,想要了解openEuler对硬件的支持,首先需要了解一些ARM架构的基础知识.操作系统中 ...

  9. 【计算机系统结构】~ ROM/PROM/EPROM/E2PROM/FLASH、SOC 片上系统、总线、CPU 处理器、Cache、DDR、ARM 体系结构、虚拟内存、内核 kernel

    1. ROM/PROM/EPROM/E2PROM/FLASH ROM 指的是"只读存储器",即 Read-Only Memory.这是一种线路最简单半导体电路,通过掩模工艺, 一次 ...

  10. 计算机硬件基础ARM处理器概论(ARM体系结构与接口技术)

    计算机硬件基础 D1 底层课程导学 1.编程基础 2.应用开发 (函数) 3.底层开发 C语言基础 IO ARM C高级与linux 进程 系统移植 数据结构 网络编程 驱动开发 嵌入式系统分层 操作 ...

最新文章

  1. 减少HQL 的MAP数
  2. hibernate mysql longblob_使用hibernate 插入mysql blob 字段 最大能插入多大的数据
  3. 点阵大屏语音感应时计——人体感应
  4. php 输出excepion内容,带有消息“无法关闭zip文件php://输出”的PHPExcel_Writer_Exception...
  5. ajax put请求_前端基础面试:手写一个ajax,说说XMLHttpRequest 都有哪些属性?
  6. 关于SPFA Bellman-Ford Dijkstra Floyd BFS最短路的共同点与区别
  7. 量子算法入门书籍推荐
  8. linux 穿件文件_关于Linux的25件事
  9. Permission denied (publickey).
  10. python群发邮件 不进垃圾箱_实战邮箱群发2000封邮件不进垃圾箱
  11. different intergers
  12. 8.软件架构设计:大型网站技术架构与业务架构融合之道 --- 高并发问题
  13. 麟龙指标通达信指标公式源码_【通达信】麟龙量能饱合度指标公式源码
  14. linux终端哪个好看,关于linux:Linux-终端最全推荐建议收藏
  15. 格雷码转换成二进制c语言程序,各位老师格雷码和二进制有什么区别,怎么转换....
  16. 使用国密函数读取金税盘信息
  17. JavaScript学习简单总结
  18. Python基础知识从hello world 开始(第三天)
  19. 不小心误删@‘local’操作恢复
  20. SQL Server2008从入门到精通pdf

热门文章

  1. 如何查看浏览器Cookie数据(以360为例)
  2. 等级保护三级安全建设
  3. GoEasy实现简单聊天室
  4. grads之平均气温场与距平
  5. 菜鸟学习之Java入门基础知识
  6. matlab 编写雷达波形,雷达信号处理+Matlab程序
  7. 春天来了,北京周边哪里去~
  8. GD32F303xx 使用 jlink-segger功能
  9. HCNA-Cloud云计算认证
  10. 华为手机计算机快捷设置密码,华为手机首次重启绘制图案密码后让输入解锁密码。我没有设置呀?怎么办...