「汇编」加深理解段地址*10H(*16)必须是16的倍数

 王爽的汇编语言,有这样一道题:

检测点2.2

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

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

 

  我的思考过程是,关键是看“物理地址=段地址(SA)*10H+偏移地址(EA)”这句话,容易得到段地址=(物理地址-偏移地址)/10H(10H也可以写成16)。当偏移地址为最大时,能求得最小的段地址;否则求得最大的段地址。而偏移地址是16位的,也就是说寻址范围是0~FFFFH。那么,顺着这个想法很容易得到“答案”——当偏移地址为最大(FFFFH)时段地址最小;当偏移地址最小(0)时段地址最大

  但是,经过计算发现,“段地址=(物理地址-偏移地址)/16”对应的式子“SA=(20000H-EA)/16”,其数学上等价的另一条分配律得到的式子“SA=20000H/16-EA/16”,在计算SA最大值的时候所计算的

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值