. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第三章检测题  [待解决] 回复[ 10次 ]   点击[ 715次 ]  
chuzubanbianchuang
[帖 主]   [ 发表时间:2009-10-12 09:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-23 15:15
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 

2.下列指令的书写正确的是:__3__ 
 1、  push al 
 2、  mov cs:[0],ds:[10] 
 3、  pop si 
 4、  mov ds:[0],2 

3.在8086CPU系统中一个栈段的容量最大为__3___。 
 1、  1KB 
 2、  512KB 
 3、  64KB 
 4、  32GB 

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

5.若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的

设置是___2__。 
 1、  0000H 
 2、  0001H 
 3、  FFFFH 
 4、  FFFEH 

做错了,第5题应该是错了,但是不知道选什么,大家帮帮忙!
最好能解释一下根据什么选的
eax001
[第1楼]   [ 回复时间:2009-10-12 20:33 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:0
注册日期:2009-10-11 02:23
我也刚在学第三章,这题在课文的问题3.11中有讨论,课文的答案是0000H.你可以去翻翻看.我正在思考中,思路还没理顺!无法给你个人的见解了!
chuzubanbianchuang
[第2楼]   [ 回复时间:2009-10-13 09:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-23 15:15
回复:[第1楼]
------------------
谢谢您的帮助!昨天我看了,可还是没看明白,可能是我太笨了,我在继续看看
eax001
[第3楼]   [ 回复时间:2009-10-13 12:27 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:0
注册日期:2009-10-11 02:23
栈我门要确定其段地址,在此题的段地址是1000H,就是从10000H处的物理地址开始一个栈
10000
10001
.
.
.
1FFFF
总共64M,是一个栈的最大容量
我们需要讨论两个极限,就是满栈和空栈时的情况,毕竟编程中我们需要注意栈是否超栈
栈中只有一个数据时,栈顶是多少?将这唯一的数据出栈后,栈顶又是多少?如何设置才能避免超栈?这只是一个思考方向(注意重点:栈的容量,进出栈后栈顶的改变公式)

我是从这样的思路思考的,希望对你有帮助!
一个人我认为没有笨和聪明的分法,只要你找到了合理清晰的思路,自己就会有自己的看法,自己的理解.人们对事物的理解看法会不一样,但事物的本质是不变的!
努力吧,我也是!
djwdjw
[第4楼]   [ 回复时间:2009-10-15 19:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-14 21:30
既然是整个段都当栈来用,我觉得0000H不合适。
首先,压栈是以字为单位的,两个字节,所以SP的值应该是2的倍数,所以0001H应该不对。
整个段都用作栈的话,SP应尽可能的大,所以FFFE应该差不多。
chuzubanbianchuang
[第5楼]   [ 回复时间:2009-10-19 09:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-23 15:15
谢谢了,这个问题先放下了,先往后学,后面学完我在回过头来好好看下这个问题.
qzzsunlly
[第6楼]   [ 回复时间:2009-10-19 19:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-09-28 22:40
栈空的时候SP指向有一个数据时的下一个字单元,有一个数据时SP=fffeh,下一个单元就加二,得sp=0000h
nigg
[第7楼]   [ 回复时间:2009-11-06 14:12 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:4
注册日期:2009-05-30 22:14
既然是整个段都当栈来用,我觉得0000H不合适。
首先,压栈是以字为单位的,两个字节,所以SP的值应该是2的倍数,所以0001H应该不对。
整个段都用作栈的话,SP应尽可能的大,所以FFFE应该差不多。
------------------
回复:我觉得应该是0000H,第一个放堆栈字应该在0000H上面那个存储字,可偏移已经到顶,应该会自动跳到FFFFH开始存储吧~!存完后指针指向FFFEH.我也是新手,如有高手路过帮忙看看我的思路有没有错
nigg
[第8楼]   [ 回复时间:2009-11-06 14:15 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:4
注册日期:2009-05-30 22:14
对了,你们的书第几版的,我没发现有讨论栈偏移设什么值为最好一说~!
km_ming
[第9楼]   [ 回复时间:2010-02-19 12:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-10 10:52
1
ailesargentees
[第10楼]   [ 回复时间:2010-03-20 18:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-02 17:21
6l's answer seemingly makes sense......
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved