找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 25|回复: 3
打印 上一主题 下一主题

协处理器指令——协处理器的存储器传送

[复制链接]

159

主题

583

帖子

1229

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1229
跳转到指定楼层
1#
发表于 2016-10-19 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在ARM和协处理器寄存器之间传送数据有时是有用的。这些协处理器寄存器传送指令使得协处理器中产生的整数能直接传送到ARM寄存器或者影响ARM条件码标志位。典型的使用是:
浮点FIX操作,它把整数返回到ARM的一个寄存器。
浮点比较,它把比较的结果直接返回到ARM条件码标志位,此标志位将确定控制流。
FLOAT操作,它从ARM寄存器中取得一个整数,并传送给协处理器,在那里整数被转换成浮点表示并装入协处理器寄存器。
在一些较复杂的ARM CPU中,尝使用系统控制协处理器来控制Cache和存储器管理功能。这类协处理器一般使用这些指令来访问和修改片上的控制寄存器。
二进制编码
协处理器寄存器传输指令的二进制编码
说明
本指令可用于任何可能存在的协处理器。通常,具有协处理器编号CP#的协处理器将接受这条指令。如果没有一个协处理器接受这条指令,则ARM将产生未定义指令陷阱。
如果协处理器接受了从协处理器中读取数据的指令,一般它将执行由Cop1和Cop2定义的对于源操作数CRn和CRm的操作,并将32位整数结果返回到ARM,ARM再把它装入Rd。
如果在从协处理器读取数据的指令中将PC定义为目的寄存器Rd,则由协处理器产生32位整数的最高4位将被放在CPSR中的N、Z、C和V标志位。
汇编格式
从协处理器传送到ARM寄存器:
MRC{<cond>}<CP#>,<Cop1>,Rd,CRn,CRm{,<Cop2>}
从ARM寄存器传送到协处理器:
MRC{<cond>}<CP#>,<Cop1>,Rd,CRn,CRm{,<Cop2>}
举例
MCR                     p14,3,R0,C1,C2
MRCCS                p2,4,R3,C3,C4,6
注意事项
Cop1、CRn、Cop2和CRm域由协处理器解释,推荐使用以上解释,以最大限度地域ARM开发工具兼容。
若协处理器必须完成一些内容工作来准备一个32位的数据向ARM传送,则这些工作必须在协处理器提交传送前进行。因此在准备数据时,经常需要协处理器握手信号处于“忙—等待”状态。ARM可在“忙—等待”时间内产生中断,如果它确实得以中断,则它将暂停握手开始中断服务。当它从中断服务程序返回时,将可能重试协处理指令,但也可能不重试,例如阶段中断使服务切换。在任一情况下,协处理器必须给出一致的结果,因此在握手提交阶段之前,进行的准备工作不许改变处理器的可见状态。
从ARM到协处理器的传送一般比较简单,因为任何数据转换工作都可在传送完成后再协处理器进行。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

245

主题

1028

帖子

1921

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1921
2#
发表于 2016-10-19 16:14 | 只看该作者
不错,值得一看

162

主题

614

帖子

1255

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1255
3#
发表于 2016-10-22 13:55 | 只看该作者
学习中,谢谢分享

157

主题

559

帖子

1198

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1198
4#
发表于 2016-10-22 14:25 | 只看该作者
感谢楼主分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-13 09:31 , Processed in 0.053855 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表