社区
C语言
帖子详情
关于 程序的段
fang92
2015-09-01 08:18:54
hello,请教各位一个问题。
在C程序里面,有段寄存器,cs,ds,ss,分别存折代码段,数据段和堆栈段的段选择子,通过选择子,访问GDT全局描述符表,就可以得到cs,ds,ss的段基址。然后加上offset,得到相应的线性地址。
在elf里面,整个程序也被分成了很多段,其中载入内存的那几个程序头里面就包括这几个段,而且都有这几个段的基址和size。我想问的是,在GDT或者LDT里面访问到的段基址和elf里面的.data, text等段的基址是一样的吗?
...全文
117
3
打赏
收藏
关于 程序的段
hello,请教各位一个问题。 在C程序里面,有段寄存器,cs,ds,ss,分别存折代码段,数据段和堆栈段的段选择子,通过选择子,访问GDT全局描述符表,就可以得到cs,ds,ss的段基址。然后加上offset,得到相应的线性地址。 在elf里面,整个程序也被分成了很多段,其中载入内存的那几个程序头里面就包括这几个段,而且都有这几个段的基址和size。我想问的是,在GDT或者LDT里面访问到的段基址和elf里面的.data, text等段的基址是一样的吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2015-09-05
打赏
举报
回复
window ,linux 段 寄存器,除了fs 都不再使用了 等于关闭了段模式 其实偶尔还会用的,不过用户(3级别代码)程序,不能够使用而已。 elf 中的段,只是操作系统,划分 代码数据等不同用途数据的一种方式,不再是 dos 时代的那种段了
赵4老师
2015-09-02
打赏
举报
回复
CPU中的段选择子 和 PE或elf文件中的Section 不是一个概念。
www_adintr_com
2015-09-01
打赏
举报
回复
当然不一样 不管是 Linux 还是 Windows,现在都是平坦内存模型。 cs, ds, ss 所指向的段选择子基址都是 0,size 都是 0xffffffff , 也就是说偏移的范围其实就是 0~4G 整个内存地址空间。偏移值就是地址的值。 Linux 和 Windows 都采用分页机制来管理内存,通过这种设置相当于绕过分段机制了,因为分段在 CPU 中没法关闭,必须使用。
一个TSR
程序
作出DOS下的屏幕保护
程序
在DOS时代,TSR(Tray Supervisor Routine)是一种...如今,
程序
员可能会更倾向于使用更高级的API和框架来创建屏幕保护,比如Windows API或Linux的X11,但在了解DOS时代的TSR技术上,这
段
经历无疑是一笔宝贵的财富。
叶子飞旋loading效果 源码
程序
"叶子飞旋loading效果 源码
程序
"提供了一个独特且吸引人的加载动效设计,旨在抓住用户注意力并减少他们在等待内容加载时的不耐烦感。这个动效将自然元素——叶子与动态效果相结合,创造出既美观又富有创意的视觉体验...
java源码包---java 源码 大量 实例
这是个J2ME控制台
程序
,它能剔除PNG文件中的非关键数据
段
,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...
查看内存使用情况的汇编源代码
1. 寻址和内存访问:汇编代码会定义内存
段
寄存器,如CS(Code Segment)、DS(Data Segment),并使用它们来定位
程序
代码和数据区域。通过计算偏移量,可以获取到特定内存位置的地址。 2. 内存映射表:可能有一个...
aspectjrt.jar,aspectjweaver.jar
"aspectjrt.jar"是AspectJ运行时库,它是运行AspectJ
程序
的基础。这个库包含了AspectJ编译器和运行时系统所需的所有类。当你在Java项目中使用AspectJ进行编程时,需要将此jar文件添加到类路径(classpath)中,以便...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章