. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点2.2(2)  [待解决] 回复[ 3次 ]   点击[ 528次 ]  
cdzjf
[帖 主]   [ 发表时间:2009-01-05 13:50 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为______,最大为______

用公式可以算出SA*16H+IP=SA:IP.

SA*16H+0H=20000H算出SA的值是:2000H
SA*16H+FFFFH=20000H算出SA*16H的值是:10001缩小10倍后是1000H
但我们把这个SA=1000H回算以后发现这个算出的物理地址却是1FFFFH,应该是刚刚缩小10倍后的那个1的问题,但依照规定SA的值是16H(十进制的10)的倍数,所以我们要修改SA为1001H,IP的值为FFF0H,这样出来的物理地址才是20000H,满足了最小的要求了.
最后那个思考就应该是小于我们这里算出的最小值1001H大于我们算出的最大值2000H就一定无法寻到20000H这个单元了
mouselove
[第1楼]   [ 回复时间:2009-01-06 11:16 ]   [引用]   [回复]   [ top ] 
荣誉值:13
信誉值:0
注册日期:2008-03-09 16:31
物理地址 = 段地址*16+偏移地址
这里的16是十进制而不是十六进制地。
cdzjf
[第2楼]   [ 回复时间:2009-01-12 11:04 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
LS说的对哈,不是16H,应该是十六进制的F
buddhazl
[第3楼]   [ 回复时间:2009-02-01 11:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-01-29 22:55
楼主说的对,想的很仔细算的很正确就是说的啰嗦了一点

PS:F是15,十进制的16应该是十六进制的10H
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved