void main(void) { char a[ ] = "Hello"; }
编译结果为
Next label is a Thumb label main: 000080E0 B082 SUB SP, SP, #8 char a[ ] = "Hello" ; 000080E2 4668 MOV R0, SP 000080E4 4903 LDR R1, [PC,#0x00C] ; [0x80F4] =0x8138 000080E6 680A LDR R2, [R1, #0] 000080E8 6002 STR R2, [R0, #0] 000080EA 684A LDR R2, [R1, #4] 000080EC 6042 STR R2, [R0, #4] } 通过单步执行发现内存中[R1,#0]处存储内容为"Hell"
?请问"Hell"是怎样写入内存的,编译结果中并没有指令做到这一点啊? |