|
本帖最后由 piqiuarm 于 2012-8-18 21:42 编辑
在linux的伪代码中有一个是 .section
我的是基于ELF格式的,参考资料中是这么说的:
“当目标格式为ELF时,.section命令应如下使用:
.section name [, "flags"[, @type]]
可选参数flags是被引号包围的字符串,可以由下列字符的任意组合:
a 可分配的段(allocatable)
w 可写段
x 代码段
”
#define FUNC(loop,function) _Call_func(loop,function)
追踪到:_Call_func()定义如下:
#define __Call_func(loop,function) \
asm ( \
".section .callback_" #loop "_body, \"ax\"" "\n" \
JSR " _" #function "\n" \
".previous" "\n" \
)
其中的 JSR 是跳转汇编指令,查到相关资料说:
previous用段堆栈的术语来说,本命令使当前段和堆顶段交换位置。
previous表示恢复到当前.section定义之前的那个段作为当前段。就是说这个previous与它前面的那个section一般成对出现.
在这里主要是不理解这一段汇编代码的意思,不知道怎么理解,
希望各位好友忙里抽点时间,帮帮看看,在这先谢过了。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|