|
主题 : : 吐血吐血吐血了!!!第3章汇编测试题目是测试题还是脑经急转弯?单选题还是多选题啊??? [待解决] |
回复[ 23次 ]
点击[ 1464次 ] | |
|
|
|
|
[帖 主]
[ 发表时间: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 | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-04-21 12:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05 |
第一题 思想不变 但是 值修改下 2种范围是 10000~1fffd 和10001~1fffe 比起最大栈空间少2b
因为他要求 的sp 在可选答案内 不是段内 | | |
|
|
|
|
[第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位 怎么可以进行 转移操作呢?
看他的答案 提供的是字传送的答案,但是题目确实模棱两可。
挺失望的。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2009-04-21 14:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05 |
|
|
|
|
|
[第4楼]
[ 回复时间:2009-05-03 16:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54 |
你失望什么呀 是你自己没仔细看 这些东西很容易理解的 没到难的时候... 还有你说的那道题 当然是偏移地址最大的时候了 因为放进一个数SP-2 你弄最小减2成多少了 | | |
|
|
|
|
[第5楼]
[ 回复时间:2009-05-03 16:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54 |
别小看这些题 他能说明你没完全明白堆栈 要是现在都不是很清楚 以后怎么学 | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-05-03 16:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-02 11:54 |
你说的第二题..我昏迷 你把AX里的数改了 还传什么??? 有意义么 | | |
|
|
|
|
[第7楼]
[ 回复时间:2009-05-04 15:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:49
信誉值:0
注册日期:2008-10-15 16:15 |
楼主有些急躁了啊,要按下心来,看开始几个楼主自己发的帖子时间间隔都不长,却也循序渐进的自己解开了迷惑。遇到问题先不要急于否定别人,要先找自己的原因。(这个好像也不仅仅是做题了,日常做事也是一样;) 网站的题目放在这也不是一天两天了,如果真如楼主说的问题早就有人提出该撤掉了)。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2009-05-06 17:12 ]
[引用]
[回复]
[ top ] | |
荣誉值:56
信誉值:0
注册日期:2008-01-19 13:58 |
我发现楼主的文字充满了抱怨,而实际上呢,根本原因还是自己对知识的理解不深,难道所有的知识点都告诉你吗?你的脑子只是用来记忆的吗?自己不去思考,再多的知识点给你都没用,我看是真该反思一下自己了! | | |
|
|
|
|
[第9楼]
[ 回复时间:2009-12-26 11:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-01-14 11:55 |
关键还是知识点没掌握,问问题前一定要思考清楚。- - | | |
|
|
|
|
[第10楼]
[ 回复时间:2009-12-30 12:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-12-28 19:30 |
二楼`
俺觉得你根本没仔细看书
你说的那个FFFE问题在69页已经写得很详细了
[BX]的问题你去翻翻48页,仔细看看[]中间的表示的是偏移地址
BX已经被赋予0这个值了,
下面说的你最好再去重读下49页下面3.3字的传送
不是书的问题,是人不够仔细
你真正把书看透,就不会这么说了
以前以为书上老多错的,现在才发现老多都是自己细看~~~ | | |
|
|
|
|
[第11楼]
[ 回复时间:2010-01-18 23:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41 |
|
|
|
|
|
[第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用十六位寄存器存放,这个加法的进位舍去) | | |
|
|
|
|
[第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的值都改变了还怎么传递啊 | | |
|
|
|
|
[第14楼]
[ 回复时间:2010-01-22 02:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2010-01-22 00:18 |
我认为最合理的是fffe. 你选0的话。到底是空还是满呢。选fffe就一定是空。既然是讲最合理的,那就不一定是空间最大的。 | | |
|
|
|
|
[第15楼]
[ 回复时间:2010-03-14 11:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-02 13:24 |
0也是对的,但是太不好管理了,如果SP是0那么我先执行的是出栈命令,然后在入栈2次,那么00000H 00001H
1fffeH和1ffffH就都有数据了,不好管理他们的连续性。所以如果是我的话宁可浪费1个Byte空间,也不愿管理上下循环的栈~! | | |
|
|
|
|
[第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。 | | |
|
|
|
|
[第17楼]
[ 回复时间:2010-03-23 11:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2010-03-08 11:21 |
不是浪费1BYTE,要浪费就要浪费2BYTE,因为SP是以字为类型处理的。 | | |
|
|
|
|
[第18楼]
[ 回复时间:2010-05-09 01:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-08 00:59 |
栈用形象的解释是一个箱子样,其实就是规定了一个段地址下,移动指针寻找物理地址的一种方法,并没有一个真正的盒子,所以也不存在栈满还是栈空的问题,指针指到了哪儿,是程序设计者自己考虑的事,指到你当初设想的栈空间外面了,是你自己没设计好,电脑不会告诉你说箱子满了,它照指不误。
但这个指针不能无限指,它被段地址限制了,只能在偏移地址的范围内指,当你把整个段都设计成一个栈使用时,栈头和栈尾就开始循环,这个题就是指出这种循环提供一个用法而已,所以正确答案只能是sp=0,如果=FFFE,既与题目的前提相悖,也与王老的用意相背了。 | | |
|
|
|
|
[第19楼]
[ 回复时间:2010-05-09 01:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-08 00:59 |
即使ss=1234H,设想用sp从[0000]-[ffff]整个段都作栈时,最合理的sp初始值还是0,呵呵 | | |
|
|
|
|
[第20楼]
[ 回复时间:2010-09-09 18:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41 |
满栈时sp= 0000h,
空栈时sp=10000h,因sp是16位的,故此时sp=0000h。
寄存器SP的初始值最合理的设置是0000h。 | | |
|
|
|
|
[第21楼]
[ 回复时间:2010-09-22 05:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-30 19:10 |
嗯,第一题记得在书上有过这种类似的题,好像sp=0 | | |
|
|
|
|
[第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 | | |
|
|
|
|
[第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
2
能够将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 | | |