. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  3章检测题。  [已解决] 回复[ 5次 ]   点击[ 1010次 ]  
gocker
[帖 主]   [ 发表时间:2008-01-29 00:37 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是__4___。  
 1、 0000H  
 2、 0001H  
 3、 FFFFH  
 4、 FFFEH  
---
这道题答案没把握,每次入栈SP-2,FFFE是偶数,才能减为SP为0,所以FFFF没利用到,栈最大为64K,10000H。
书上说,栈最大为64K,那么SP=0000才是合理。FFFF减到最后不是1就是-1,是排除。但是SP=0000,不就是栈空吗,所以我说是FFFEH
---
下列说法正确的是:__4__  
 1、 数据段和代码段的段地址不能相同。  
 2、 指令mov ax,bx执行完后bx中的值为零。  
 3、 一个栈段的大小可以设为任意值。  
 4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。  
----
1书上明说可以。
2,BX值给你AX了,可BX可没说MOV BX,0。错。
3,栈大小,最大64K,书上有说。
所以答案选四,但实际上我也不知道是不是对得。
----
能够将ax中的内容送到内存0000:0200H处的指令序列是__3__。  
 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  
---
1,直接给DS赋值,错。
2,按他们这么来,不是0000:0200而是0000:2000
3,比较符合我的理解
4,AX看到有赋值。
---
下列指令的书写正确的是:__2__  
 1、 push al  
 2、 mov cs:[0],ds:[10]  
 3、 pop si  
 4、 mov ds:[0],2  
---
1,栈是字操作,即只能操作16位数据,8位不行,错
2,符合我的理解,没错。
3,不知道作者怎么想的第3章好像还没讲到SI,但理解上没错。
4,貌似也没错。所以我怀疑这个是不是问哪条指令是错的。
---
能够只将al中的内容压入栈的指令序列是__3___。  
 1、 push al  
 2、 pop ax  
 3、 mov ah,0  
    push ax  
 4、 mov ax,0  
    push ax  
---
1,指令错误。
2,指令没错,但不符合要求。
3,把高位抹去,再把AX整个入栈。意思上应该对了
4,AX都被你清空了入栈没意义,错/。
---



PS:我 做的题目和上面又一题不同。但4题i样,但后来,却说2道错误。
gocker
[第1楼]   [ 回复时间:2008-01-29 00:41 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
第2题我找到了证据。
P63
倒数16行(代码不算行数)
“注意”那里。SP是先减2才操作数据的。SP为0,不一定是数据执行前。,假设命令执行中 。SP一样为0但 入栈动作却还没执行 ,当前入栈有效
*** 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。 ***
mouse
[第2楼]   [ 回复时间:2008-01-29 07:48 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是__4___。   
 1、 0000H   
 2、 0001H   
 3、 FFFFH   
 4、 FFFEH   
--- 
这道题答案没把握,每次入栈SP-2,FFFE是偶数,才能减为SP为0,所以FFFF没利用到,栈最大为64K,10000H。 
书上说,栈最大为64K,那么SP=0000才是合理。FFFF减到最后不是1就是-1,是排除。但是SP=0000,不就是栈空吗,所以我说是FFFEH 
--- 
这个题有问题。
每次入栈SP-2,FFFE是偶数,才能减为SP为0
=====
这个我认同,只有栈顶指向偶数地址才能利用到起始地址是0的内存空间。但从栈的本质来说,栈顶地址奇数偶数都可以(他的本质操作就在push和pop里面,对sp+-2和对内存空间的操作,sp指向奇偶地址对操作没有影响),不过我们一般都将其指向偶数内存地址。

书上说,栈最大为64K,那么SP=0000才是合理。
=======
正确。

但是SP=0000,不就是栈空吗
=======
栈的空满只是人为规定的概念,计算机只会按照push和pop的操作步骤来完成指令,也就是说当sp=0且是满的状态时,咱们进行push操作的时候仍然可以(不过这样会出现问题,所以有了一个概念,来避免这样的错误)。
这个问题在楼主的补充回答中就有提到。

正确答案呼之欲出啊;)
mouse
[第3楼]   [ 回复时间:2008-01-29 07:53 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
能够将ax中的内容送到内存0000:0200H处的指令序列是__3__。   
--------
这个题在比较一下3和4两个题支,可要仔细啊,我就在这个题上栽倒过一回:-)
gocker
[第4楼]   [ 回复时间:2008-01-29 22:24 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
从别人的分析里看到,应该选择四,这样才使得AX的值是我们需要的!
gocker
[第5楼]   [ 回复时间:2008-01-31 17:14 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
此贴由 贴主 于 [ 2008-01-31 17:14 ] 结贴。 结贴原因:问题已解决
得分情况: 3楼(mouse):8分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved