zoukankan      html  css  js  c++  java
  • 关于ARM 架构汇编指令

    一、MOV指令

    MOV指令用于将数据从一个寄存器拷贝到另外一个寄存器,或者将一个立即数传递到寄
    存器里面,使用示例如下:

    MRS R0, CPSR     @将特殊寄存器 CPSR里面的数据传递给 R0,即 R0=CPSR

    二、MRS指令

    MRS指令用于将特殊寄存器 (如 CPSR和 SPSR)中的数据传递给通用寄存器,要读取特殊
    寄存器的数据只能使用 MRS指令!使用示例如下:

    MRS R0, CPSR       @将特殊寄存器 CPSR里面的数据传递给 R0,即 R0=CPSR

    三、MSR指令

    MSR指令和 MRS刚好相反, MSR指令用来将普通寄存器的数据传递给特殊寄存器,也就
    是写特殊寄存器,写特殊寄存器只能使用 MSR,使用示例如下

    MSR CPSR, R0   @将 R0中的数据复制到 CPSR中,即 CPSR=R0

    四、LDR指令

    LDR主要用于从存储加载数据到寄存器 Rx中, LDR也可以将一个立即数加载到寄存器 Rx中, LDR加载立即数的时候要使用“ “=”,而不是 “#”。在嵌入式开发中 LDR最常用的就是读
    取 CPU的寄存器值,比如

    LDR R0, =0X0209C004 @将寄存器地址0X0209C004加载到R0中,即R0=0X0209C004

    LDR R1, [R0] @读取地址0X0209C004中的数据到R1寄存器中

    五、STR指令

    LDR是从存储器读取数据, STR就是将数据写入到存储器中,同样以

    LDR R0, =0X0209C004 @将寄存器地址0X0209C004加载到R0中,即R0=0X0209C004

    LDR R1, =0X20000002 @R1保存要写入到寄存器的值,即R1=0X20000002

    STR R1, [R0] @将R1中的值写入到R0中所保存的地址中

    LDR和 STR都是按照字进行读取和写入的,也就是操作的 32位数据,如果要按照字节、
    半字进行操作的话可以在指令“ LDR”后面加上 B或 H,比如按字节操作的指令就是 LDRB和
    STRB,按半字操作的指令就是 LDRH和 STRH

     

  • 相关阅读:
    Palindrome Partitioning
    Minimum Path Sum
    Maximum Depth of Binary Tree
    Minimum Depth of Binary Tree
    Unique Binary Search Trees II
    Unique Binary Search Trees
    Merge Intervals
    Merge Sorted Array
    Unique Paths II
    C++ Primer Plus 笔记第九章
  • 原文地址:https://www.cnblogs.com/hkj8808/p/13293715.html
Copyright © 2011-2022 走看看