鱼C论坛

 找回密码
 立即注册
查看: 3814|回复: 4

分段是怎么计算的?

[复制链接]
发表于 2016-1-28 17:35:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 教官 于 2016-1-28 17:46 编辑

汇编语言--段的概念

地址10000H--100FFH的内存单元组成一个段,该段的起始地址(寄出地址)为10000H,段地址为
1000H,大小为100H;我们可以认为地址10000H--1007FH,10080H--100FFH的内存单元组成两个段,
她们的起始地址(寄出地址)为:10000H和10080H,段地址为:1000H和1008H,大小都为80H.

问题1:大小为100H是怎么来的?
问题2:1007FH和10080H是怎么分段的?
问题3:大小都为80H又是怎么来的?
分段的过程是怎么计算的,我都搞晕了。能详细说明一下么?


这是如何计算的?

这是如何计算的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-1-28 20:32:07 | 显示全部楼层
问题1:1007H-10000H=100H
问题3:100H=256   256/2=128   128=80H

现在就是不知道怎么分这个平均值,又刚好都是80H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-28 23:44:47 | 显示全部楼层
书中这段话的目的是想说明 内存位置是如何用段+偏移的方式来表示的,不必拘泥具体数值
因为8086cpu地址总线宽度为20,能表示2^20即00000~FFFFF个内存位置,但是8086cpu寄存器只有16位,只能保存0000~FFFF的数据,所以想到了段+偏移的方法.
问题1:大小为100H是怎么来的?100FFH-10000H+1 = 100H,表示这个段的大小
问题2:1007FH和10080H是怎么分段的?随便分的,你也可以分成不相等的两个段,也可以分成3个段.
问题3:大小都为80H又是怎么来的?段尾-段首+1,就像问 从3到9总共有几个数,怎么算一样.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-29 09:45:16 | 显示全部楼层
yundi 发表于 2016-1-28 23:44
书中这段话的目的是想说明 内存位置是如何用段+偏移的方式来表示的,不必拘泥具体数值
因为8086cpu地址总线 ...

清楚明白 ,Thanks
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-9 23:41:10 | 显示全部楼层
其实8086CPU它只认识这些5位的十六进制地址:10000H--1007FH,10080H--100FFH
至于怎么分随便你,你喜欢就好,只要最后结果相加等于这个5位数地址即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 12:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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