zoukankan      html  css  js  c++  java
  • (转)ARM协处理器主要用途 及其 指令CDP LDC STC MCR MRC介绍

    原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111610612200/

     

    ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令,ARM 的协处理器指令主要用于:

    <1>    ARM 处理器初始化

    <2>    ARM 协处理器的数据处理操作

    <3>    在ARM 协处理器的寄存器和处理器的寄存器之间传送数据

    <4>    在ARM 协处理器的寄存器和存储器之间传送数据

     

    ARM 协处理器指令包括以下5条

    • CDP 协处理器数操作指令

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

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

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

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

    <1>     CDP 指令

    指令的格式为:

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

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

    指令示例:

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

     

    <2>     LDC 指令

    指令的格式为:

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

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

    指令示例:

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

     

    <3>     STC 指令

    指令的格式为:

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

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

    指令示例:

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

     

    <4>     MCR 指令(mov arm to c,可以这样来记忆)

    指令的格式为:

    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{条件} 协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理器操作码2。

    MRC 指令用于将协处理器寄存器中的数据传送到ARM 处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。

    其中协处理器操作码1 和协处理器操作码2 为协处理器将要执行的操作,目的寄存器为ARM 处理器的寄存器,源寄存器1 和源寄存器2 均为协处理器的寄存器。

    指令示例:

    MRC P3 , 3 , R0 , C4 , C5 , 6 ;

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

  • 相关阅读:
    关于使用lombok遇到的问题
    Android自定义View之旅(二)继承View实现自定义
    Android自定义View之旅(一)自定义View的几种方式
    Android中attr属性的类型
    Android Studio 4.0 新功能与优化
    WebView播放视频白屏、不能全屏问题解决
    Android配置Scheme使用浏览器唤起APP的方式,以及不生效问题解决
    Android获取的IMEI只有14位问题解决
    Android偶遇杂症合集(持续更新)
    AndroidKeystore密钥库系统,保证本地加密算法的密钥安全性
  • 原文地址:https://www.cnblogs.com/sheshiji/p/3624377.html
Copyright © 2011-2022 走看看