ARM工作模式

news/2024/7/4 8:44:11

1. 工作状态


从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:

1)第一种为ARM状态,此时处理器执行32位字对齐ARM指令,绝大部分工作在此状态;

2)第二种为Thumb状态,此时处理器执行16位半字对齐的Thumb指令

ARM微处理器有32位的ARM指令集和16位的Thumb指令集,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。


2. 存储器格式


ARM体系结构将存储器看作从零地址开始的字节的线性组合从零字节到三字节放置第一个存储的字(32位)数据从第四个字节到第七个字节放置第二个存储的字数据依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。

ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。

大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。

小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节高地址存放的是字数据的高字节


3. 指令长度

ARM微处理器的指令长度可以是32位(在ARM状态下),也可以为16位(在Thumb状态下)。ARM微处理器中支持字节(8位)半字(16位)字(32位)三种数据结构,其中,字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0)


4. 工作模式(牢记)

(1)用户模式(usr , User Mode)。ARM处理器正常的程序执行状态。

(2)快速中断模式(fiq , Fast Interrupt Request Mode)。用于高速数据传输或通道处理。当触发快速中断时进入此模式。

(3)外部中断模式 ( irq , Interrupt Request Mode )。用于通用的中断处理。当触发外部中断时进入此模式。

(4)管理模式 ( svc , Supervisor Mode )。操作系统使用的保护模式。在系统复位或者执行软件中断指令SWI时进入。

(5)数据访问终止模式 ( abt , Abort Mode )。当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

(6)系统模式(sys , System Mode )。运行具有特权的操作系统任务。

(7)未定义指令中止模式 ( und , Undefined Mode )。当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

 

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能访问的。

除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中出去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),用于处理中断或异常,以及需要访问受保护的系统资源等情况。

 

 


http://www.niftyadmin.cn/n/545263.html

相关文章

高效IO之Dex加密(三)

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 apk加固原理之dex加密 原理其实不复杂,加固其实就是加密dex文件,防止dex专程jar 被阅读。后面才是热部署解密dex; 一、加密和解密方案 既然我们…

openssl基本原理 + 生成证书 + 使用实例

1. 基本原理 参考:http://www.cnblogs.com/phpinfo/archive/2013/08/09/3246376.html Begin http://www.cnblogs.com/phpinfo/archive/2013/08/09/3246376.html 公司一个项目要进行交易数据传输,因为这个项目银行那边也是刚刚开始启动,所有的支持只有一个传输字段…

高级UI晋升之触摸事件分发机制(一)

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 0. 前言 鉴于安卓分发机制较为复杂,故分为多个层次进行讲解,分别为基础篇、实践篇与高级篇。 (一)基础篇:从基本概念入手…

PHP中正则表达式学习及应用

PHP中正则表达式 1、正则表达式的介绍和作用2、PHP中两个常用的正则函数3、正则表达式中包括的元素4、正则表达式中的“原子” 1、正则表达式的介绍和作用 什么是正则表达式 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式…

jenkins构建自由风格项目[四]

标签(linux): jenkins 笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流 构建一个php项目 创建一个新的项目 选择从git获取源码 配置gitlab deploy keys 第一步:第二步:第三步:…

ARM寻址方式

所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。 ARM处理器的寻址方式 目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。 1. …

高级UI晋升之View渲染机制(二)

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 优化性能一般从渲染,运算与内存,电量三个方面进行,今天开始说聊一聊Android的渲染机制,我们要知道Android系统每隔16ms就重新绘制一次A…

oracle服务器和客户端字符集的查看和修改

转自 http://blog.csdn.net/Dream19881003/article/details/6800056#comments 一、什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数…