. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  问下物理地址的计算方法和原理?  [已解决] 回复[ 4次 ]   点击[ 493次 ]  
hidden
[帖 主]   [ 发表时间:2008-05-04 10:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:13
注册日期:2008-04-28 19:46
书上写到 物理地址=段地址乘以16+偏移地址


例如:8086CPU要访问地址为123C8H的内存单元    书上的计算方法是

先分成 1230 00C8   然后到了地址加法器 段地址乘以16   为什么得出的是12300  而00C8没变

这地方我没看懂。。。  乘以16 不是1230乘以16吗?  怎么得出的是12300?

我是不是理解错误?  谁能给我举个例子 来说明段地址乘以16的具体意义?
xiaoqiang
[第1楼]   [ 回复时间:2008-05-04 16:28 ]   [引用]   [回复]   [ top ] 
荣誉值:35
信誉值:0
注册日期:2007-12-05 09:08
乘以16 不是1230乘以16吗?  怎么得出的是12300?
==========
提到的运算是16进制的运算。   1230H * 16D = 12300H
suanliuyiting
[第2楼]   [ 回复时间:2008-05-04 16:28 ]   [引用]   [回复]   [ top ] 
荣誉值:15
信誉值:0
注册日期:2008-05-03 15:26
十进制1左移一位是10,即乘以10;二进制10B(十进制2)左移一位,是100B(十进制4),即乘以十进制2;十六进制也一样,左移一位,乘以十进制16,在原数上后面补一个0   

所以1230 00C8(十六进制),到了地址加法器, 段地址乘以16(是十进制),要在1230后再补一个0(这个是最终结果)  而不用管中间十六进制间的相乘






1230 00C8   是十六进制,到了地址加法器 段地址乘以16 ,这个16是十进制             十六进制
hidden
[第3楼]   [ 回复时间:2008-05-04 19:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:13
注册日期:2008-04-28 19:46
suanliuyiting  哈,明白了
hidden
[第4楼]   [ 回复时间:2008-05-04 19:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:13
注册日期:2008-04-28 19:46
此贴由 贴主 于 [ 2008-05-04 19:03 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(xiaoqiang):1分   2楼(suanliuyiting):5分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved