arm9的操作模式,寄存器,寻址方式
工作模式
Arm有7种工作模式:
|
名称 |
简称 |
简介 |
|
User |
Usr |
正常用户程序执行的模式(linux下用户程序就是在这一模式执行的。) |
|
FIQ |
Fiq |
快速中断模式 |
|
IRQ |
Irq |
普通中断模式 |
|
Supervisor |
Svc |
给操作系统准备的保护模式,权限很高的一种模式,linux的内核就是运行在此模式 |
|
Abort |
Abt |
比如访问虚拟内存,导致了异常,就是进入这一模式。 |
|
Undefined |
Und |
运行一条处理器并不支持的指令就进入此模式。 |
|
System |
Sys |
Armv4及以上的版本才有。用得比较少。 |
寄存器
其寄存器总共有37个,31个通用寄存器,6个状态寄存器。大致结构如下,下图总共有18个,不够37个,剩下的实际是被banked的寄存器,在不同的模式下,分组寄存器和程序状态寄存器用的是不同的物理寄存器。
下面两个
下面两个寄存器需要特别注意:
R13为堆栈寄存器
R14为LR寄存器
关于arm中的程序状态字寄存器,他相当于M3中的状态字寄存器,中断屏蔽寄存器,control寄存器的集合体,下面对它的一些比较重要的位作说明:

N和Z位代表的是运算结果的状态,比较跳转,条件执行等指令会用得到它们。

I位和F位是对快速中断和普通中断的控制。

M[]位是对操作模式和banked寄存器的使用的控制。

注:cpsr和spsr内容相同,只不过spsr可以作为cpsr的一个存档使用,粗糙的说:也就是进入其他模式之前先把cpsr的内容保存在spsr中,返回之后cpsr的值虽然已经被破坏,但是可以通过spsr回复。
寻址模式
Arm有5种寻址方式,如下:
立即数寻址

寄存器寻址

寄存器间接寻址

基址变址寻址

相对寻址

arm9的操作模式,寄存器,寻址方式的更多相关文章
- Cortex-M3 操作模式与特权等级
Cortex-M3支持2个模式(Handler模式.线程模式)和2个特权等级(特权级.非特权级). 当处理器处在线程模式时,既可以使用特权级,也可以使用非特权级. 当处理器处在Handler模式时,总 ...
- ListView多选操作模式——上下文操作模式
1.什么叫上下文操作模式 2.如何进入上下文操作模式 1.ListView自身带了单选.多选模式,可通过listview.setChoiceMode来设置: listview.setChoiceMod ...
- linux下操作gpio寄存器的方法
一. 在驱动中: 1. 用的时候映射端口:ioremap; #define GPIO_OFT(x) ((x) - 0x56000000) #define GPFCON (*(volatile unsi ...
- pytthon—day8 读写模式的结合、文件操作模式、with完成文本文件复制、游标操作
一.读写模式的结合 w:写指没有新建文件,有文件就清空 w=open('1.txt','w',encoding='utf-8') w.write('000\n') 在写入数据时,需要及时处理内存空间, ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
- day8 八、文件操作模式、文件的复制与文件游标操作
一.文件操作 1.wr模式结合 ① w = open('1.txt', 'w', encoding='utf-8') # w:没有文件新建文件,有文件就清空文件 w.write('000\n') w. ...
- 关于NLB的群集操作模式知识 (转载)
单播:单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC(由02-bf和群集IP地址组成确保此MAC的唯一性).由于所有绑定群集的网络适配器的MAC都相同,所以在单网卡的情况下,各节点之间是不能 ...
- Python小白学习之路(十九)—【文件操作步骤】【文件操作模式】
一.文件操作步骤 step1:打开文件,得到文件句柄并赋值给一个变量step2:通过句柄对文件进行操作step3:关闭文件 举例: a = open('hello world', 'r', encod ...
- Android开发4——文件操作模式
一.基本概念 // 上下文对象private Context context; public FileService(Context context){ super(); this.context = ...
随机推荐
- 123457123456#0#----com.DoraGame.YingYu65--前拼后广--儿童英语doraX
com.DoraGame.YingYu65--前拼后广--儿童英语doraX
- 迅速生成项目-react-static
推荐指数:
- vue-cli3.0和element-ui及axios的安装使用
一.利用vue-cli3快速搭建vue项目 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令( ...
- mongodb 内嵌数组查询问题: 如何限定返回与条件匹配的数组
原文地址:https://segmentfault.com/q/1010000002943721
- ubuntu下把python脚本转为二进制字节码文件
ubuntu下把python脚本转为二进制字节码文件 听语音 原创 | 浏览:354 | 更新:2017-12-22 14:48 1 2 3 4 5 6 7 分步阅读 自己拥有个几个python脚本文 ...
- 【GStreamer开发】GStreamer基础教程16——平台相关的element
目标 虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的.比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的e ...
- git使用安装
下载地址 http://msysgit.github.io/ 配置个人的用户名称和电子邮件地址: $ git config --global user.name "runoob" ...
- mysql 转换NULL数据方法
mysql 转换NULL数据方法<pre>SELECT info1,info2, IFNULL(info3,0) as info3 FROM `info1`;</pre>< ...
- 带你一步一步搭建TypeScript环境
今天继续来更新,本篇文章我们讲环境搭建,主要分享一些环境搭建的学习资源及安装步骤,解决一些安装时可能会出现的问题.下面就让我们一起进入学习第一步,搭建TypeScript环境:一. 环境搭建1.1. ...
- Elasticsearch 全文搜索
1,匹配查询(match) match查询主要的应用场景是进行全文搜索: // 1,初始化数据 DELETE /my_index PUT /my_index { "settings" ...