zoukankan      html  css  js  c++  java
  • arm指令ldr

    .section .text.write
    FUNCTION(write)
    ldr r12, =__NR_write
    swi #0
    bx lr

    LDR:

    LDR 的两种用法
    1)LDR pc, =MyHandleIRQ 表示将MyHandleIRQ符号放入pc寄存器中
    2)LDR PC,MyHandleIRQ 表示将读取存储器中MyHandleIRQ符号所表示的地址中的值,及需要多读一次存储器。
     
    SWI:
    软中断指令
     
    BX LR:
    BX: 带状态切换的跳转。最低位为1时,切换到Thumb指令执行,为0时,解释为ARM指令执行。bx lr 的作用等同于 mov  pc,lr,即跳转到lr中存放的地址处。

    那么lr存放的是什么地址呢?lr就是连接寄存器(Link Register, LR),在ARM体系结构中LR的特殊用途有两种:一是用来保存子程序返回地址;二是当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行。

    当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中。在子程序返回时,把LR的值复制到程序计数器PC即可实现子程序返回。

    如,可以使用MOV PC, LR或者BX LR来完成子程序返回。

     
  • 相关阅读:
    Mac eclipse导入项目中文乱码问题解决
    初识Freemarker
    Mac 导入maven项目详解
    Mac iTerm2使用总结
    HTML学习笔记——标签
    仿QQ大战—界面篇
    Java之类的构造器(反射)
    JAVA之IO流(字符流)
    JAVA之IO流(字节流)
    仿QQ大战—服务器的搭建(ServerSocket)
  • 原文地址:https://www.cnblogs.com/caidi/p/6757275.html
Copyright © 2011-2022 走看看