工作模式

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的操作模式,寄存器,寻址方式的更多相关文章

  1. Cortex-M3 操作模式与特权等级

    Cortex-M3支持2个模式(Handler模式.线程模式)和2个特权等级(特权级.非特权级). 当处理器处在线程模式时,既可以使用特权级,也可以使用非特权级. 当处理器处在Handler模式时,总 ...

  2. ListView多选操作模式——上下文操作模式

    1.什么叫上下文操作模式 2.如何进入上下文操作模式 1.ListView自身带了单选.多选模式,可通过listview.setChoiceMode来设置: listview.setChoiceMod ...

  3. linux下操作gpio寄存器的方法

    一. 在驱动中: 1. 用的时候映射端口:ioremap; #define GPIO_OFT(x) ((x) - 0x56000000) #define GPFCON (*(volatile unsi ...

  4. pytthon—day8 读写模式的结合、文件操作模式、with完成文本文件复制、游标操作

    一.读写模式的结合 w:写指没有新建文件,有文件就清空 w=open('1.txt','w',encoding='utf-8') w.write('000\n') 在写入数据时,需要及时处理内存空间, ...

  5. day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作

    复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...

  6. day8 八、文件操作模式、文件的复制与文件游标操作

    一.文件操作 1.wr模式结合 ① w = open('1.txt', 'w', encoding='utf-8') # w:没有文件新建文件,有文件就清空文件 w.write('000\n') w. ...

  7. 关于NLB的群集操作模式知识 (转载)

    单播:单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC(由02-bf和群集IP地址组成确保此MAC的唯一性).由于所有绑定群集的网络适配器的MAC都相同,所以在单网卡的情况下,各节点之间是不能 ...

  8. Python小白学习之路(十九)—【文件操作步骤】【文件操作模式】

    一.文件操作步骤 step1:打开文件,得到文件句柄并赋值给一个变量step2:通过句柄对文件进行操作step3:关闭文件 举例: a = open('hello world', 'r', encod ...

  9. Android开发4——文件操作模式

    一.基本概念 // 上下文对象private Context context; public FileService(Context context){ super(); this.context = ...

随机推荐

  1. ES6深入浅出-6 ES 6 模块-1.模块化速学

    把模块先默认认为是豆腐块 为什么前端需要模块? 没有模块的方式 预览这个html页面     一共200行js代码 前100行在做一件事 ,另外100行在做另一件事,这样就是两个模块 main.js来 ...

  2. DDos攻击解决办法

    (1).DDos概念 分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控 ...

  3. CentOS7 配置sendmial + PHP mail函数发送邮件

    https://blog.csdn.net/jiabangok/article/details/51840556

  4. LODOP中的各种宽高和位置简短问答

    LODOP中的位置边距,可查看本博客另一篇相关博文:LODOOP中的各种边距 打印项.整体偏移.可打区域.内部边距关于LODOP中的各种宽高,可查看本博文简短问答下方的正文:.该文其实有两个以前的相关 ...

  5. sonar:查询全部项目的bug和漏洞总数(只查询阻断/严重/主要级别)

    1.统计所有项目主要以上的漏洞和bug -- 统计所有项目主要以上的漏洞和bug ,) AND severity IN('BLOCKER','CRITICAL','MAJOR') 2.统计所有某个项目 ...

  6. 【C/C++开发】C语言实现函数可变参数

    函数原型: int printf(const char *format[,argument]...)        返 回 值: 成功则返回实际输出的字符数,失败返回-1.  函数说明:        ...

  7. composer安装扩展包异常

    我是tp5.1下,用composer安装扩展包,在命令行运行,无任何不反应,不下载也不报错,这时,我们先ctrl+c退出执行的命令,然后在tp5.1根目录下,找到composer.json文件,并用编 ...

  8. Python基础--软件Anaconda的下载与安装

    1.Anaconda软件的优点: Anaconda指的是一个开源的Python发行版本开发平台,在进行Python开发上方便简洁,有利于初步学习和实践深度学习. 2.Anaconda软件的下载: An ...

  9. Linux(Ubuntu)下的OpenGl的环境安装, 在qt程序中使用opengl库

    OpenGl的环境安装 以下参考自:https://blog.csdn.net/wasaiheihei/article/details/52085397 1. 建立基本编译环境 首先不可或缺的,就是编 ...

  10. 【转】那些年用过的Redis集群架构(含面试解析)

    引言 今天是2019年2月12号,也就是大年初八,我接到了高中同学刘有码面试失利的消息. 他面试的时候,身份是某知名公司的小码农一枚,却因为不懂自己生产上Redis是如何部署的,导致面试失败! 人间惨 ...