. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第3章的一道选择题  [待解决] 回复[ 7次 ]   点击[ 537次 ]  
inuyashall
[帖 主]   [ 发表时间:2009-08-05 18:40 ]   [引用]   [回复]   [ top ] 
荣誉值:9
信誉值:1
注册日期:2009-05-09 14:55
刚看到http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1004&qkSg=2&qID=9687&readSg=1已经有网友讨论了,但好像这个问题还是没有讨论清楚。

下列说法正确的是:____ 
 1、  数据段和代码段的段地址不能相同。 
我的理解:错误。mov ax,cs  mov ds,ax 就可以使数据段和代码段的段地址相同。在内存中,数据和代码并没有区别,都是以数据的形式存储的,CS:IP指向的就是代码了。

 2、  指令mov ax,bx执行完后bx中的值为零。 
我的理解:错误。此处不知道bx中存储的数据是多少,所以无法判断执行完后bx中的值是多少。猜测此题大致想说bx中的值赋给ax后,bx中就没有了,就成为0了。

 3、  一个栈段的大小可以设为任意值。 
我的理解:错误。栈顶范围0~ffffh,所以栈段的容量最大为64KB

 4、  当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。 
我的理解:最初的想法是,空栈时SP也可以为0(第二版,P68问题3.11),压栈后根本不会出现栈顶超界的问题,此选项错误。但再一看题目,“再次压栈”,表明之前已经进行过压栈操作了,所以栈不会是空的,所以再次压栈就会造成栈顶超界,但我不明白为什么“但压栈操作有效”,望高人指教。


我还没过第3章,估计这题的答案可能是选项4.
我觉得这题出的挺偏,颇有咬文嚼字之感,让我想起了高中应试下的枯燥题海。个人很讨厌此类题型,第2章也发现有此类偏题,小失望,希望题库也能不断更新和升级,能够配得上王爽老师的教材!
jellyyang
[第1楼]   [ 回复时间:2009-08-06 00:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-08-03 09:48
我是这样认为的:
SP=0000H,这时SP指向当前段的内存地址最小值,并且SS没有改变,这时压栈的话只能覆盖当前栈段的最后两个内存地址里的信息,所以操作还是算有效的。
zcouyangpeng
[第2楼]   [ 回复时间:2009-08-06 07:32 ]   [引用]   [回复]   [ top ] 
荣誉值:35
信誉值:44
注册日期:2008-09-03 21:36
当然有效果。你看看什么时候push ax 这种指令不能执行?

呵呵,后半句的意思就是 push指令的执行与 堆栈大小 无关;不会出现什么 no command 那样的提示
buer
[第3楼]   [ 回复时间:2009-10-02 12:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-07-06 18:18
栈本来就是编程的一种规划而已。
并不是真的有个什么东西在限制。
hdming88
[第4楼]   [ 回复时间:2009-10-02 15:10 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:8
注册日期:2009-09-30 22:35
1、  数据段和代码段的段地址不能相同。  
我的理解:错误。mov ax,cs  mov ds,ax 就可以使数据段和代码段的段地址相同。在内存中,数据和代码并没有区别,都是以数据的形式存储的,CS:IP指向的就是代码了。 


我觉得数据段包含代码段,这样它们当然就可以相同了。
另外,第四个问题,它的sp=0,那么入栈一个为fffeh,再入一个fffch,这样必须要把这么多的压入,才会有超界的情况。
200710510125
[第5楼]   [ 回复时间:2009-10-14 16:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-14 16:10
答案是4喽,书上不是有讲到嘛。孩子上课认真点
qzzsunlly
[第6楼]   [ 回复时间:2009-10-15 11:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-09-28 22:40
再次压栈就会覆盖原有数据
lxyraul
[第7楼]   [ 回复时间:2009-11-24 22:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-17 18:18
楼上正解,而SS不变 SP改变会造成 栈顶超出部分覆盖“栈底”的数据。 成环状了,对不对啊 楼下的?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved