|
协处理器数据操作完全是协处理器内部的操作,它完成协处理器寄存器的状态改变。一个例子是浮点加法,在浮点协处理器中2个寄存器相加,结果放在第3个寄存器。这些指令用于控制数据在协处理器寄存器内部的操作。标准格式遵循ARM整数数据处理指令的3地址形式,但是所有协处理器域可能会有其他解释。
二进制编码
协处理器数据处理指令的二进制编码如图:
说明
ARM对可能存在的任何协处理器提供这条指令。如果它被一个协处理器接受,则ARM继续执行下一条;如果它没有被接受,则ARM将产生未定义中止的陷阱(可用来实现“协处理器丢失”的软件仿真)。
通称,与协处理器编号CP#一致的协处理器将接受指令,执行由Cop1和Cop2域定义的操作,使用CRn和CRm作为源操作数,并将结果放到CRd。其中,Cop1和Cop2为协处理器操作码,CRn、CRm和CRd均为协处理器的寄存器,指令中不涉及ARM处理器的寄存器和存储器。
汇编格式
CDP{<cond>}<CP#>,<Cop1>,CRd,CRn,CRm{,<Cop2>}
举例
CDP P5,2,C12,C10,C3,4 ;协处理器p5的操作初始化。其中,
;操作码1为2,操作码2为4,目标寄存器
;为C12,源操作寄存器为C10和C3
注意事项
对于Cop1、CRn、CRd、Cop2和CRm域的解释与协处理器有关。以上解释是推荐的用法,它最大程度地与ARM开发工具兼容。
凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网