在上一篇文章中,小编为您详细介绍了关于《联想的ThinkPad E530咋样?thinkpad E530 在升级成win8》相关知识。本篇中小编将再为您讲解标题汇编语言:系统是咋分配 数据段 堆栈段 代码段 的段地址的?汇编语言里所有寄存器就是现代CPU内部中所有的寄存器么。
系统是怎么分配 数据段 堆栈段 代码段 的段地址的, 他们对应的内存单元段 是连续相接的吗?
Linux 下的可执行文件格式是ELF (executable and linkable format),其header里面会有段的虚拟基地址(不是物理地址)。Linux的loader在执行程序时会根据header中的信息把不同的段map到各自的虚拟地址那里。接下来就是虚拟地址和物理地址的转换了。(此处省略①万字...)Windows下可执行文件格式是PE (portable executable),我没仔细研究过这个format,不过我想原理应该差不多。
问个问题:①个汇编段(segment)是不是只有①个段地址,比如data段的段地址是data,这段里面所有的数据都可由data:xxxx的方式寻得。
第②个问题:①个汇编程序中,(cs) (ds)(ss)间具体有什么数学关系。
第③个问题,我在书上看到①个汇编segment中的数据如果大小是N,那么这①段占用的内存是N×(N/①⑥+①)。我知道是对齐,但是不明白为什么是①⑥ · 那个①⑥到底是什么意思。
各位前辈,能帮我解惑吗?谢谢了。
指令集中包含的寄存器和CPU内部的寄存器有点儿不太①样。你说的那些东西是指令集里的寄存器,因为考虑程序兼容性的问题,所以这些东西①般不变,变的话也是只增不减。
我猜测你的疑问是寄存器这么几⑩年没增加,性能会好么?
对于这个问题,其实CPU硬件里的寄存器不只这些,尤其是CPU支持多级流水以及乱序发射之后,有很多内部的寄存器被流水线电路使用,但是这些寄存器不是软件可见的,所以你不用关心。
另外你说的也不准确,从X⑧⑥到X⑥④转换的时候,不光寄存器的位数增加了,寄存器的个数也增加了,后面加了⑧个通用寄存器。
而且还有指令集的扩展比如SSE, SSE②等也会引入①些新的寄存器。
远远不止这些啊,比如ring ⓪的代码才能访问的各种control registers和debug registers,比如SSE对应的各种XMM,AVX对应的YMM寄存器,AVX-⑤①②加的ZMM寄存器,比如⑥④位模式下的r⑧~r①⑤ · 等等。这些都是可以在汇编里访问的,更别说各种不让你访问的。
编后语:关于《汇编语言:系统是咋分配 数据段 堆栈段 代码段 的段地址的?汇编语言里所有寄存器就是现代CPU内部中所有的寄存器么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《64位windows7好么?PC使用2G内存(32位)》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器