zoukankan      html  css  js  c++  java
  • 汇编语言

    1.相对跳转指令 b,bl

    不同之处在于,bl指令除了跳转之外,还将返回地址(bl的下一条指令的地址)保存在lr寄存器。

    范例:  b fun1

    fun1:

        b1 fun2

    fun2:

    注意:跳转范围是当前指令的前后32MB。

    2.数据传送指令mov,地址读取伪指令ldr

    mov可以把寄存器的值赋给另一个寄存器,或者把常数赋给寄存器。

    mov  r1,r2      //r1 = r2

    mov  r1,#4096   //r1 = 4096

    注意:mov指令传送的常数必须是立即数,如果不知道那个数是不是立即数时,最好用ldr来赋值,ldr为伪指令。

    ldr r1, = 4096    //r1 = 4096

    内存访问指令:ldr,str,ldm,stm

    ldr指令从内存中读取数据到寄存器,操作数都是32位。

    ldr r1,[r2,#4]    //将地位为r2+4的内存单元数据读取到r1中。

    ldr r1,[r2],#4    //将地址为r2的内存单元数据读取到r1中,然后r2 = r2 +4

    str指令把寄存器的值存储到内存中

    str r1,[r2,#4]    //将ri的数据保存到地址到r2+4的内存单元中

    str r1,[r2],#4    //将r1的数据保存到地址为r2的内存单元中,r2 = r2 +4

    加减指令add,sub

    add r1,r2,#1      //r1 = r2 + 1

    sbu r1,r2,#1      //r1 = r2 - 1

    程序状态寄存器访问指令:msr,mrs

    ARM处理器有一个程序状态寄存器(cpsr),用于控制处理器的工作模式,设置中断的总开关

    msr cpsr,r0    //复制r0到cpsr

    mrs r0,cpsr    //复制cpsr到r0

    ldm和stm属于批量内存访问指令(后续)。

    3.

  • 相关阅读:
    [置顶] 寻找数组中的值
    详解 Java 的八大基本类型,写得非常好!
    从入门到放弃的 Java 架构师面试题!
    通往大牛之路,百度Java面试题前200页!
    HTML与CSS简单页面效果实例
    JS面向对象
    JS瀑布流效果
    CSS常用操作-图片
    CSS常用操作-导航栏
    CSS常用操作-对齐
  • 原文地址:https://www.cnblogs.com/stm32f4/p/6688633.html
Copyright © 2011-2022 走看看