程序状态寄存器指令

MRS{<cond>}Rd,psr把程序状态计数器的数读入寄存器

MSR{<cond>}psr_fileds,Rm|#immediate_8给程序状态计数器赋值

在ARM中,仅有这两条指令可改变程序状态计数器的值

field设置状态寄存器中需要操作的位,bit[31:24]条件标志位,用f表示,bit[23:16]状态标志域,用s表示,bit[15:8]扩展位域位,用x表示,bit[7:0]条件标志位,用c表示

程序中不能通过MSR来直接修改cpsr中的T标志位来实现ARM,Thumb状态的切换,必须使用BX因为BX属于转移指令,他会打断流水线状态,实现处理器状态的切换

协处理器指令

 协处理器指令用于扩展指令集。协处理器指令既可以用于提供附加的计算能力,又可用于控制包括cache和内存管理的存储子系统。协处理器指令包括数据处理指令、寄存器传输及内存控制指令。协处理器指令和具体的协处理器相关。

语法:CDP{<cond>} cp,opcodel, Cd,Cn{,opcode2}

协处理器数据处理——在协处理器内部执行一个数据处理操作

<MRC|MCR>{<cond>}cp,opcode1,Rd,CN,Cm{,opcode2}

协处理器寄存器传输——把数据送入或取出协处理器寄存器

<LDC|STC>{<cond>}cp,Cd,addressing

协处理器内存传输——从协处理器装载/存储一个内存数据块

cp域代表协处理器编号,为p0~p15。opcode域描述要在协处理器中执行的操作。Cn,Cm及Cd描述在协处理器中的寄存器。协处理器的操作和寄存器依赖于具体使用的协处理器。协处理器15(cp15)是为系统控制预留的,如内存管理,写缓存控制、cache控制及寄存器识别等

协处理器指令语法

cP15被称为系统控制协处理器。MRC和MCR指令用于读写CP15,Rd是内核目标寄存器,Cn是主寄存器,Cm是辅寄存器,opcode2是辅寄存器修饰符,辅寄存器也被称为扩展寄存器,下例把cp15的控制寄存器c1写到内核寄存器r1中

MRC p15,0,r1,c1,c0,0

为了便于对CP15的配置寄存器进行说明,使用下面的缩写格式:

CP15:cX:cY:Z

第一部分CP15定义它是协处理15;冒号后的第二部分是主寄存器,X是一个0-15的值,Y可以是一个0-15的值,最后一项opcode2可以是一个0-7的值有些操作可能用到一个非零值w的opcodel,这种格式为CP15:w:cX:cY:Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值