__isr_vector:
...
.size __isr_vector, . - __isr_vector
第1行定义了符号 __isr_vector,并置该符号的“值”属性为段的当前“地址”,
第2行生成了一些代码或数据,使当前地址也随之增加了。
第3行设置符号 __isr_vector 的“大小”属性为表达式“. - __isr_vector”,. 是“段”的当前“地址”,- 是“减”,__isr_vector 是引用该符号的“值”(该值在第1行被赋予),表达式的结果就是第1行到第3行之间的代码或数据大小(按byte计)。
一个符号可以有多种属性,其中“值”是最重要也是最常用的;“大小”和“类型”也很常见,比如函数:
.type main, %function
main:
...
.size main, . - main
调试器就可以从符号 main 取得它的“类型”、“值”、“大小”等属性,从而知道 main 是个函数,它的起始地址和大小。 |