. : : 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