凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

协处理器指令——协处理器的数据存取

已有 534 次阅读| 2016-1-8 14:07

协处理器数据传送指令从存储器读取数据装入协处理器寄存器,或将协处理器寄存器的数据存入存储器。因为协处理器可以支持它自己的数据类型,所以每个寄存器传送的字数与协处理器有关。ARM产生存储器地址,但协处理器控制传送的字数。协处理器可能执行一些类型转换作为传送的一部分(例如,浮点协处理器将读取的值转换成它的80位内部表示形式)。

协处理器数据存取指令类似前面介绍的字和无符号字节数据存取指令的立即数偏移格式,但偏移量限于8位而不是12位。

可使用自动变址以及前变址和后变址寻址。

二进制编码

协处理器数据存取指令的二进制编码见图

说明

本指令可用于任何可能存在的协处理器。如果没有一个协处理器接受它,则ARM将产生未定义指令陷阱,可使用软件仿真协处理器。一般情况下,具有协处理器编号CP#的协处理器将接受这条指令。

地址计算将在ARM内进行,使用ARM基址寄存器和8位立即数偏移量进行计算,8位立即数偏移应左移2位产生字偏移。寻址模式和自动变址模式则以ARM字和无符号字节存取指令相同的方式啦控制。这样定义了第一个存取地址,随后 字则存储到递增的字地址或从递增的字地址读取。

数据由协处理器寄存器提供或由协处理器寄存器接受,由协处理器来控制存取的字数,N位从2种可能的长度中选择一种。

汇编格式

前变址的格式为:

LDC|STC{<cond>}{L}<CP#>,,CRd,[Rn,<offset>]{!}

后变址的格式为:

LDC|STC{<cond>}{L}<CP#>,,CRd,[Rn],<offset>

在这2种情况下,LDC选择选择从存储器中读取数据装入协处理器寄存器,STC选择将协处理器寄存器的数据存到存储器。如果L标志存在,则选择长数据类型(N=1)。<offset>#

±<8位立即数>

举例

LDC     p6C0[R1]

STCEQL  p5C1[R0],#4

注意事项

NCRd域的解释与协处理器有关,以上用法是推荐的用法,且最大限度地与ARM开发工具兼容。

如果地址不是字对齐的吗,则最低2位有效将被忽略,但一些ARM系统可能产生异常。

字的存取数目由协处理器控制。ARM将连续产生后续地址,直到协处理器指示存取应该结束。在数据存取的过程中ARM将不影响中断请求,所以协处理器设计者应注意。因为存取非常长的数据将会影响系统中断响应时间。将最大存取长度限制到16个字将确保协处理器数据存取的时间不会长于存取多寄存器指令的最坏状况。

凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 13:22 , Processed in 0.013877 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部