博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arm9的操作模式,寄存器,寻址方式
阅读量:4571 次
发布时间:2019-06-08

本文共 769 字,大约阅读时间需要 2 分钟。

工作模式

Arm7种工作模式

名称

简称

简介

User

Usr

正常用户程序执行的模式(linux下用户程序就是在这一模式执行的。)

FIQ

Fiq

快速中断模式

IRQ

Irq

普通中断模式

Supervisor

Svc

给操作系统准备的保护模式,权限很高的一种模式,linux的内核就是运行在此模式

Abort

Abt

比如访问虚拟内存,导致了异常,就是进入这一模式。

Undefined

Und

运行一条处理器并不支持的指令就进入此模式。

System

Sys

Armv4及以上的版本才有。用得比较少。

 

 

 

 

寄存器

其寄存器总共有3731个通用寄存器,6个状态寄存器。大致结构如下,下图总共有18个,不够37个,剩下的实际是被banked的寄存器,在不同的模式下,分组寄存器和程序状态寄存器用的是不同的物理寄存器。

下面两个842584-20160308213337616-138297525.jpg

下面两个寄存器需要特别注意:

R13堆栈寄存器

R14LR寄存器

 

关于arm中的程序状态字寄存器,他相当于M3中的状态字寄存器,中断屏蔽寄存器,control寄存器的集合体,下面对它的一些比较重要的位作说明:

842584-20160308213339116-1917814798.jpg

 

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

842584-20160308213340741-265767919.jpg

 

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

842584-20160308213341835-241733984.jpg

 

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

842584-20160308213346007-1977529426.jpg

 

 

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

 

 

 

 

 

 

寻址模式

    Arm5种寻址方式,如下:

立即数寻址

842584-20160308213348538-1489830570.jpg

 

寄存器寻址

842584-20160308213351475-1448591662.jpg

 

寄存器间接寻址

842584-20160308213354022-1670953825.jpg

 

基址变址寻址

842584-20160308213356054-322021543.jpg

 

相对寻址

842584-20160308213359069-1882040305.jpg

 

 

转载于:https://www.cnblogs.com/dchipnau/p/5255831.html

你可能感兴趣的文章
定时关闭AWS上的EC2机器实例
查看>>
grep、awk、sed命令详解1
查看>>
Jenkins邮件配置
查看>>
MYSQL数据库的设计与调优
查看>>
在Apache下开启SSI配置
查看>>
Jmeter:图形界面压力测试工具
查看>>
java线程:Atomic(原子)
查看>>
环境准备—之—linux下安装python3和pip3
查看>>
做了这么久的 DBA,你真的认识 MySQL 数据安全体系?【转】
查看>>
Shell习题100例
查看>>
jquery操作select
查看>>
linq 左连接实现两个集合的合并
查看>>
MFC 线程中CWnd对象
查看>>
html文本太长显示为省略号的方法
查看>>
Flask + WSGI + Nginx 云部署
查看>>
站立会议05(冲刺2)
查看>>
Java学习(final、static关键词)
查看>>
怎样判断网址是否被微信封 微信域名检测接口的实现
查看>>
解一元二次方程程序
查看>>
Homebrew macOS缺失包管理器
查看>>