8086的内存分段机制
发布日期:2021-07-01 04:23:57
浏览次数:3
分类:技术文章
本文共 398 字,大约阅读时间需要 1 分钟。
文章目录
1 代码段和数据段
对于我们的程序来说,通常分为代码段和数据段:
对于上面的代码使用的是绝对地址,当我们的操作系统把数据段不是加载在0x0100的地址时,就会出现访问数据的错误。这其实就是重定位的问题,需要借用段寄存器解决: 我们需要知道如下几点:- 指令中的地址是数据在段内的偏移地址。
- 数据段寄存器DS中的值是数据段的段地址。
- 段地址+偏移地址=物理地址,也就是数据实际所在的地址。
- 重定位就是通过改变数据寄存器DS中的值来实现的。
2 8086的分段机制
2.1 8086的分段机制
8086的处理器地址引线:20根,那么逻辑地址就是20位。而我们的寄存器只有16位,为了解决这个问题:段地址实际上也是20位,将段寄存器中的值左移4位(每个分段必须加载到地址最低位为0的位置,相对于16进制表示而言)。偏移地址仍然是16位,也就意味着每个段的最大长度为65536个字节。
参考资料:
转载地址:https://muzimin.blog.csdn.net/article/details/103709407 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月23日 09时33分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL 内存模型
2019-05-02
express 解析post方式下的json参数
2019-05-02
node.js 实现一个简单的登录拦截器
2019-05-02
c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类【转】
2019-05-02
WebRTC学习记录(1):采集microphone到文件原理实践&讲解【转】
2019-05-02
Caffe 安装错误记录及解决办法【转】
2019-05-02
Android用类继承Application的全局变量使用注意
2019-05-02
qml之TextField使用笔记
2019-05-02
排序算法之冒泡排序
2019-05-02
排序算法之希尔排序
2019-05-02
pyqt5之拖拽
2019-05-02
pyqt5之俄罗斯方块
2019-05-02
算法排序之桶排序
2019-05-02
lambda表达式初探
2019-05-02
C++ Template类模板的特化(3.3节, 3.4节)
2019-05-02
第05章 函数
2019-05-02
第08章 输入和输出
2019-05-02
第11章 案例研究: 文本统计
2019-05-02
qml drag listview
2019-05-02