zoukankan      html  css  js  c++  java
  • ARM LOAR-STORE指令

    变址模式 数据 基址寄存器 示例
    回写前变址 mem[base+offset] 基址寄存器加上偏移 LDR r0,[r1,#4]!
    前变址 mem[base+offset] 不变 LDR r0,[r1,#4]
    后变址 mem[base] 基址寄存器加上偏移 LDR r0,[r1],#4

    PRE

    r0=0x00000000
    r1=0x00009000
    mem32[0x00009000]=0x01010101
    mem32[0x00009004]=0x02020202

    回写前变址:

    LDR r0,[r1,#4]!

    POST(1)

    r0=0x02020202
    r1=0x00009004

    前变址:

        LDR r0,[r1,#4]

    POST(2)

    r0=0x02020202
    r1=0x00009000

    后变址:

        LDR r0,[r1],#4

    POST(3)

        r0=0x01010101
        r1=0x00009004
    寻址模式 指令 r0= r1+=
    回写前变址

    LDR r0,[r1,#4]!

    LDR r0,[r1,r2]!

    LDR r0,[r1,r2,LSR#4]!

    mem32[r1+0x4]

    mem32[r1+r2]

    mem32[r1+(r2 LSR 0x4)]

    0x4

    r2

    (r2 LSR 0x4)

    前变址

    LDR r0,[r1,#4] 

    LDR r0,[r1,r2]

    LDR r0,[r1,-r2,LSR#4]

    mem32[r1+0x4]

    mem32[r1+r2]

    mem32[r1-(r2 LSR 0x4)]

    0

    0

    0

    后变址

    LDR r0,[r1],#4

    LDR r0,[r1],r2

    LDR r0,[r1],r2,LSR#4

    mem32[r1]

    mem32[r1]

    mem32[r1]

    0x4

    r2

    (r2 LSR 0x4)

    多寄存器:

    <LDM|STM>{<cond>}<寻址模式>Rn{!},<Registers>{r^}
    寻址模式 描述 起始地址 结束地址 Rn!
    IA 执行后增加 Rn Rn+4*N-4 Rn+4*N
    IB 执行前增加 Rn+4 Rn+4*N Rn+4*N
    DA 执行后减少 Rn-4*N+4 Rn Rn-4*N
    DB 执行前减少 Rn-4*N Rn-4 Rn-4*N
    r0=0x00080010
    
        LDMIA=r0!,{r1-r3}
             0x00080020       0x00000000b
        ---->0x0008001C       0x00000000a  
             0x00080008       0x000000009---->r3
             0x00080004       0x000000008---->r2
    r0  ---->0x00080010       0x000000007---->r1
             0x0008000C       0x000000006
    
        LDMIB=r0!,{r1-r3}
             0x00080020       0x00000000b
        ---->0x0008001C       0x00000000a---->r3  
             0x00080008       0x000000009---->r2
             0x00080004       0x000000008---->r1
    r0  ---->0x00080010       0x000000007
             0x0008000C       0x000000006
    
        LDMDA=r0!,{r1-r3}
             0x00080020       0x000000005
        ---->0x0008001C       0x000000004---->r3  
             0x00080008       0x000000003---->r2
             0x00080004       0x000000002---->r1
    r0  ---->0x00080010       0x000000001
             0x0008000C       0x000000000
  • 相关阅读:
    opencv入门踩坑之路(一)
    编写vue的时候(html也一样),限制一个div内可显示的字数
    win10开机后内存占用非常高,但是资源管理器显示的进程占用得很少,可以考虑更新驱动
    java 随机数产生 常用类及方法
    你不会的是这个正则表达式吗?
    系统编程第三次上机
    Java第三次上机随笔
    系统编程第二次实验
    Java第二次上机随笔
    面向对象-Java MOOC翁恺老师第一次作业
  • 原文地址:https://www.cnblogs.com/YYPapa/p/6855745.html
Copyright © 2011-2022 走看看