|
主题 : : 关于书中P125的一段话 [已解决] |
回复[ 10次 ]
点击[ 746次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-12-22 18:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-17 21:27 |
书中125页图6.1下边有一段话这样写:
图6.1中,通过“DS=0B2D”,可知道程序从0B3D:0000开始存放。……
为什么要通过看DS的值呢???直接看CS、IP不是也可以知道程序从0B3D:0000开始存放吗???
不解书上为什么要这么说?
难道是因为那个PSP吗?
请指教。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-12-28 16:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:33
信誉值:0
注册日期:2008-10-16 10:01 |
楼主说的对,是因为PSP段,它的大小是固定的256个字节。CS:IP只是指向了程序的入口地址,并不一定代表程序的起始地址。
如:
assume cs:code,ds:data
data segment
db 100 dup(0)
data ends
code segment:
db 10 dup(0)
start: mov ax,4c00h
int 21h
code ends
end start
程序加载后,CS:IP指向了start位置,而程序的真正起始地址因该是数据段的起始地址。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-12-28 16:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-17 21:27 |
哦,明白了,CS:IP只是指向了程序的入口地址,并不一定代表程序的起始地址。
程序的其实地址应该是DS+10 。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2009-01-13 15:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-12 12:10 |
|
|
|
|
|
[第4楼]
[ 回复时间:2009-01-19 01:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-10-12 14:20 |
程序中 db 10 dup(0) 是什么意思?____是重复的意思,其中10是要重复10次,括号内是要重复的内容 | | |
|
|
|
|
[第5楼]
[ 回复时间:2009-01-21 15:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-02-02 19:14 |
|
|
|
|
|
[第6楼]
[ 回复时间:2009-02-24 14:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-01-01 11:51 |
|
|
|
|
|
[第7楼]
[ 回复时间:2009-02-27 17:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07 |
psp段是什么?郁闷 ,初学~~~
------------------
回复:循序渐进,等你学到自然就明白了。我记得前言也提到一个叫“知识屏蔽”的概念吧。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2009-03-28 16:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-03-27 20:52 |
用0 来填
dup 5(0)
就是5个0,也就是0,0,0,0,0 | | |
|
|
|
|
[第9楼]
[ 回复时间:2009-03-28 16:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-03-27 20:52 |
回复:[第7楼]
------------------
psp是程序头。。。了解一下就行了。后面会讲到。。。 | | |
|
|
|
|
[第10楼]
[ 回复时间:2009-04-28 17:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-17 21:27 |
此贴由 贴主 于 [ 2009-04-28 17:44 ] 结贴。 结贴原因:问题已解决 | | |