• ARM汇编指令MCR/MRC学习


    MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。假设协处理器不能成功地运行该操作。将产生没有定义的指令异常中断。

    指令的语法格式:

    MCR{<cond>} p15, 0, <Rd>, <CRn>, <CRm>{,<opcode_2>}

    MCR2 p15, 0, <Rd>, <CRn>, <CRm>{,<opcode_2>}

    当中,<cond>为指令运行的条件码。当<cond>忽略时指令为无条件运行。MCR2中,<cond>为Ob1111,指令为无条件运行指令。

     <opcode_1>为协处理器将运行的操作的操作码。

    对于CP15协处理器来说, <opcode_1>永远为0b000,当<opcode_1>不为0b000时,该指令操作结果不可预知。

     <Rd>作为元寄存器的ARM寄存器,其值被传送到得协处理器寄存器中。

     <Rd>不能为PC,当其为PC时,指令操作结果不可预知。

     <CRn>作为目标寄存器的协处理器寄存器,其编号可能为C0,C1....C15。

    <CRm>附加的目标寄存器或者原操作数寄存器,用于区分同一个编号的不同物理寄存器。当指令中不须要提供附加信息时,将C0指定为<CRm>,否则指令操作结果不可预知。  <opcode_2>提供附加信息,用于差别同一个编号的不同物理寄存器。

    当指令中指定附加信息时,省略<opcode_2>或者将其指定为0,否则指令操作结果不可预知。

    MRC指令将协处理器的寄存器中数值传送到ARM处理器的寄存器中。

    假设协处理器不能成功地运行该操作。将产生没有定义的指令异常中断。

    指令的语法格式:

    MRC{<cond>} p15, 0, <Rd>, <CRn>, <CRm>{,<opcode_2>}

    MRC2 p15, 0, <Rd>, <CRn>, <CRm>{,<opcode_2>}


    转自http://blog.chinaunix.net/uid-26945045-id-3198519.html

  • 相关阅读:
    背景图轮播 响应式 插件 vegas的使用和下载
    (补充)scrapy框架爬取智联招聘信息--上海python工作
    REMOVE A WINDOWS SERVICE
    SQL Server 2008对日期时间类型的改进
    IIS ARR(Application Request Route)与反向代理(Reverse Proxy)
    Jenkins .NET项目持续集成配置
    未找到框架“.NETFramework,Version=v4.5”的引用程序集
    IIS ARR设置HTTP跳转到HTTPS
    怎么学好XXX
    MongoDB
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6795801.html
Copyright © 2020-2023  润新知