多寄存器寻址指令ldmia/ldmib
来源:互联网 发布:淘宝买家要求花呗 编辑:程序博客网 时间:2024/06/06 02:10
转自http://hi.baidu.com/mugua/item/c43f37cc55a75d35ee4665e6
多寄存器和堆栈寻址的用法:多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB;
堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;
弄清堆栈寻址的SP的变化:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;
IB: 每次传送前地址加4;
DA: 每次传送后地址减4;
DB: 每次传送前地址减4;
FD: 满递减堆栈;
ED: 空递减堆栈;
FA: 满递增堆栈;
EA: 空递增堆栈。
1、多寄存器寻址:
LDMIA R0!,{R1-R4}
;R1<----[R0]
;R2<----[R0+4]
;R3<----[R0+8]
;R4<----[R0+12]
例如:
所有的示例指令执行前:
mem32[0x1000C] = 0x04
mem32[0x10008] = 0x03
mem32[0x10004] = 0x02
mem32[0x10000] = 0x01
r0 = 0x00010010
r1 = 0x00000000
r3 = 0x00000000
r4 = 0x00000000
1) ldmia r0!, {r1-r3} 2) ldmib r0!, {r1-r3}
执行后: 执行后:
r0 = 0x0010001C r0 = 0x0010001C
r1 = 0x01 r1 = 0x02
r2 = 0x02 r2 = 0x03
r3 = 0x03 r3 = 0x04
2、堆栈寻址:
STMFD入栈指令,相当于STMDB
STMFD SP!,{R2-R4} ;[SP-4]<---R4
;[SP-8]<---R3
;[SP-12]<---R2
LDMFD出栈指令,相当于LDMIA
LDMFD SP!,{R6-R8} ;R6<----[SP]
;R7<----[SP+4]
;R8<----[SP+8]
- 多寄存器寻址指令ldmia/ldmib
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
- LDMIA、LDMIB、LDMDB、LDMDA、STMIA、LDMFD、LDMFA、LDMED、LDMEA等指令详解
- 指令“LDMIA R01, {R1,R2,R3,R4}”的寻址方式?
- stmdb和ldmia指令
- 多寄存器寻址与堆栈寻址
- 多寄存器和堆栈寻址
- ARM汇编多寄存器寻址
- ARM存储器访问指令 LDMIA
- 汇编:stmdb和ldmia指令
- 寄存器寻址
- CPU位数,寻址能力,指令集,寄存器位数,操作系统位数
- U盘文件丢失求恢复教程
- 倒排索引、正排索引系列一
- Google Code Jam 2014 -- C
- ORACLE和MYSQL的区别
- java 捕捉错误try-catch
- 多寄存器寻址指令ldmia/ldmib
- Android WebView Memory Leak WebView内存泄漏
- 视图
- C/C++基本数据结构:链表的基本使用和实现
- CentOS下Could not update ICEautority file /var/lib/gdm的解决办法
- mybatis sql in 查询
- redmine如何安装配置svn及邮件
- LOCAL_SHARED_LIBRARIES 与 LOCAL_LDLIBS,LOCAL_LDFLAGS的区别
- Android 代码中添加RelativeLayout布局