ldr R4, [R1, R2, lsl #1]
相当于 R4 = *(R1 + R2 << 2^1) 之后 R1、R2的值时没有变化的
ldr R0, [R1, #4]!
加了感叹号 执行完这一句后 R1的值也是随之变化的,也是加了4的
感叹号是事前更新标志
相当于
R1 = R1 + 4
R0 = *(R1)
ldr R4, [R1, R2, lsl #1]!
相当于 R4 = *(R1 + R2 << 2^1) 之后 R1的值会随之变化 而 R2的值时没有变化的
ldr R3, [R1], R2
相当于
R3 = *R1
R1 = R1 + R2 即 R1指向地址处的内容,之后 R1 = R1 + R2的值, 之后R2的值时没有变化的
相当于
事后更新
R3 = *R1
R1 = R1 + R2
ldr R4, [R1], R2, lsl #1
相当于 R4 = *(R1), R1 = R1 + (R2 << 2^1) 之后 R2的值时没有变化的