• 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
  • 相关阅读:
    mybatis中resultMap配置细则
    关于mybatis中typeHandler的两个案例
    mybatis映射器配置细则
    mybatis常用配置
    初识mybatis(二)
    初识mybatis
    数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization)
    交替方向乘子法(ADMM)的原理和流程的白话总结
    用ADMM求解大型机器学习问题
    数值优化(Numerical Optimization)学习系列-目录
  • 原文地址:https://www.cnblogs.com/YYPapa/p/6855745.html
Copyright © 2020-2023  润新知