|
主题 : : 以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的!此题甚是让我迷惑,请对此问题思路清晰的同志给予指点 [待解决] |
回复[ 8次 ]
点击[ 546次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-08-11 11:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:0
注册日期:2010-06-25 13:33 |
1、 0000H
2、 0001H
3、 FFFFH
4、 FFFEH
按书上所说,当栈为空时 sp=0,但很明显,如果我选择0000h,此题会判定我回答错误,正确答案为fffeh,这个是栈内已压入一个字型数据的sp值!
请同志们为我解惑! | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-08-11 16:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
因为栈只能对字操作, 所以, 2,3,是错的。因为sp只能指向偶数地址,栈指针在入栈的时候内存地址空间负增长,所以,1,也是错的。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-08-12 10:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
当栈为空时 sp=0,但很明显,如果我选择0000h,此题会判定我回答错误,
-----------
这个题就是1。
fffeh,这个是栈内已压入一个字型数据的sp值!
--------
对,所以sp的初值为fffeH+2=10000h,高位1在sp中存不下,所以sp=0;
为栈只能对字操作, 所以, 2,3,是错的。
--------------
虽然栈是对字操作的,但并不是说sp不能为奇数,可以通过实验验证。对于这个题,如果sp为奇数,可能是不能完全访问1000H这个段的。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-08-12 16:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
感谢指出错误~~, 我又德不孤了一下,果然是这样的。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-08-16 14:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:0
注册日期:2010-06-25 13:33 |
当栈为空时 sp=0,但很明显,如果我选择0000h,此题会判定我回答错误,
-----------
这个题就是1。
fffeh,这个是栈内已压入一个字型数据的sp值!
--------
对,所以sp的初值为fffeH+2=10000h,高位1在sp中存不下,所以sp=0;
为栈只能对字操作, 所以, 2,3,是错的。
--------------
虽然栈是对字操作的,但并不是说sp不能为奇数,可以通过实验验证。对于这个题,如果sp为奇数,可能是不能完全访问1000H这个段的。
------------------
回复:
当时我选答案1时,总是判定我错了1题,当我选FFFEH时,通过测试.
所以我的迷惑就是这里! | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-08-16 16:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30 |
|
|
|
|
|
[第6楼]
[ 回复时间:2010-10-05 18:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-09-25 21:54 |
以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的!此题甚是让我迷惑,请对此问题思路清晰的同志给予指点
那么SS就是1000H。 SP就是FFFF。如果里面有一个数值就是在FFFE和FFFF中。最合理也就是最大的也就是空的。
FFFE+2=10000他是16位的,所以是0000 | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-11-15 15:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-09-14 22:11 |
汗啊!!!!!!!!!!!!!!!!!!
我抓狂了,,,,,,,,,
就是这个答案让我回答差不多有5-6次了,,,,,,
现在都要等128小时才能答了.....
我都是选的最后一个,,难怪每次错一个.,....
o(︶︿︶)o 唉 | | |
|
|
|
|
[第8楼]
[ 回复时间:2011-08-16 09:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-04 16:35 |
请参见《汇编语言》60页,栈空的状态,当栈为空的时候,我们做的操作就是入栈,我们知道入栈的第一步是:SP-2,如果我们选FFFEH,那么SP-2=FFFCh,了,如果是0 SP-2=FFFEh,这样,入栈才能完成,如果是SP=FFFEH,那么,最终的结果是FFFE这个字型,是0。我是这样理解的。 | | |