. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  吐血吐血吐血了!!!第3章汇编测试题目是测试题还是脑经急转弯?单选题还是多选题啊???  [待解决] 回复[ 23次 ]   点击[ 1464次 ]  
zhenglxd
[帖 主]   [ 发表时间:2009-04-21 12:24 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
他说我错了一道请问我错在哪道了?他的题目考的是知识点开是考的智力问答啊!!!下面2题中有2道题属于智力问答和脑经急转弯类题而且是多选的!!!

1 若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
0000 或者0001或者 fffe或者ffff ???

分析: 什么叫最合理?我的理解是栈的空间最大化。那么一个栈空间最大化最理想的情况就是一个空栈了,但是这到题里面空栈的的sp不在这个段中。
也就是这道题中栈的最大空间应该是 64Kb-2b了
那么表示这个范围的地址
有2种 10000H~1fffEH 以及 10001H~1ffffH
可见 sp=fffe 或者 sp=ffff答案都是对的
我选择的是ffff,当然也许正确答案是fffe但是 我坚持ffff也是对的。往栈里亚数据是从栈顶往上压的,栈的大小是靠人来控制的 ,2种方式栈的容量是一样大的?
这题是典型的智力问题还是脑经急转弯?什么叫最合理啊?请出题的人自己来解释吧!

2
能够将ax中的内容送到内存0000:0200H处的指令序列是____。
我举2个答案 效果是一样的 我靠 多选题还是单选题啊
  1              mov ax,20h
                     mov ds,ax
                     mov bx,0
                     mov [bx],ax
这道题 将ax中的内容送到内存0000:0200H处,区别在于它制定了ax传送值,但是没有违反题目吧
通用寄存器本来就是让你寄存数据的
2                  mov bx,20h
                     mov ds,bx
                     mov bx,0
                     mov [bx],ax 
这道题也没违反题目吧,其别在于它没有制定ax的值但是以上2个选项都满足了这道选择题
我选择是2
zhenglxd
[第1楼]   [ 回复时间:2009-04-21 12:30 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
第一题 思想不变 但是 值修改下 2种范围是 10000~1fffd 和10001~1fffe 比起最大栈空间少2b
因为他要求 的sp 在可选答案内 不是段内
zhenglxd
[第2楼]   [ 回复时间:2009-04-21 13:41 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
回复:[贴 主]
------------------
第一题 我算搞明白了 原来 0-2会等于fffe
但是这个知识点 王爽的书 根本就没写吧?
还有 [bx]的用法 还有sub等书上都没写
说实话 王爽的书是好书 但是这个论坛的检测题很让人失望
自学计划上说没有通过检测点就不能学习下面的题目
但是你检测点的内容是之后章节才有的,或者书本上都没有的,你这不是玩人么?

还有很明显的让人感觉到 出题目的人 自己的思路都不是很清晰
比如 将ax中的内容送到内存0000:0200H处
内存0000:0200H这个地址 的物理地址是一个内存单元
而ax中存放的是 字单元
16位和8位 怎么可以进行 转移操作呢?

看他的答案 提供的是字传送的答案,但是题目确实模棱两可。
挺失望的。
zhenglxd
[第3楼]   [ 回复时间:2009-04-21 14:05 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
环绕我在书上找到了,没仔细看啊(#>.<#)
zhao129999
[第4楼]   [ 回复时间:2009-05-03 16:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54
你失望什么呀 是你自己没仔细看  这些东西很容易理解的 没到难的时候...  还有你说的那道题  当然是偏移地址最大的时候了 因为放进一个数SP-2 你弄最小减2成多少了
zhao129999
[第5楼]   [ 回复时间:2009-05-03 16:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54
别小看这些题 他能说明你没完全明白堆栈  要是现在都不是很清楚 以后怎么学
zhao129999
[第6楼]   [ 回复时间:2009-05-03 16:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54
你说的第二题..我昏迷 你把AX里的数改了 还传什么???  有意义么
acool
[第7楼]   [ 回复时间:2009-05-04 15:24 ]   [引用]   [回复]   [ top ] 
荣誉值:49
信誉值:0
注册日期:2008-10-15 16:15
楼主有些急躁了啊,要按下心来,看开始几个楼主自己发的帖子时间间隔都不长,却也循序渐进的自己解开了迷惑。遇到问题先不要急于否定别人,要先找自己的原因。(这个好像也不仅仅是做题了,日常做事也是一样;) 网站的题目放在这也不是一天两天了,如果真如楼主说的问题早就有人提出该撤掉了)。
lwbfq
[第8楼]   [ 回复时间:2009-05-06 17:12 ]   [引用]   [回复]   [ top ] 
荣誉值:56
信誉值:0
注册日期:2008-01-19 13:58
我发现楼主的文字充满了抱怨,而实际上呢,根本原因还是自己对知识的理解不深,难道所有的知识点都告诉你吗?你的脑子只是用来记忆的吗?自己不去思考,再多的知识点给你都没用,我看是真该反思一下自己了!
dq051524
[第9楼]   [ 回复时间:2009-12-26 11:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-01-14 11:55
关键还是知识点没掌握,问问题前一定要思考清楚。- -
mxran
[第10楼]   [ 回复时间:2009-12-30 12:09 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-28 19:30
二楼`

俺觉得你根本没仔细看书

你说的那个FFFE问题在69页已经写得很详细了

[BX]的问题你去翻翻48页,仔细看看[]中间的表示的是偏移地址

BX已经被赋予0这个值了,

下面说的你最好再去重读下49页下面3.3字的传送

不是书的问题,是人不够仔细

你真正把书看透,就不会这么说了

以前以为书上老多错的,现在才发现老多都是自己细看~~~
hygf99
[第11楼]   [ 回复时间:2010-01-18 23:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
我现在终于明白了,第一题选FFFE,因为栈是以字类型访问的;一个栈段最大是64K;but,当一个64K的栈为空时,sp应该是10000H,这显然是不行的;所以只能是假设栈里面已经有了一个字,题目里所谓的可能的范围就是FFFE了。
第二题选择第四个答案,不明白的可以去这里看看:http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1004&qkSg=2&qID=15940&readSg=1
bigbigwolf
[第12楼]   [ 回复时间:2010-01-19 11:34 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-01-13 10:56
第一题的答案应该是sp=0。

首先出栈 入栈操作只改变sp,不改变ss的值。

第二,一个栈空间最大为64k,也就是说为0~ffffH这64K的空间,根据书上的知识,初始化栈顶应为ffffH+1=0H(sp用十六位寄存器存放,这个加法的进位舍去)
arcman2009
[第13楼]   [ 回复时间:2010-01-20 19:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-22 15:29
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。 
楼主请注意看题:1000H~ffffH的64KB空间为栈,SP初始值最合理的设置是0000H,任何时候SS:SP都指向栈顶单元,当栈空时,SS:SP指向栈底单元的下一个单元.书上好想是这这样写的,书没在手上记的可能不太清楚~~楼主还是好好看看书吧

至于第二题:你把AX的值都改变了还怎么传递啊
liaoyi7777777
[第14楼]   [ 回复时间:2010-01-22 02:09 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2010-01-22 00:18
我认为最合理的是fffe. 你选0的话。到底是空还是满呢。选fffe就一定是空。既然是讲最合理的,那就不一定是空间最大的。
cwandqd
[第15楼]   [ 回复时间:2010-03-14 11:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-08-02 13:24
0也是对的,但是太不好管理了,如果SP是0那么我先执行的是出栈命令,然后在入栈2次,那么00000H 00001H
1fffeH和1ffffH就都有数据了,不好管理他们的连续性。所以如果是我的话宁可浪费1个Byte空间,也不愿管理上下循环的栈~!
longwenj
[第16楼]   [ 回复时间:2010-03-23 11:18 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2010-03-08 11:21
一个段最大长度为64K,也就是0000H~FFFFH;假设栈不为空且只有一个字的内容,则SP应该等于FFFEH。按照出栈的算法把这个字弹出去,则SP=SP+2=FFFEH+2=(1)0000H,括号中的1已经溢出。但是算出来SP=0就不知道是空栈还是满栈,所以不好处理。我以为最合理的设置就是SP=FFFEH。
longwenj
[第17楼]   [ 回复时间:2010-03-23 11:21 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2010-03-08 11:21
不是浪费1BYTE,要浪费就要浪费2BYTE,因为SP是以字为类型处理的。
flong158
[第18楼]   [ 回复时间:2010-05-09 01:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-08 00:59
栈用形象的解释是一个箱子样,其实就是规定了一个段地址下,移动指针寻找物理地址的一种方法,并没有一个真正的盒子,所以也不存在栈满还是栈空的问题,指针指到了哪儿,是程序设计者自己考虑的事,指到你当初设想的栈空间外面了,是你自己没设计好,电脑不会告诉你说箱子满了,它照指不误。

但这个指针不能无限指,它被段地址限制了,只能在偏移地址的范围内指,当你把整个段都设计成一个栈使用时,栈头和栈尾就开始循环,这个题就是指出这种循环提供一个用法而已,所以正确答案只能是sp=0,如果=FFFE,既与题目的前提相悖,也与王老的用意相背了。
flong158
[第19楼]   [ 回复时间:2010-05-09 01:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-08 00:59
即使ss=1234H,设想用sp从[0000]-[ffff]整个段都作栈时,最合理的sp初始值还是0,呵呵
xshz
[第20楼]   [ 回复时间:2010-09-09 18:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41
满栈时sp= 0000h,
空栈时sp=10000h,因sp是16位的,故此时sp=0000h。

寄存器SP的初始值最合理的设置是0000h。
youminlove
[第21楼]   [ 回复时间:2010-09-22 05:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-30 19:10
嗯,第一题记得在书上有过这种类似的题,好像sp=0
baker
[第22楼]   [ 回复时间:2010-09-30 16:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-13 17:14
把我做的题发出来,看了后得自己想一下为什么要选这个。
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是___1__。 
 1、  0000H      题目中都明说了是空栈了,我们可以把SS设为1000,当有一个元素时,SP=FFFF-1=FFFE,
 2、  0001H      所以空栈中SP=FFFF+1=FFFE+2=0  注意:栈满时SP也等于0,
 3、  FFFFH 
 4、  FFFEH 

在8086CPU系统中一个栈段的容量最大为__3___。 
 1、  1KB          这个不用说明了吧。 2的16次方表示多少就算一个栈大小
 2、  512KB 
 3、  64KB 
 4、  32GB 

能够只将al中的内容压入栈的指令序列是__3___。 
 1、  push al         push指令是字操作指令,要压入al,那么ah就得清零或设为空值
 2、  pop ax 
 3、  mov ah,0 
     push ax 
 4、  mov ax,0 
     push ax 

能够将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        这一题中说是把AX中的内容送出去,也就是表明现在AX中已经有内容了,再用传送
     mov ds,bx          指令给AX会把原AX中的内容覆盖,所以,只要有给AX传送内容的指令都算错。
     mov bx,0 
     mov [bx],ax 

下列指令的书写正确的是:__3__ 
 1、  push al                push用法:push 寄存器    push 段寄存器  push 内存单元
 2、  mov cs:[0],ds:[10]     pop 用法:pop 寄存器     pop 段寄存器    pop  内存单元
 3、  pop si 
 4、  mov ds:[0],2
84404037
[第23楼]   [ 回复时间:2010-10-05 18:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-25 21:54
1 若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。 
0000 或者0001或者 fffe或者ffff ??? 
最合理的应该是空值 就是0000因为如果有一个数值的情况下,就是FFFE。,栈是16位的,所以最合理的也就是最大的,所以是FFFE+2=10000也就是0000

能够将ax中的内容送到内存0000:0200H处的指令序列是____。 
我举2个答案 效果是一样的 我靠 多选题还是单选题啊 
  1              mov ax,20h 
                     mov ds,ax   这是错的。因为他改变了AX的值,我们要传送AX的值。他改变了。
                     mov bx,0 
                     mov [bx],ax 
这道题 将ax中的内容送到内存0000:0200H处,区别在于它制定了ax传送值,但是没有违反题目吧 
通用寄存器本来就是让你寄存数据的 
2                  mov bx,20h 
                     mov ds,bx    这是对的.完成了传送
                     mov bx,0 
                     mov [bx],ax  
这道题也没违反题目吧,其别在于它没有制定ax的值但是以上2个选项都满足了这道选择题 
我选择是2
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved