LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 959|回复: 3

帮忙解释下arm指令的。。。初学arm指令

[复制链接]
发表于 2009-2-19 15:15:04 | 显示全部楼层 |阅读模式
指令执行前:
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

这两个结果具体是怎么计算出来的呢?
 楼主| 发表于 2009-2-19 15:19:47 | 显示全部楼层
在但寄存器传输中,感叹号‘!’表示用于寻址的寄存器的值会加上那个立即数而改变。

但是在这个多寄存器寻址的指令中,‘!’是什么意思呢?‘!’前面的是目的寄存器啊

{r1-r3}是代表{r1,r2,r3}吗?

请老鸟指教
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-19 22:23:53 | 显示全部楼层
已经搞明白了,结贴。
回复 支持 反对

使用道具 举报

发表于 2009-2-21 22:24:39 | 显示全部楼层
自己搞明白了,也应该把结论贴出来啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表