鱼C论坛

 找回密码
 立即注册
查看: 4666|回复: 9

还有这里,为什么不是FFFFH呢?

[复制链接]
发表于 2011-5-15 09:05:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 loop 于 2011-5-15 23:58 编辑


                               
登录/注册后可看大图


红圈处,为什么是FFF0H,而不是FFFFH 呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 13:16:58 | 显示全部楼层
好像。图片挂了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 14:14:25 | 显示全部楼层
因为段地址FFFFH-64K就是FFF0H,为什么要用FFFFH减呢,看看书
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 15:26:14 | 显示全部楼层
这真是邪乎呢,求高手解释?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 16:05:48 | 显示全部楼层
1001H×16=10010H
  10010H
  +FFF0H
自己一位一位加一加,不是20000H吗!!        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 16:28:51 | 显示全部楼层
本帖最后由 lxbwyr 于 2011-5-15 16:30 编辑

我帮你分解一下。看看你能不能理解。
       首先来说一下在8086CUP中一个段的偏移值范围是0H-FFFFH。
       一般来讲一个段的偏移地址的取值最大是FFFFH,这是没有错的。

         但是这里被20000H这个值约束了这个最大的取值。如果偏移值最大是FFFFH,那么SA可取最小值20000H - FFFFH = 10001H。但是段地址要求是16进制的倍数(比如可以是10000或10010或10020,也就是说最后一位应是0 【16的倍数】。很重要  

       那么10001H这个值 就能不做为段地址了。那比这大一点的数10002H-10005H……10010H……这些值只有10010H能是16进制的倍数,且是倍数中的最小值 。符合做为段地址的取值要求

       10010H变成段地址就是1001H     【16的倍数】。很重要
       那么20000H-10010H=FFF0H.

这样就得出偏移地址的最大值为什么不是FFFFH,而是FFF0了。
:):)

评分

参与人数 1鱼币 +2 收起 理由
loop + 2 解答的很好,鱼C有你更精彩!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 16:41:12 | 显示全部楼层
本帖最后由 sunhopp 于 2011-5-15 16:51 编辑

因为内存地址为 20000H

最小值:为 1001H,要寻的地址为 20000H,20000H-(1001H*16)=FFF0H
最大值:为 2000H,因为基地址在寻址时要左移一位(2000H*16=20000H)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 17:36:06 | 显示全部楼层
:)kan kan o
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-15 23:19:39 | 显示全部楼层
lxbwyr 发表于 2011-5-15 16:28
我帮你分解一下。看看你能不能理解。
       首先来说一下在8086CUP中一个段的偏移值范围是0H-FFFFH。
   ...

非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-16 12:41:34 | 显示全部楼层
真是细节决定成败呀!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 20:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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