zoukankan      html  css  js  c++  java
  • ARM 内核 汇编指令 的 8种 寻址方式

    str: store register ->指令将寄存器内容存到内存空间中, ldr:  load register 将内存内容加载到通用寄存器, ldr/str 组合来实现ARM CPU 和内存数据的 交换!

    1、mov r1,r2;  //寄存器r2的内容复制到r1中,寄存器寻址方式,(r1,r2 ARM中的通用寄存器)

    2、mov r0,#0xFF00; //数0xFF00复制到r0中,立即寻址方式,(#代表后面跟一个数)

    3、mov r0,r1,lsl #3; //r1中的内容左移三位后传送到r0中,寄存器移位寻址,(LSL(或ASL)可完成对通用寄存器中的内容进行逻辑(或算术)的左移操作

    4、ldr r1,[r2]; //r2 加了一个“[]”, 表示  r2的值 代表一个内存地址,把r2的值作为地址 去内存中 把这个地址存放的数据放到 r1寄存器中,寄存器间接寻址

    5、ldr r1,[r2,#4]; //把(r2的值+4)的值作为地址, 去内存中 把这个地址存放的数据放到 r1寄存器中,基址多变寻址

    6、ldmia r1!,{r0,r1-r4};

         // ia: 每次传送后地址加4;多寄存器寻址 

                                   ;R1<----[R0]
                                   ;R2<----[R0+4]
                                   ;R3<----[R0+8]
                                   ;R4<----[R0+12]

    7、stmfd sp!,{r2-r7,lr}; //堆栈寻址,解释方式类似上一条

    8、flag:  //相对寻址,类似C语言中的 goto 指令,其实 goto 就是从这来的!

     (上面各类的指令很多 ,每一类这只是提出其中的 一个)

    2016年11月28日12:40:28,GXP,ADD

  • 相关阅读:
    常用html设置:
    Java Enum
    ajax
    Utils使用
    jdk免安装对应配置
    jdk mvn下载--操作系统
    SpringMvc 文件上传后台处理
    SpringMvc 获取ApplicationContext
    Jenkins 持续集成
    自定义 directive pagination
  • 原文地址:https://www.cnblogs.com/suozhang/p/6109021.html
Copyright © 2011-2022 走看看