. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
我总觉这题出的不严密,大家看一看。急哭了都。
[已解决]
回复[
3
次 ] 点击[
350
次 ]
wsay666
[帖 主]
[ 发表时间:2009-06-29 11:48 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:1
信誉值:8
注册日期:2009-06-27 18:30
下列说法正确的是:__4__
1、 数据段和代码段的段地址不能相同。
2、 指令mov ax,bx执行完后bx中的值为零。
3、 一个栈段的大小可以设为任意值。
4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。
大家都说答案是4,但我总搞不懂啊。如果栈段设的是64K大小的话,SP为0的话,再次压栈SP=SP+2=fffeh 不就内循了吗?这是可以的呀,并没超界啊?
tsembrace
[第
1
楼]
[ 回复时间:2009-06-29 12:54 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:31
信誉值:3
注册日期:2009-06-15 19:20
1-2-3错误都比较明显了。。
4、sp=0时候压栈为push操作,先sp=sp-2,再将push操作数存入sp=0的前一字单元。此时已经超界,但操作有效,即前一字单元已经存入指定数。
younggay
[第
2
楼]
[ 回复时间:2009-06-29 13:23 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23
如果栈段设的是64K大小的话,SP为0的话,再次压栈SP=SP+2=fffeh 不就内循了吗?
==================
对。
这是可以的呀,并没超界啊?
============
超出了你本来正确定义的范畴了,循环虽然不会引发系统错误,但是会覆盖掉一些数据。其实这种行为就是越界行为,只不过没有进行判断,让他回绕了,回绕有可能造成程序的错误。
wsay666
[第
3
楼]
[ 回复时间:2009-06-29 21:53 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:1
信誉值:8
注册日期:2009-06-27 18:30
此贴由 贴主 于 [ 2009-06-29 21:53 ] 结贴。 结贴原因:问题已解决
得分情况: 2楼(younggay):4分
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved