ARM指令集-协处理器指令

发布者:温馨的家庭最新更新时间:2016-08-01 来源: eefocus关键字:ARM指令集  协处理器指令 手机看文章 扫描二维码
随时随地手机看文章
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。

 

ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条:

— CDP 协处理器数操作指令

— LDC 协处理器数据加载指令

— STC 协处理器数据存储指令

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

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

1、CDP 指令

CDP 指令的格式为:

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

器操作码2。

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

指令示例:

CDP P3 , 2 , C12 , C10 , C3 , 4 ;该指令完成协处理器 P3 的初始化

2、LDC 指令

LDC 指令的格式为:

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

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

指令示例:

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

3、STC 指令

STC 指令的格式为:

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

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

指令示例:

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

4、MCR 指令

MCR 指令的格式为:

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

理器操作码2。

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

指令示例:

MCR P3 , 3 , R0 , C4 , C5 , 6 ;该指令将 ARM 处理器寄存器 R0 中的数据传送到协处理器 P3 的寄存器 C4 和 C5 中。

5、MRC 指令

MRC 指令的格式为:

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

器操作码2。

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

指令示例:

MRC P3 , 3 , R0 , C4 , C5 , 6 ;该指令将协处理器 P3 的寄存器中的数据传送到 ARM 处理器寄存器中.

关键字:ARM指令集  协处理器指令 引用地址:ARM指令集-协处理器指令

上一篇:ARM中关于CPSR_cxsf
下一篇:ARM可执行映象文件

推荐阅读最新更新时间:2024-03-16 15:02

关于ARM9协处理器CP15及MCR和MRC指令
在ARM芯片资料中,针对协处理器CP15的介绍非常少,但是CP15又十分重要,例如在使用MMU编写虚拟地址映射表时,最后的一步重要工作就是要将映射表的基地址存储到CP15的寄存器C2中,还有一些控制的TLB,Cache等访问控制权限等等。。。 在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传送 MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常
[单片机]
关于ARM9<font color='red'>协处理器</font>CP15及MCR和MRC<font color='red'>指令</font>
搞定ARM指令集(一) --- 数据存储装载指令
ARM指令属于精简计算机指令(RISC),其条数较多,较难记忆,但事物的发展都是有延续性的,尤其是自然科学,其本身就是一种积累,所以她们的发展就必然是建立在某种规律之上的!掌握和熟悉规律之后再去研究细节,往往能达到事半功倍的效果! 最近有需求,也渴望掌握ARM指令集,所以决定挤出时间攻克之! 逻辑运算指令和算数运算指令算是比较简单的,略过一遍,还好,下次看到应该可以推测出她们的意思,没必要花太多的时间去记忆和理解! 接下来就遇到一些存储指令了,这类指令分为读取和存储两类,在这边就先不总结了,摘抄博友的内容如下: http://blog.chinaunix.net/u1/59572/showart_1011361.h
[单片机]
搞定ARM指令集(二)
一、ARM 微处理器的指令的分类与格式 ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类。下面是ARM微处理器的基本指令。 助记符 指令功能描述 ADC 带进位加法指令 ADD 加法指令 AND 逻辑与指令 B 跳转指令 BIC 位清零指令 BL 带返回的跳转指令 BLX 带返回和状态切换的跳转指令 BX 带状态切换的跳转指令 CDP 协处理器数据操作指令 C
[单片机]
ARM指令集-跳转指令
跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: — 使用专门的跳转指令。 — 直接向程序计数器 PC 写入跳转地址值。 通过向程序计数器 PC 写入跳转地址值,可以实现在 4GB 的地址空间中的任意跳转,在跳转之前结合使用 MOV LR , PC 等类似指令,可以保存将来的返回地址值,从而实现在 4GB 连续的线性地址空间的子程序调用。 ARM 指令集中的跳转指令可以完成从当前指令向前或向后的 32MB 的地址空间的跳转,包括以下 4 条指令: — B 跳转指令 — BL 带返回的跳转指令 — BLX 带返回和状态切换的跳转指令 — BX 带状态切换的跳转指令 1、 B 指令 B 指令的格
[单片机]
Arm指令集寻址方式
我这里讲的快速是指能够快速的上手工作,但任何一门学问都包含着比较具体的知识在里面,这些知识是需要长年累月的积累才可以逐渐从未知到已知,从笨拙到熟练.快速只是一种学知识的步骤,能够在短的时间里把那些不常用的知识排到后面来学习. 一些书中介绍,不需要了解汇编语言就可以进行Arm的编程,我想对于一般的开发者来讲C语言大概是够用了,但不了解汇编,很多原理性和底层的工作就会做起来困难了.即要快速,又要保证一定的汇编知识,那么学的时候可以走马观花的看一下,至少有个印象,再以后如果碰到的时候,逐渐学习和加深就可以了. 记忆是比较苦涩的事情,我觉得使用例子最好的方法,例子再加查找,以后用起来比较方便.前面讲过,Arm
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved