这是在网上找到的一篇文章,不明出处,但是我感觉特别好,所以转载到这里。
实例分析:STM LDM
1、
最后R0在0x4000 0014处,里没有值。
STMIA 是IA:increa after所以是先写,后增长。
R1->R5 从0x4000 0000 开始写入,
R1 R2 R3 R4 R5
0x4000 0000 0x40000004 0x4000 0008 0x4000 000C 0x4000 0010
R0==0x4000 0014
2、
STMIB
R1->R5 分别从0x4000 0004处开始写入,0x40000000中没有值, R0中最后放【ox4000 0014】,值为5。
R1 R2 R3 R4 R5
0x4000 0004 0x40000008 0x4000 000C 0x4000 0010 0x4000 0014
R0==0x4000 0014
3、
STMDA
R5->R1 分别从0x4000 1000处开始写入,0x40001000中没有值, R0中最后放【ox4000 0FEC】,值为5。
R1 R2 R3 R4 R5
0x4000 0FF0 0x40000FF4 0x4000 0FF8 0x4000 0FFC 0x4000 1000
0x4000 0FEC = R0
4、
STMDB
R5->R1 分别从0x4000 1000处开始写入,0x40001000中没有值, R0中最后放【ox4000 0FEC】,值为5。
R1 R2 R3 R4 R5
0x4000 0FEC 0x4000 0FF0 0x4000 0FF4 0x4000 0FF8 0x40000FFC 0x4000 1000
0x4000 0FEC= R0