汇编习题

原文地址:汇编习题作者:依然

.选择题

1、通常说计算机的内存为32M64M128M指的是:(c)
A.RAM
的容量  B.ROM的容量  C.RAMROM的容量  D.硬盘的容量  
2.
汇编语言的优点不包括__d___  
A
直接有效地控制硬件  B生成的代码序列短小

C运行速度快           编程容易

3 十六进制数88H,可表示成下面几种形式,请找出错误的表示(d   )。  
A.
无符号十进制数136            B.带符号十进制数-120     

C.压缩型BCD码十进制数88      D.   8位二进制数-8的补码表示

4 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(b  
A
AXBXCXDX       BBXBPSIDI    

CSPIPBPDX         DCSDSESSS           
5
可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是(  )。
A.AX
BXCXDX    B.DSESCSSS   

C.SPBPIPBX      D.SIDIBPBX

6.当运行结果为0时,ZF____b______  
A      B 1      C
任意   D 不影响  

7某次求和结果最高位为1,则SF____b______  
         C
任意    D不影响

8DS5788H,偏移地址为94H,该字节的物理地址_____c________
A 57974H    B 5883H    57914H    58ECH

9. “MOV   AX,[BP+DI]”指令从_____b_____段取出数据送AX
A CS      B SS    C DS   D ES

10.下面不能用于寄存器寻址的寄存器有(    
A. CS   B. AX    C IP    D SI   E. CL   F. SP

11存储器寻址方式在指令中给出操作数在内存中的地址,该地址是(c)
A
逻辑地址    B.有效地址     C偏移地址    D.物理地址  E.段地址

12.堆栈的操作原则是________b_____  
A
先进先出      B后进先出   C后进后出   D循环
13 “MOV SP,3210H”
“PUSH AX”指令执行后,SP寄存器值是_c___
3211H    B 320EH  C 320FH     D 3212H     
14
假设当前SP700H,执行pop   ax指令后,SP内容变为__d___
6FEH    B 6FFH   701H   D 702H

15用一条指令实现将AX←BX+SI的方法是__d____  
A XCHG   AX,[BX][SI]     B MOV   AX,[BX][SI]  

MOV  AX,[BX+SI]      D LEA   AX,[BX][SI]  

16.AX1000HBX2000H,则在执行了指令“SUB AX, BX”后,

标志位CFZF的值分别为________c_____  
A 0
   0   C 1    D1 

17.DH=10H,执行NEG   DH指令后,正确的结果是     )
A.DH=10H CF=1  B.DH=0F0H CF=0

C.DH=10H CF=0  D.DH=0F0H CF=1

18.  IMUL   CL指令实现__a____功能  
A
有符号乘法:AX←AL×CL   无符号乘法:AX←AL×CL

C有符号乘法:DX←AL×CL   D无符号乘法:DX←AL×CL

19.   执行除法指令后,影响的标志位是___a___  
A
所有状态标志都不确定 B CF OF  C SFZF D AFPF

20.下列4条指令中,有___a___条指令需要使用DX寄存器
MUL   BX
IDIV   BLIN   AX,20HOUT   21H,AL
A 1              4

21.执行下面指令序列后,结果是          )
MOV   AL
82H           
CBW           
A
AX=0FF82H   BAX=8082H  CAX=0082H   DAX=0F82H

22. 执行AND   AL,80H后,可以肯定的执行结果是AL寄存器的__c_
A
最高位为    B 最高位为    C7位均为0    D 7位均为1

23.指令_a__实现对AX当中D15D0位设置为0,其他位不变的功能。
A AND   AX,7FFEH    B OR   AX,8001H  

C XOR   AX,8001H    D NOT   AX

24.指令__b___实现对AX当中D15D0位设置为1,其他位不变的功能。
A AND   AX,7FFEH    B OR   AX,8001H 

XOR   AX,8001H   D NOT   AX

25.执行OR   AL,80H后,可以肯定的执行结果是AL寄存器的__b____
最高位为    B最高位为1    C7位均为    D7位均为1

26.指令______c____实现对AX当中D15D0位求反,其他位不变的功能。
A AND   AX,7FFEH     B OR   AX,8001H 

  XOR   AX,8001H   D NOT   AX

27AX1000H  
            NEG   AX  
            NOT   AX  
执行上述指令后,AX__b____  
A 1001H  B 0FFFH   1000H    D 0111H
28.
下列指令中,执行后对标志未发生影响的是__a____
MOV  AX,[BX]   B ADD  AX,0FFHH 

C AND   AX,[BX]    D TEST AX,0FFHH

29.执行“SAR   BX,1”指令后,BX最高D15位等于___d_______
A 0      B 1   D0   D14

30.对寄存器AX的内容乘以2的指令是__b____
A SHR   AX,1     B SHL   AX,1  

C ROR   AX,1    D  RCR   AX,1

31 8086/8088CPU的条件转移指令Jcc采用____a______地址寻址方式。
A相对          B直接   寄存器间接  D存储器间接

32.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有d )
A
CMP    BSUB    CAND       DMOV

33当标志CF1时转移到目的地址的条件转移指令是____a__
A JC        B JNC     JZ      D JNZ

34条件转移指令JA产生程序转移的条件是__b____
CF
0ZF   B CF0ZF0   CF1ZF D CF1ZF0

35.循环指令LOOPNZ继续循环的条件是___c___  
A CX
0,且ZF   B CX0,或ZF  CX≠0,且ZF0

D CX≠0,或ZF1

三判断错对

1.46”用原码表示为:(00101110原码
“-46”用原码表示为:(10101110原码

2.086/8088系统中,堆栈的操作可以是字节或字操作。

3 已知AX=1234HBX=4612H,计算12344612的差的算法不能写成下面的形式:对
SUB  AX,BX  DAS

4 已知CL=23H,指令“CMP  CL,CL”执行后标志位的值是:CF0,ZF1,SF0

5判断下列8086指令的对错:SHL  AX,3

6. 对寄存器AX的内容乘以4的正确指令序列是SHL AX1SHLAX1  
7.
已知CL=0,指令INC CL的执行的结果CF=不变对

8.DH=10H,执行NEG  DH指令后,正确的结果是 DH=0F0H  CF=0

9下列指令中,执行后对标志未发生影响的是D
A MOV AX,[BX]    BADD AX,0FFHH
C AND AX,[BX]    D TEST AX,0FFHH

10对寄存器AX的内容乘以2的指令是SHL AX,1

11. 8088按逻辑段组织程序,数据变量应该且必须在数据段中。

12. 说明性语句可以在任何一个段中。对

13. 使用简化段定义源程序格式,必须具有.MODEL语句,

且位于所有简化段定义语句之前。对
14.
使用简化段定义源程序格式,必须具有.MODEL语句,但写在何处没有关系.

15. 正误判断题:源程序中只能用标号START表示程序的起始执行点。

16. 完整段定义的程序入口点首先应该设置数据段寄存器的值。

17.汇编源程序可以用WORD文字处理系统处理,并保存为WORD文档。错

18.对于常数41H,在汇编语言中表达成字符’A’也是正确的,

’A’ASCII码就是41H

19. EQU=两个伪指令的功能和用法一样。

20. MOV AX , DI + SI有没有语法错误?

.填空题

1.        段的定义用的是伪指令()SEGMENT/ENDS 

2.        程序结束的语句是()解答:MOV AX,4C00H   INT 21H

3.        用汇编语言编写的程序称为______,它必须用______程序将它转换成二进制的机器语言程序,这种机器语言程序被称为______,而转换的过程称为______。它还必须用______程序连接,才能生成可执行的程序 汇编源程序,汇编程序,目标代码,汇编。连接

4.        汇编源程序不可以用word文字处理系统处理,并保存为word,师因为文档汇编源程序必须是纯文本文件

5.        在表达存储容量时,1KB=_____B1MB=___________KB1024  1024

6.        8086/8088CPU的地址线有20条,它的存储容量为_______1MB

1KB=210B=1024B1MB=220B=210KB=1024KB1GB=230B=210MB=220KB=1024MB1TB=240B=230KB=220MB。所以答案:1024/210    1024/210/1K

7.        外设与系统之间必须通过________连接。系统通过___________与外设进行通信。

输入输出接口电路(I/O接口)  I/O端口

8.        机器指令是一组 ___,由____构成。机器语言程序常被称作___。二进制代码,操作码 操作数 目标程序

9.        对于计算机内部的一个编码:01001001,他代表什么含义01001001作为ASCII码,表示字符I

10.    计算1101+111101-111101*111101/11的值。

1101+11=10000   1101-11=1010  1101*11=100111   1101/11=100(余数1e

11.    8086CPU的主存寻址范围是(),数据线有()条

主存寻址空间为1M,数据线有16eee

12.    8086CPU的内部结构分为总线接口(BIU)和执行单元(EU)两大部分。BIU负责CPU对存储器和外设的访问;EU负责指令的译码、执行和数据的运算。

13.    完成一条指令的功能可以分为两个主要阶段:(取指令)(执行指令)

14.        Intel 8086 CPU的段寄存器有________________________

15.        Intel 8086 CPUSP寄存器的主要作用是_____________________________

16.        (CS)=1000H(DS)=2000H(ES)=3000H(SS)=4000H(DI)=a100,操作数 [DI+1000H] 的寻址方式是_________,物理地址是______

17.        标志寄存器中OF标志位的主要作用是_____________________

18.        TEST指令的功能是______________________________

19.        指令LEA__AX, [SI+100H]的具体操作是_____________________

20.        有符号二进制字节数可表示的数的范围是_____________________

.回答问题

1.说明下列指令中源操作数的寻址方式?如果BX=2000HDI=40H,给出DX的值或有效地址EA的值。
1 MOV DX,[1234H] 1)直接寻址,EA1234H
2 MOV DX,1234H 2)立即数寻址,DX1234H
3 MOV DX,BX 3)寄存器寻址,DX2000H
4 MOV DX,[BX]  4)间接寻址,EA2000H
5 MOV DX,[BX+1234H] 5)相对寻址,EA3234H
6 MOV DX,[BX+DI]  6)基址变址寻址,EA2040H
7 MOV DX,[BX+DI+1234H] 7)相对基址变址寻址,EA3274H

2已知DS 2000HBX = 0100HSI = 0002H,存储单元[20100H] ~ [20103H]依次存放12 34 56 78H[21200H] ~ [21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
   
1 MOV AX,1200H 1AX1200H
   
2 MOV AX,BX 2AX0100H
   
3 MOV AX,[1200H] 3AX4C2AH
   
4 MOV AX,[BX] 4AX3412H
   
5 MOV AX,[BX+1100H] 5AX4C2AH
   
6 MOV AX,[BX+SI] 6AX7856H
   
7 MOV AX,[BX][SI+1100H] 7AX65B7H

3、请分别用一条汇编语言指令完成如下功能:
1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
2)用寄存器BXSI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。
4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
5)把数0A0HAL寄存器的内容相加,并把结果送回AL中。

1ADD DX,BX
2ADD AL,[BX+SI]
3ADD [BX+0B2H],CX
4ADD WORD PTR [0520H],3412H
5ADD AL,0A0H

六编程序

1.        已知两个八位无符号数xy,分别存放在BUFBUF+1单元中,且x>y。请编程序计算x-y,结果存回BUF单元。(4.1)此题为两个八位无符号数相减,我们可以直接使用减法指令SUB来实现。

   源程序如下:

   SSEG     SEGMENT   STACK ‘STACK’

   STA       DW         100 DUP(?)

   SSEG     ENDS

   DSEG    SEGMENT   ‘DATA’

BUF      DB           82,60

DSEG     ENDS

CSEG    SEGMENT    ‘CODE’

         ASSUME   CS:CSEG,DS:DSEG,SS:SSEG

START:   MOV     AX,DSEG

          MOV     DS,AX

          MOV     AL,BUF

          SUB      AL,BUF+1

          MOV     BUF,AL

          MO      AH,4CH

          INT        21H

CSEG     ENDS

          END      START

2.        已知DAT单元有一数x。现要求编程将x的低四位变为1010,最高位D7置为1,其它三位不变。

   MOV  AL,DAT     ; x

      AND  AL,70H   ;清低四位和D7

       OR   AL,8AH   ;置低四位为1010,D7位为1

      MOV  DAT,AL   ;送回DAT单元

3.         DAT单元的内容拆成高、低各四位,然后分别存于DAT+1DAT+2的低四位。(4.1)

此类拆字问题一般均采用移位指令。先将DAT单元内容取出,屏蔽高四位,送入DAT+2单元。再将DAT单元内容右移四位。即:将高四位移至低四位,高四位补0,送入DAT+1单元。

程序如下:

MOV  AL,DAT

MOV  DAT+2,AL

AND  DAT+2,0FH

MOV  CL,4

SHR   AL,CL

MOV  DAT+1,AL

HLT

4.        DATA单元有一个二进制数x,要求编程完成运算

 

 

x+1

x>0

y=

x

x=0

 

x-1

x<0

、本题为分支加简单运算。判断条件在零的左右,分支有三条,

程序如下:

         MOV  AL,DATA

         OR    AL,AL

         JZ     L1

         JNS    I1

         DEC    AL

         JMP    L1

I1:       INC    AL

L1:      MOV   Y,AL

         HLT

5.        编一程序,要求将BUF单元开始的100个存储单元全部清零。只知以0FFH作为结束标志,又该如何处理?

本题所要做的工作是将100个连续单元逐一清零。采用循环的方法最为简单。设置一个循环计数器,每清完一个单元,计数器减1,然后判断计数器是否为0,不为0则再去清一个存储单元,否则清零工作完成。

   一般情况下,已知循环次数的,循环判断放在循环体的后面。未知循环次数但已知结束条件的,循环判断置于循环体的前面。

编程如下:

         LEA   BX,BUF

         MOV  CL,64H

LP:      MOV  [BX],0

         INC   BX

         DEC  CL

         JNZ   LP

         HLT

注:以上采用字节操作,每次清一个存储单元。也可以采用字操作,每次清两个存储单元。

程序如下:

         LEA   BX,BUF

         MOV  CX,0032H

         MOV  AX,0

LP:      MOV  [BX],AX

         ADD  BX,2

         LOOP  LP

         HLT

注:当不知道所清单元个数但已知结束条件时,可编程序如下:

         LEA   BX,BUF

         MOV  AL,0FFH

LP:      CMP  AL,[BX]

          JE   DONE

         MOV  [BX],0

         INC   BX

         JMP   LP