ARM协处理器指令

协处理器(coprocessor)是一种芯片,用于减轻系统微处理器的某种处理任务。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。

 

ARM微处理器可支持多达16个协处理器,用于各种协处理器操作,例如协处理器15(CP15),ARM处理器使用CP15的寄存器来控制cache和存储器管理。

 

ARM协处理器操作指令包括以下5条:

CDP:数据操作指令,通常用于初始化协处理器。

LDC:数据加载指令,用于将存储器中的数据传送到协处理器寄存器中。

STC:数据存储器指令,用于将协处理器寄存器中的数据传送到存储器中。

MCR:ARM处理器寄存器到协寄存器寄存器的数据传送指令。

MRC:协处理器寄存器到ARM处理器寄存器的数据传送指令。

 

CP15是ARM协处理器中十分重要的一个,接下来以CP15为例介绍其寄存器访问方法。访问CP15的寄存器的指令编码格式如下:

MCR指令将ARM处理器的寄存器中的数据传送到协处理器的CP15寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。

指令的语法格式:

MCR{<COND>} P15,<OPCODE_1>,<RD>,<CRN>,<CRM>,{<OPCODE_2>}

MRC:将CP15中的寄存器中的数据读到ARM处理器的寄存器中

格式:

MRC{<COND>} P15,<OPCODE_1>,<RD>,<CRN>,<CRM>,{<OPCODE_2>}

OPCODE_1:协处理器行为操作码,对于CP15来说,<OPCODE_1>永远为0,否则操作结果不确定。

RD:ARM核寄存器,不能是R15/PC,否则操作结果不确定。

CRN:协处理器寄存器,编号为C0-C15。

CRM:附加的协处理器寄存器或源操作数寄存器,如果不需要设置附加信息,将CRM设置为C0。

OPCODE_2:提供附加信息比如寄存器的版本号或者访问类型,用于区分同一个编号对应的不同物理寄存器,可以省略<0PCODE_2>或者将其设置为0。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值