. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
第一个程序
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
86页第三个图有不明之处,恳请高手指点。
[待解决]
回复[
7
次 ] 点击[
611
次 ]
leeyeye
[帖 主]
[ 发表时间:2008-05-19 15:20 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:4
注册日期:2008-02-23 16:11
按照第一张图所说,从SA:0000处开始往下256个字节内,即为PSP。而第三张图说从第256个字节出开始装入程序,那么程序的地址应该为SA:256H才对啊,为什么是SA:10H??
xiaoqiang
[第
1
楼]
[ 回复时间:2008-05-20 10:55 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:35
信誉值:0
注册日期:2007-12-05 09:08
书上写的是 :
从这段内存区的256字节处开始(在PSP的后面),将程序装入,程序的地址被设为SA+10H:0
你看的是不是电子版,估计是电子版的问题。
leeyeye
[第
2
楼]
[ 回复时间:2008-05-20 17:42 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:4
注册日期:2008-02-23 16:11
多谢xiaoqiang,我是看书的,而且还是第二版,可能是我理解的不好。
lmyycx
[第
3
楼]
[ 回复时间:2008-05-22 06:06 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:2
信誉值:0
注册日期:2008-05-08 23:42
我理解的是256字节的地址是0-255 而256 是个十进制数 你说的sa:256肯定是错的 按你说的应当是sa:ffh 记住ffh是0-255的255的十六进制数,而真正的程序是从ffh+1处开始的(换成十进制的说法就是255+1处开始的)。根据物理地址=段地址*16+偏移地址 那么这个问题中的程序的地址=sa*16+100h,因为ffh+1=100h是十六进制数,或者=(sa+10)*16+0,因为物理地址的表示可以有多种方式,比如sa=0000,那么sa+10=0010,再*16,就是后面再加个0,即(sa+10)*16+0000=00100, 而0000*16=00000,再加上100,也=00100,说白了,就是00100+0=00000+100.(其实书上有很多的讲解,你再认真的看看。)
以上的理解不知对不对
black
[第
4
楼]
[ 回复时间:2008-05-23 16:37 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:37
信誉值:0
注册日期:2008-01-29 18:06
看书要认真啊
shiweifu
[第
5
楼]
[ 回复时间:2008-06-08 18:04 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-06-08 18:02
他说的是物理地址相差256个字节
而那个+10是段地址
段地址+10再乘以16
=16*16
最后是256
goal00001111
[第
6
楼]
[ 回复时间:2008-06-22 13:33 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:3
信誉值:9
注册日期:2007-10-19 10:16
3楼非常正确
goal00001111
[第
7
楼]
[ 回复时间:2008-06-22 13:37 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:3
信誉值:9
注册日期:2007-10-19 10:16
楼主描述错误
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved