《汇编语言》习题1

来源:互联网 发布:淘宝买药都是货到付款 编辑:程序博客网 时间:2024/05/17 06:46

                  《汇编语言程序设计》测试题

一、    填空:(10分)

  1INTEL8086功能上分为总线接口部件(BIU)和执行部件(EU)两大部分,执行部件负责指令的执行,主要有                         ,三个部分组成,BIU 主要包含                  

 2、数据寄存器组包括四个16位寄存器,其中      称累加器,       称基址寄存器,      称计数寄存器,      称数据寄存器。四个段寄存器分别是                  IP寄存器中存放的是                                         

 3PSW 称为程序状态字,由条件码和控制标志组成,OF标志的含义是           CF标志的含义是                 SF标志的含义是                  ZF标志的含义是           

  4DEBUG 中包括了若干条命令,其中U命令的功能是                 D命令的功能是               T命令的功能是              查看寄存器内容的命令是           ,运行程序的命令是            

5、子程序参数的传递有三种方式,                         

                                     

二、    计算题:(25分,第5题为5分,其余各4分)

1、          把下列二进制数转化为16进制数和十进制数:

1101101   210000000   311111111

 

 

 

2、          完成下列二进制数的计算:

00010101+00001101=

0001111100000101=

3、          求下列二进制数的补码:

00010011                00111110

 

4、          有一个16位数值0101000001000011

(1)如果它是二进制数,和它等值的十进制数是多少?

(2)如果它是ASCII码字符,则是什么字符?

(3)如果它是压缩的BCD码,它表示的数是什么?

 

 

 

 

5、          求下列各数与4AE0H的差,并根据结果设置标志位SFZFCFOF

(1)1234H          (2)5D90H

 

 

 

 

 

6、          写出下列存储单元地址的段地址、偏移地址和物理地址:

135160050     21F00000A

三、    简答题:(20

1、          如果一个堆栈从地址12500000开始,它的最后一个字的偏移地址为0100HSP的内容为0052H

问:(1)栈顶地址是多少?

2)栈底地址是多少?

3)在SS中的段地址是多少?

4)存入数据3445H后,SP的内容是多少?

2、          现有(DS=2000H,(BX=0100H,(SI=0002H

20100=12H,(20101=34H,(20102=56H 20103=78H,(21200=2AH,(21201=4CH,(21202=B7H,(21203=65H,试说明下列各条指令执行完后,AX 寄存器的内容。

(1)MOV  AX1200H

(2)MOV AXBX

(3)MOV AX[1200]

(4)MOV AX[BX]

(5)MOV AX1100[BX]

(6)MOV AX[BX][SI]

(7)MOV AX1100[BX][SI]

3、假定(BX=0E3H,变量VAL的值为79H,确定下列各条指令单独执行后的结果。

1XOR BXVAL 

2AND  BXVAL

3OR   BXVAL

4TEST  BX01H

5 XOR  BX0FFH

6AND BX0

4、          假定(DX=10111001B,(CL=03,(CF=1,确定下列各条指令单独执行后,DX中的值。

SHR DX1

SAR DXCL

SHL DL1

ROR DLCL

RCR  DL1

四、    阅读下列程序段,回答问题(20)

1、          阅读下列程序,结果是多少、存放在哪里?

STACK  SEGMENT  STACK

         DB  64 DUP (‘STACK’)

STACK  ENDS

DATA  SEGMENT

   BUFA  DB  100213,—3556

   BUFB  DB  34,—12023,—3965

   N=$BUFB

   F  DW 

   BUFO  DB  OVERFIOW!’,0DH0AH,‘$

DATA  ENDS

CODE  SEGMENT  CODE

ASSUME   CSCODEDSDATASSSTACK

           BEGINMOV AXDATA

                   MOV  DSAX

                   MOV  BX0

                   MOV  CXN

                   LEA   SIBUFA

                   LEA   DIBUFB

           LOPA MOV  AL[SI]

                   CBW

                   ADD  BXAX

                   JO  OVER

                   MOV  AL[DI]

                   CBW

                   ADD  BXAX

                   JO  OVER

                   INC SI

                   INC  DI

                   DEC  CX

                   JNE  LOPA

                   MOV  FBX

           EXIT MOV  AH4CH

                   INT  21H

           OVER LEA  DXBUFO

MOV  AH9

INT  21H

JMP  EXIT

CODE  ENDS

       END  BEGIN

2、读下列程序,并指出此程序执行结束后,显示器所显示的内容:

A  SEGMENT

NUM   DB  00111001B

BUF    DB  0AH0DH,‘(NUM=

BUF1   DB 4 DUP 0

          A  ENDS

          B  SEGMENT  STACK

DB  200 DUP 0

          B ENDS

          C  SEGMENT 

ASSUME  DSASSSTACKCSC

          BEGINMOV  AXX

                  MOV  DSAX

                  LEA   DIBUF1

                  MOV  ALNUM

                  MOV CL4

                  SHR ALCL

                  OR AL30H

                  MOV  [DI]AL

                  INC  DI

                  MOV  ALNUM

                  AND  AL0FH

                  OR   AL30H

                   MOV  [DI]AL

                   INC  DI

                   MOV  BYTE  PTR [DI],‘H

                   INC  DI

                   MOV  BYTE  PTR [DI],‘$’

                   LEA  DX,BUF

                   MOV  AH,9

                   INT  21H

                   MOV  AH,4CH

                   INT  21H

                         C  ENDS

END  BEGIN

 

五、    编写程序:(25分)

1、          写出执行以下计算的指令序列,其中XYZRW为存放16位带符号数单元地址。

(1)Z<W+ZX

(2)Z<—(X*W/Y+6),R<—余数

2、          写程序,要求对键盘输入的小写字母用大写字母显示出来。

3、从键盘输入一系列字符,以‘$’ 为结束符,然后对其中的非数字字符计数,并显示结果。

原创粉丝点击