加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

畅聊ARM协处理器命令MCR-MRC

发布时间:2021-12-22 12:49:59 所属栏目:PHP教程 来源:互联网
导读:ARM协处理器cp15,有16个寄存器,详细看《ARM体系结构与编程》 这里我大概说一下MRC与MCR这两个协处理器操作,参考《s3c2440》元件手册P140页 这两个命令是用于ARM寄存器与协处理器寄存器之间操作的,一个协处理器与寄存器之前操作的例子就是,一个浮点值在

ARM协处理器cp15,有16个寄存器,详细看《ARM体系结构与编程》
 
这里我大概说一下MRC与MCR这两个协处理器操作,参考《s3c2440》元件手册P140页
 
这两个命令是用于ARM寄存器与协处理器寄存器之间操作的,一个协处理器与寄存器之前操作的例子就是,一个浮点值在协处理器中转换成32位整型,然后它的结果传送到ARM920T的寄存器中MRC。相反则为MCR。
 
最重要的应用就是通过命令从协处理器交换控制信息到ARM920T CPSR相应标识位
 
看几个例子就明白
 
MRC    p2,5,r3,c5,c6
 
协处理器p2把c5和c6经过5操作的结果赋给r3
 
MCR    p6,0,r4,c5,c6
 
协处理器p6把r4执行0操作后将结果存放进c6
 
MRC    p3,9,r3,c5,c6,2
 
协处理器p3把c5和c6经过9操作(类型2)的结果赋给r3
 
详细写一下格式
 
MCR{cond}   p15,{opcode_1},<Rd>,<CRn>,<CRm>{,opcode_2}
 
其中{cond} 就是可选的执行条件
 
p15就是指定哪个协处理器,ARM920T好像有两个一个15一个14
 
<opcode_1>为协处理器将要执行的操作的操作码,对于CP15来说,永远为ob00,即0,如果不是,结果不同预知
 
<Rd>作为源寄存器的ARM寄存器
 
<CRn>目标寄存器的协处理器寄存器
 
<CRm>为附加的目标寄存器或者源操作数寄存器,用于区分同一个编号的不同物理寄存器,如果不需要,就将它设置为C0,否则结果不可预知
 
<opcode_2>附加信息,用于区别同一编号的不同物理寄存器,如果省略或者为0,就表示不附加,如果不是,后果不可预知

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读