汇编网首页登录博客注册
applezlg的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
文章收藏
友情链接

[2010-11-14 11:08] 第三章

一、能够将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明显错误了,不能将立即数送入段寄存器;答案2也不对,将200送入ax,mov ax,ds明显将此时的地址设置为0200:0000,物理地址为2000,和0000:0200的的物理地址不一致;答案3因为题目要求将ax值送入内存,而它一开始就改变了ax的值,所以不对;答案4正确,用bx来暂存数据 

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

解析:答案1错误,因为所谓的段,不过是人为安排的,对于计算机来说,指令和数据没有任何区别,地址可以相同;答案2错误,mov指令,是不情况原寄存器里面的值的;答案3也不对,栈段须有一个段地址,段地址不能变,只有偏移地址可以变,这个大小是有范围的;答案4正确,SP=0时,压榨,SP=SP-2,产生了超界  

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

解析:答案1错误,压堆指令一次性操作一个字;答案2错误,内存空间之间不能互相传送;答案3正确;答案4错误,不能将立即数送入内存空间 

四、能够只将al中的内容压入栈的指令序列是  3 。 
1、  push al 
2、  pop ax 
3、  mov ah,0 
         push ax 
4、  mov ax,0 
         push ax 

解析:答案1错误,push操作单位是字;答案2错误,题目要求的是入堆;答案3正确,先将ah清零,然后压入ax可以达到目的;答案4错误,将ax清空,然后压入,等于压入的是0 

五、若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是 1 。 
1、  0000H 
2、  0001H 
3、  FFFFH 
4、  FFFEH 

解析:以1000H为段地址的整个段空间,偏移地址为0-FFFFH,当栈中只有1个字时,偏移地址是FFFEH,当栈为空时,SP=SP+2=FFFF+2=0000,所以选择1  

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

解析:由于8086CPU寄存器只有16位,而SP等寄存器最大变化范围就只能为0~FFFFH,即64KB了…不仅仅是栈段,所有的8086CPU里面的段都不能超越64KB
评论次数(0)  |  浏览次数(1062)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码