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