搜索
bottom↓
回复: 0

linux 下的分段(.section)

[复制链接]

出0入0汤圆

发表于 2012-8-18 21:41:12 | 显示全部楼层 |阅读模式
本帖最后由 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周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 16:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表