. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
[bx]和loop指令
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
救救我吧!程序的物理地址咋算的!
[待解决]
回复[
4
次 ] 点击[
449
次 ]
573085020
[帖 主]
[ 发表时间:2009-05-27 15:13 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2009-04-02 15:26
书中有弄不懂的?内容是这样的:所以,我们从DS中可以得到PSP的段地址SA,PSP的偏移地址为0.则物理地为SA*16+0。
因为PSP占256个字节,所以程序的物理地址是:
SA*16+0+256=SA*16+16*16+0=(SA+16)*16+0
可用段地址和偏移地址表示为:SA+10:0
sa+10:0是怎么算出来的?
(sa+16)x16+0就算x16让加法运算器去做,也不该得出sa+10:0啊也应该是sa+16:0啊
还有六个跑哪去了?
mouse
[第
1
楼]
[ 回复时间:2009-05-27 16:53 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
可用段地址和偏移地址表示为:SA+10:0
---------------
这里的10是十六进制的。
debug下xx:xx表示方法中,xx都是十六进制数。
573085020
[第
2
楼]
[ 回复时间:2009-05-27 18:03 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2009-04-02 15:26
我知道段地址:偏移地址在debug下是十六进制的,我不知道(SA+16)*16+0 是怎么变成sa+10:0的
aten
[第
3
楼]
[ 回复时间:2009-05-30 17:24 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:4
信誉值:0
注册日期:2008-12-11 08:43
我知道段地址:偏移地址在debug下是十六进制的,我不知道(SA+16)*16+0 是怎么变成sa+10:0的
------------------
回复:(SA+16)*16+0 用十六进制表示为:(SA+10H)*10H 此为物理地址!
前面我们学习的时候学过: 物理地址= 段地址*10H+偏移地址
用(段地址:偏移地址)的方式表示SA+10H)*10H 这个物理地址怎么表示?(可以有很多种表示)
如果不会只说明你前面学得不够牢,可以回头复习一下!
455139
[第
4
楼]
[ 回复时间:2009-06-07 09:52 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2009-05-29 14:22
一开始说的SA*16+0这里的16说的是十进制,而后面说的SA+10:0这里说的10则是十六进制,刚开始我也迷了好一段时间,后来听一位大虾说了一下才明白,这就是一个进制的问题。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved