检测点2.2

    (1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为多少到多少?

 答:物理地址=SA*16+EA

    EA的变化范围为0H~FFFFH

 物理地址范围为(SA*16+0H)~(SA*16+FFFFH)

 现在SA=0001H,那么寻址范围为

 (0001H*16+0H)~(0001H*16+FFFFH)

    =00010H~1000FH

 

    (2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为多少?最大为多少?

    答:

 物理地址 20000H = SA * 10H + 偏移地址

 显然,偏移地址应该取最大值,SA 才能达到最小。

 那么,偏移地址取最大值:FFFFH,行吗?

 代入上述方程,发现,两边的,最末位,不相等。

 偏移地址最大值,只能取到:FFF0H,方程才有可能成立。

 

 按照公式:

 物理地址 SA * 10H + 偏移地址

 可知,物理地址、偏移地址,两者的最低位,必定是相同的。

 当物理地址=20000H,偏移地址也只能是:XXX0H,取最大就是 FFF0H。

 于是:SA = (20000H - FFF0H) / 16=10010H / 16 = 1001H。

 

 标记:王爽汇编语言,段地址*16+偏移地址=物理地址,其中16是十进制。

 

 提示,反过来思考一下,当段地址给定为多少,CPU无论怎么变化偏移地址都无法寻到20000H单元?

 答:

 先求出,段地址为多少的时候,变化偏移地址可找到20000H地址单元。

 段地址 × 16  +  偏移地址  =  20000H

 偏移地址=0000H,段地址则为 2000H;

 偏移地址=FFF0H,段地址则为 1001H。

 那么,当段地址大于 2000H,或小于 1001H,就不能找到 20000H。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值