原创 ARM处理器协处理器指令

2009-3-3 12:33 2191 7 7 分类: MCU/ 嵌入式

 协处理器指令


ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。ARM 协处理器指令包括以下 5 条:


CDP   协处理器数据操作指令


LDC   协处理器数据加载指令


STC   协处理器数据存储指令


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


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


1CDP 指令


CDP 指令的格式为:


CDP{条件} 协处理器编码,协处理器操作码 1,目的寄存器,源寄存器 1,源寄存器 2,协处理器操作码 2


CDP 指令用于 ARM 处理器通知 ARM 协处理器执行特定的操作,若协处理器不能成功完成特定的操作,则产生未定义指令异常。其中协处理器操作码 1 和协处理器操作码 2 为协处理器将要执行的操作,目的寄存器和源寄存器均为协处理器的寄存器,指令不涉及 ARM 处理器的寄存器和存储器。


指令示例:


CDP  P32C12C10C34       ;该指令完成协处理器P3的初始化 


2LDC 指令


LDC 指令的格式为:


LDC{条件}{L} 协处理器编码,目的寄存器,[源寄存器]


LDC 指令用于将源寄存器所指向的存储器中的字数据传送到目的寄存器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。


指令示例:


LDC  P3C4[R0]        ;将ARM处理器的寄存器R0所指向的存储器中的字数据传送到协处理器P3的寄存器C4中。 


3STC 指令


STC 指令的格式为:


STC{条件}{L} 协处理器编码,源寄存器,[目的寄存器]


STC 指令用于将源寄存器中的字数据传送到目的寄存器所指向的存储器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。


指令示例:


STC  P3C4[R0]        ;将协处理器P3的寄存器C4中的字数据传送到ARM处理器的寄存器


R0所指向的存储器中。 


4MCR 指令


MCR 指令的格式为:


MCR{条件} 协处理器编码,协处理器操作码 1,源寄存器,目的寄存器 1,目的寄存器 2,协处理器操作码 2


MCR 指令用于将 ARM 处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码 1 和协处理器操作码 2 为协处理器将要执行的操作,源寄存器为 ARM 处理器的寄存器,目的寄存器 1 和目的寄存器 2 均为协处理器的寄存器。


指令示例:


MCR  P33R0C4C56    ;该指令将ARM处理器寄存器R0中的数据传送到协处理器P3的寄存器C4C5中。 


5MRC 指令


MRC 指令的格式为:


MRC{条件} 协处理器编码,协处理器操作码 1,目的寄存器,源寄存器 1,源寄存器 2,协处理器操作码 2


MRC 指令用于将协处理器寄存器中的数据传送到 ARM 处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码 1 和协处理器操作码 2 为协处理器将要执行的操作,目的寄存器为 ARM 处理器的寄存器,源寄存器 1 和源寄存器 2 均为协处理器的寄存器。


指令示例:


MRC  P33R0C4C56    ;该指令将协处理器P3的寄存器中的数据传送到ARM处理器寄存器中

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条