|
主题 : : <<<<<<<<<<求助>>>>>>>>>第三章检测题 知道自己的错了,概念有2个不确定的~ [已解决] |
回复[ 5次 ]
点击[ 393次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-03-09 00:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:38
信誉值:22
注册日期:2010-03-05 20:41 |
1.能够将ax中的内容送到内存0000:0200H处的指令序列是_4___。
1、 mov ds,0
mov bx,200h
mov [bx],ax
2、 mov ax,200h
mov ds,ax
mov bx,0
mov [bx],ax
3、 mov ax,20h
mov ds,ax
mov bx,0
mov [bx],ax
4、 mov bx,20h
mov ds,bx
mov bx,0
mov [bx],ax
第三个选择,是否是因为第一条指令更改了ax中的值,所以它是错误的?
2.若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的
设置是___1__。
1、 0000H
2、 0001H
3、 FFFFH
4、 FFFEH
我觉得是0000,因为如果2、3是不可能出现的(以字为单位),4的话,如果第一个就是push,那岂不是直接就超栈了?所以最合理的是0000.
3.下列指令的书写正确的是:__4__
1、 push al
2、 mov cs:[0],ds:[10]
3、 pop si
4、 mov ds:[0],2
1是因为位数不对,2是因为ds:【10】(10应该是a H)。
3是因为si没......
我傻了,si是个寄存器,我晕菜 | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-03-09 11:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46 |
“第三个选择,是否是因为第一条指令更改了ax中的值,所以它是错误的?”:楼主正确;
我认为SP的初始值最合理的值应该是0fffeh;尽管和使用0000h相比少用一个字,但通过sp是否为零判断是否栈满最方便;
第3题指令的书写正确的应该是3(pop si),而4 (mov ds:[0],2)编译程序弄不清是写入字节0(00h)还是写入字0(0000h)。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-03-09 13:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:38
信誉值:22
注册日期:2010-03-05 20:41 |
在网站的检测题里,选项1 (0000H)是正确的......
在书61页3.8栈顶超界的问题中有这样写到:
前提是执行PUSH指令,
将100010-1001F当做栈空间,该栈空间容量为16字节(8字),初始状态为空,SS=1000,SP=0020,SS:SP指向10020
我想按照书中的推论,将10000-1ffff当做栈空间,初始状态为空时,SS=1000,SP=FFFE,SS:SP=0000(10000).
而在执行POP指令时,书中这样描述:
将10010-1001FH当做栈空间,该栈空间容量为16字节(8字),当前状态为满,SS=1000,SP=0010,SS:SP=10010H
按书中推论,将10000-1ffff当做栈空间,初始状态为满时,SS=1000,SP=0000(10000),SS:SP=10000。
所以我想0000是最合理的~
不知道我的想法对否= = | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-03-09 20:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46 |
楼主通过比对,结论是正确的;我也认为,如果不检堆栈状态,当然sp的初值为0000h是“最合理的”,但如果要检测堆栈状态,sp初值为零就不好区分空栈还是满栈,所以“牺牲”一个字节,能很经济地通过判断sp是否为零,得到是否满栈的信息。如果这样考虑,sp的初值为0fffeh应该“更合理些”。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-03-09 20:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:38
信誉值:22
注册日期:2010-03-05 20:41 |
恩,可能是您更多的从实际应用上出发吧,也能理解SP=FFFE的好处
反正在网站上这道题的答案就是0000是没错了~ | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-03-09 20:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:38
信誉值:22
注册日期:2010-03-05 20:41 |
此贴由 贴主 于 [ 2010-03-09 20:57 ] 结贴。 结贴原因:问题已解决 | | |