• 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

  • 相关阅读:
    伪元素改变placeholder占位符属性的默认样式实例页面
    盒子中margin重叠问题
    html或CSS的图片如何随着网页界面的缩小或放大跟着左右移动 ?
    相对路径与绝对路径
    Html5 Canvas小知识
    dl,dt,dd怎么用
    雪碧图
    linux--mysql图形工具 tora
    apt-get彻底卸载删除软件http://www.tennfy.com/1518.html
    【转】 httpclient 模拟浏览器动作需注意的cookie和HTTP头等信息
  • 原文地址:https://www.cnblogs.com/suozhang/p/6109021.html
Copyright © 2020-2023  润新知