汇编的问题

[复制链接]
1813|2
 楼主| leo1983 发表于 2007-12-6 15:35 | 显示全部楼层 |阅读模式
.globl&nbsp;_armboot_start<br />_armboot_start:<br />&nbsp;&nbsp;.word&nbsp;_start<br /><br />这段code&nbsp;编译以后生成的system.map是<br />21f00038&nbsp;t&nbsp;_fiq<br />21f00040&nbsp;t&nbsp;_TEXT_BASE<br />21f00044&nbsp;T&nbsp;_armboot_start<br />21f00048&nbsp;T&nbsp;_bss_start<br />21f0004c&nbsp;T&nbsp;_bss_end<br />21f00050&nbsp;t&nbsp;reset<br />我的理解是_armboot_start&nbsp;是一个标号(地址),这个地址里面的内容是_start。_start的值是0x21fc0000.<br />而在后面运行的C文件中,出现了下面的语句<br />monitor_flash_len&nbsp;=&nbsp;_bss_start&nbsp;-&nbsp;_armboot_start;<br />我的问题是在这句C语言里的_armboot_start&nbsp;就不是一个标号(地址),而是_start&nbsp;,0x21f00000<br /><br />
阿南 发表于 2007-12-6 16:03 | 显示全部楼层

对,理解正确.可以自己仿真验证

  
rodger_br 发表于 2007-12-8 16:05 | 显示全部楼层

_armboot_start是地址啊

_bss_start也一样,两者相减得到代码的长度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部