. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的!此题甚是让我迷惑,请对此问题思路清晰的同志给予指点  [待解决] 回复[ 8次 ]   点击[ 546次 ]  
reinhard01
[帖 主]   [ 发表时间: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值!

请同志们为我解惑!
masmaster
[第1楼]   [ 回复时间:2010-08-11 16:02 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
因为栈只能对字操作, 所以, 2,3,是错的。因为sp只能指向偶数地址,栈指针在入栈的时候内存地址空间负增长,所以,1,也是错的。
mess
[第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这个段的。
masmaster
[第3楼]   [ 回复时间:2010-08-12 16:58 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
感谢指出错误~~, 我又德不孤了一下,果然是这样的。
reinhard01
[第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时,通过测试.
所以我的迷惑就是这里!
nice_future
[第5楼]   [ 回复时间:2010-08-16 16:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30
我也选的第一个答案0000H啊,已经通过测试啦!
84404037
[第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
suiyefeng
[第7楼]   [ 回复时间:2010-11-15 15:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-14 22:11
汗啊!!!!!!!!!!!!!!!!!!
我抓狂了,,,,,,,,,
就是这个答案让我回答差不多有5-6次了,,,,,,
现在都要等128小时才能答了.....
我都是选的最后一个,,难怪每次错一个.,....
o(︶︿︶)o 唉
ameteur
[第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。我是这样理解的。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved