【arm体系结构与编程】1.概述及其基本编程模型(一)
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.概述及其基本编程模型(一)相关推荐
- ARM体系结构与编程阅读笔记系列(第一章)
系列文章目录 第一章 ARM概述机器基本编程模型 ARM概述及其基本编程模型 系列文章目录 前言 ARM体系结构的版本及命名方法 ARM体系结构的版本 ARM体系结构的变种 ARM/Thumb体系版本 ...
- ARM体系结构与编程(更)
目录 ARM指令分类及其寻址 ARM指令集介绍 ARM汇编语言程序设计 伪操作 ARM汇编语言伪指令 ARM存储系统 ATPCS ARM程序和Thumb程序混合编程 异常中断处理 ARM C/C++编 ...
- ARM体系结构与编程总结
V1.0:初始版本.读完<ARM体系结构与编程>后的一个小总结 时间:2021-10-19 基本知识 arm版本变种 T:thumb指令集 M:长乘法指令集(V5版本后.均带有) E:增强 ...
- ARM体系结构与编程_2015.08_P513_完整版PDF电子书下载 带索引书签目录高清版
ARM体系结构与编程_2015.08_P513_完整版PDF电子书下载 带索引书签目录高清版_13864654 下载链接http://pan.baidu.com/s/1cDq8pS 基本信息 作者: ...
- ARM体系结构与编程-第一章
1. ARM概述与基本编程模型 1.4 ARM处理器模式 用户模式(User, usr) 快速中断模式(FIQ, fig) 外部中断模式(IRQ, irq) 特权模式(Supervisor, sve) ...
- ARM体系结构与编程(篇二):ARM体系架构与寄存器介绍
文章目录 前言 一.ARM内核与架构 1.1 ARM芯片的组成 1.2 ARM指令集与架构 二.ARM处理器模式与寄存器 2.1 ARM处理器模式 2.2 ARM寄存器 前言 该文章是通过学习< ...
- ARM体系结构与编程模型
内容转自:https://mp.weixin.qq.com/s/3HVRroBAwVUT13SXqGeocQ 1.ARM处理器简介及RISC特点 1.ARM处理器简介 ARM(Advanced RIS ...
- arm体系结构与编程_ARM体系结构基础(1)
本文转载自:智能软件研究中心 鲲鹏处理器兼容ARM架构,openEuler操作系统可以运行在鲲鹏架构的服务器上,想要了解openEuler对硬件的支持,首先需要了解一些ARM架构的基础知识.操作系统中 ...
- 【计算机系统结构】~ ROM/PROM/EPROM/E2PROM/FLASH、SOC 片上系统、总线、CPU 处理器、Cache、DDR、ARM 体系结构、虚拟内存、内核 kernel
1. ROM/PROM/EPROM/E2PROM/FLASH ROM 指的是"只读存储器",即 Read-Only Memory.这是一种线路最简单半导体电路,通过掩模工艺, 一次 ...
- 计算机硬件基础ARM处理器概论(ARM体系结构与接口技术)
计算机硬件基础 D1 底层课程导学 1.编程基础 2.应用开发 (函数) 3.底层开发 C语言基础 IO ARM C高级与linux 进程 系统移植 数据结构 网络编程 驱动开发 嵌入式系统分层 操作 ...
最新文章
- 减少HQL 的MAP数
- hibernate mysql longblob_使用hibernate 插入mysql blob 字段 最大能插入多大的数据
- 点阵大屏语音感应时计——人体感应
- php 输出excepion内容,带有消息“无法关闭zip文件php://输出”的PHPExcel_Writer_Exception...
- ajax put请求_前端基础面试:手写一个ajax,说说XMLHttpRequest 都有哪些属性?
- 关于SPFA Bellman-Ford Dijkstra Floyd BFS最短路的共同点与区别
- 量子算法入门书籍推荐
- linux 穿件文件_关于Linux的25件事
- Permission denied (publickey).
- python群发邮件 不进垃圾箱_实战邮箱群发2000封邮件不进垃圾箱
- different intergers
- 8.软件架构设计:大型网站技术架构与业务架构融合之道 --- 高并发问题
- 麟龙指标通达信指标公式源码_【通达信】麟龙量能饱合度指标公式源码
- linux终端哪个好看,关于linux:Linux-终端最全推荐建议收藏
- 格雷码转换成二进制c语言程序,各位老师格雷码和二进制有什么区别,怎么转换....
- 使用国密函数读取金税盘信息
- JavaScript学习简单总结
- Python基础知识从hello world 开始(第三天)
- 不小心误删@‘local’操作恢复
- SQL Server2008从入门到精通pdf