打印

请教一段代码

[复制链接]
1542|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianying1|  楼主 | 2007-6-17 22:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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"是怎样写入内存的,编译结果中并没有指令做到这一点啊?

相关帖子

沙发
chunk| | 2007-6-18 13:49 | 只看该作者

为何不从CPU复位后所执行的第一条指令开始查起呢?

就像用汇编语言一样?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

36

帖子

0

粉丝