. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第三关,对了四道  [待解决] 回复[ 7次 ]   点击[ 1174次 ]  
gocker
[帖 主]   [ 发表时间:2008-01-29 23:01 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
能够将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传的值的真是性,不内给AX赋值,所以,3错了
  

若将以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 
---  
各方面总结后,觉得这题最可能是我错的地方。也许是3.
---

  

下列指令的书写正确的是:__3__ 
 1、 push al 
 2、 mov cs:[0],ds:[10] 
 3、 pop si 
 4、 mov ds:[0],2 
----
第二个听说不能内存单元直接给内存单元赋值,错。
第三个挑出的唯一毛病时,王老师,SI这个寄存器第三章还没讲的。
第四个,直接给内存单元赋值,感觉似乎具有不确定性,无法确定数据是否合法。貌似好像都需要寄存器。所以觉得是错的。
----


下列说法正确的是:__4__ 
 1、 数据段和代码段的段地址不能相同。 
 2、 指令mov ax,bx执行完后bx中的值为零。 
 3、 一个栈段的大小可以设为任意值。 
 4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。 
---
SS:SP始终指向栈顶,为0时,表示栈空余空间为0.但压栈照样有效果!
 


能够只将al中的内容压入栈的指令序列是__3___。 
 1、 push al 
 2、 pop ax 
 3、 mov ah,0 
    push ax 
 4、 mov ax,0 
    push ax 
-----
栈操作是字操作,一次操作2个字节入栈或出栈。1,错。
2把AH的值给压入栈了。所以错
4就特有味道了,整个清0.所以应该也不对。
3确实把AL送入栈,但也不能说他AH就没入栈。。。但貌似他最像正确答案!

PS:错德太多了,估计要等32小时才能再答题了!
gocker
[第1楼]   [ 回复时间:2008-01-29 23:08 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
最新思路。
可能第2题答案是0001H
----
管他SP是否为0.压栈一样有效果。CPU也没阻止你··那么
SP为0000一样能行,那么答案可能是1

--**--**--
好嘛,1.2.3.4我都答上一遍了~
gocker
[第2楼]   [ 回复时间:2008-01-29 23:21 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
刚想到的。虽然最后SP=0才能判断满,而每次-/+2
但实际上,单元个是单数···我们定义栈时,无论如何,除去0外,设定的值在保证最后SP为零,实际上,第【0】栈根本没有利用到。应为栈操作的单元时SS:SP指向向的单元SP和SP-1
当操作到[2]时,SP-2=0而操作的单元是[2][1]【0】单元没用到。
把栈顶设置成0,一样可以用,第一次操作后,SS:FFFF和SS:0被操作了。
所以答案是:1
gocker
[第3楼]   [ 回复时间:2008-01-29 23:22 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
00
        01
        02
        03
        04
        05
        06
        07
        08
        09
        0a
        0b
        0c
        0d
        0e
        0f
        10
十个栈空间,设SP=10大家压栈8次看下··是不是00单再外面!
yhwhxh
[第4楼]   [ 回复时间:2008-08-02 11:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-31 09:43
当sp指向2的时候,如果再push操作,操作的单元应该是[1]和[0]吧,我认为是这样的:sp所指向的都是已经占据的,如果再push操作那就是再减去2个值,所以我认为是[1][0],不知道大家觉得如何?
zhao129999
[第5楼]   [ 回复时间:2009-05-03 20:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54
SP=0000 他的栈比较大  FFFE+2 就是0000 书上的栈小 +2是0010   答案 4 1 3 4 3
zhao129999
[第6楼]   [ 回复时间:2009-05-03 20:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54
选FFFE 有什么意义 为什么栈里要有一个数据... 他问的肯定是栈空的情况下SP=几
njutyangxiao
[第7楼]   [ 回复时间:2009-08-19 09:37 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2009-08-16 13:20
看了三楼的终于明白了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved