【王爽-汇编语言】第五章检测题分析

1.

 

 在Intel8086环境下,对指令mov ax,[bx]描述错误的是_____。 (4)
 1、  指令中,源操作数的段地址默认为ds中的内容
 2、  指令中,源操作数的偏移地址为bx中的内容
 3、  指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
 4、  指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)

 

分析:这个指令是将ds:[bx]中的值送到ax中,不对原值进行修改,所以,4错

 

 

2.

 

   
mov cx,5
s: mov ax,[bx]
add bx,2
loop s 

 

上面指令序列,当指令第一次执行到add bx,2时cx的值_____。(1)
 1、  5
 2、  4
 3、  3
 4、  2

 

分析:

只有执行到loop语句时,才会对cx进行修改。

CPU在执行loop s操作时,进行两部操作:

(1) (cx) = (cx)-1

(2) 判断cx的值,如果不为0,则转至s处执行,如果为0,则继续执行下一条指令。      

 

 

3.

 

已知21000h处字单元的内容为 BE00H,对于如下程序: (4)
(1)      mov ax,2000h
(2)      mov ds,ax
(3)      mov bx,1000h
(4)      mov ax,[bx]
(5)      inc bx
(6)      inc bx
(7)      mov [bx],ax
(8)      inc bx
(9)      inc bx
(10)     mov [bx],ax
(11)     inc bx
(12)     mov [bx],al
(13)     inc bx
(14)     mov [bx],al


     程序执行后,内存中字单元2000:1005中的内容为______。
 1、  00
 2、  BE
 3、  00BE
 4、  0000

 

分析:

为了分析方便,程序上加上了行号。

执行到第四行,ds:[1000]中的字节单元值为00  ds:[1001]中的字节单元值为BE

执行到第七行,ds:[1002]中的字节单元值为00  ds:[1003]中的字节单元值为BE 

执行到第十行,ds:[1004]中的字节单元值为00  ds:[1005]中的字节单元值为BE

执行到第十二行,ds:[1005]中的字节单元值为00 

执行到第十四行,ds:[1006]中的字节单元值为00

 

因为是字节单元,所以1不正确,4正确

 

4.

 

要计算123与456的乘积,应填在空白处的指令序列是_____。 (4)
     assume cs:code
     code segment
     ____________
     mov ax,4c00h
     int 21h
     code ends
     end
 1、  mov ax,1
     mov cx,123
     s: add ax,123
     loop s
 2、  mov ax,0
     mov cx,456
     s: add ax,456
     loop s
 3、  mov ax,1
     mov cx,456
     s: add ax,123
     loop s
 4、  mov ax,0
     mov cx,456
     s: add ax,123
     loop s

 

分析:

 

    利用排除法,

选项1是123*123 +1

选项2是456*456

选项3是456*123+1

选项4是456*123,正确

 

5.

 


对于如下程序
     assume cs:code
     code segment
      start:mov ax,code
      mov ds,ax
      mov ax,0020h
      mov es,ax
      mov bx,0
      s:mov al,[bx]
      mov es:[bx],al
      inc bx
      loop s
      mov ax,4c00h
      int 21h
      code ends
     end
     下列说法正确的是______。 (3)
 1、  指令mov ax,code改为mov ax,start对程序要实现的功能没有任何影响。
 2、  程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。
 3、  程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的一段内存空间中。
 4、  程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据将程序的所有指令覆盖。

 

分析:1、code和start的地址不同,错误

         2、第二版第91页,“可以看到,Debug将程序从可执行文件加载入内存后,cx中存放的是程序的长度。”所以,这里的cx可以省略。

         3、正确,这就是程序的功能

         4、正好相反,

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值