第四章 顺序程序设计.docx

上传人:b****6 文档编号:8846140 上传时间:2023-02-02 格式:DOCX 页数:18 大小:20.82KB
下载 相关 举报
第四章 顺序程序设计.docx_第1页
第1页 / 共18页
第四章 顺序程序设计.docx_第2页
第2页 / 共18页
第四章 顺序程序设计.docx_第3页
第3页 / 共18页
第四章 顺序程序设计.docx_第4页
第4页 / 共18页
第四章 顺序程序设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第四章 顺序程序设计.docx

《第四章 顺序程序设计.docx》由会员分享,可在线阅读,更多相关《第四章 顺序程序设计.docx(18页珍藏版)》请在冰豆网上搜索。

第四章 顺序程序设计.docx

第四章顺序程序设计

 第四章顺序程序设计

练习题

4.4.1 单项选择题

1. 设计一个程序,最重要的是( )。

A.程序的结构化           B.能使程序正常运行和实现功能

C.程序的执行速度快       D.程序占用的存储空间少

2. 下列描述中正确的是( )。

A.在汇编语言编程中,必须有数据段和代码段

B.在汇编语言编程中,数据可以安排在代码段

C.在汇编语言编程中,必须分别完整的定义数据段、代码段、堆栈段和附加段

D.在汇编语言编程中,必须采用过程的形式编写程序

3. 下列不属于程序设计基本步骤的是( )。

A.提出程序完成的功能、目的、要求

B.分析问题,抽象出描述问题的数学模型

C.确定解决问题的算法或算法思想

D.分配存储空间,工作单元及相应的寄存器

4. 顺序程序的执行,在程序中( )。

A.有转移指令              B.有循环程序段

C.指令是顺序逐条执行的    D.是根据条件分支执行的

5. 在顺序程序的设计中,流程图的作用是非常有用的。

下列几种说法不正确的是( )。

A.安排程序执行的先后顺序

B.明确程序先做什么,后做什么

C.合理的使用指令

D.可以节省内存空间

6. 在设计顺序程序时,要正确使用好两种语句的功能,它们分别是( )。

A.分支语句和循环语句       B.指令语句和伪指令语句

C.顺序语句和非顺序语句     D.过程定义语句和控制语句

7. 汇编语言程序设计的流程图是非常有用的,它的每一执行框表明了整个程序中的某一段程序或某一功能块,而整个程序有( )。

A.一个入口一个出口         B.一个入口多个出口

C.多个入口一个出口         D.多个入口多个出口

8. 在顺序程序设计中,不可能使用的指令是( )。

A.数据传送指令  B.算术运算指令  C.转移指令  D.逻辑运算指令

9. 在顺序程序设计的流程图中,不包含( )。

A.开始框        B.执行框        C.判断框    D.结束框

10.在程序设计过程中,不会影响程序的长度的是(  )。

  A.确定解决问题的算法        B.上机调试

  C.分配存储空间              D.编写程序

4.4.2 多项选择题

 1.在下列的选项中,不能作为名字的是(  )。

A.AX               B.0ABH             C.AB          D.ADD

 2.在下列的选项中,属于指令性语句的有(  )。

       A.MOV     AX,BX              B.STR  DB     3

       C.WORD  PTR A               D.IN    AX,80H

 3.在下列指令中,将内存某一单元的偏移地址送BX寄存器的有(  )。

       A.MOV     BX,OFFSETA   B.MOV BX,OFFSET[SI]

       C.LEA      BX,A                 D.LEA  BX,[SI]

 4.数值表达式的运算符有(  )。

       A.算术运算符         B.逻辑运算符     C.关系运算符  D.属性运算符

 5.地址表达式的运算符有(  )。

       A.算术运算符         B.逻辑运算符     C.关系运算符  D.属性运算符

 6.不能分配内存单元的伪指令(伪操作)有(  )。

      A.等值语句             B.等号语句         C.数据定义语句 D.段定义语句

 7.定义段是由下列的哪些语句组成的?

       A.SEGNAME SEGMENT            B.SEGNAME PROC

       C.SEGNAME ENDS                   C.SEGNAME ENDP

 8.在段的定义中,如果要将该段定位在能被16整除的地址开始,定位方式应选(  )。

       A.BYTE        B.WORD           C.PARA             D.PAGE

 9.在下列的选项中,属于宏指令的格式有(  )。

       A.P MICRO          B.P MICRO  A,B

            ┇                ┇

ENDM            ENDM

    C.P MICRO          B.P MICRO  A,B

            ┇                ┇

P ENDM            ENDS

 10.在汇编语言程序设计中,上机调试程序时除了在计算机中有DOS和编辑器外,在计算机中还应该有(  )。

       A.MASM         B.LINK       C.DEBUG          D.WINDOWS

4.4.3 填空题

1. 用汇编语言编写程序,除了要求程序能正常运行和实现预定的功能外,还必须满足程序要结构化,执行的速度要______,占用的内存空间要______。

2. 编写结构化程序的目的是为了使程序简明、______和______。

3. 流程图一般由______种框组成,在顺序程序的流程图中,一般使用______框,______框和______框。

4. 无分支,无转移,无循环的程序结构称为______程序。

5. 在程序设计过程中,确定解决问题的算法,合理地选择存储空间及工作单元能______目标程序的长度。

6. 在汇编语言程序中,“MOV AX,DATA”和“MOV DS,AX”指令是要将______送DS。

7. 对同一问题,如果解决问题的算法不相同,则编写的源程序______。

8. 在汇编语言源程序中,通常用“MOV AH,4CH”和“INT 21H”实现DOS返回,其中的4CH为______号,21H为______号。

9. 在汇编语言源程序中,“END表达式”表示______。

而其中的表达式表示程序运行时的______。

10.基本的程序设计方法有顺序程序设计、______、______和子程序设计。

4.4.4 程序分析题。

1. 现有程序如下:

             DATA  SEGMENT

A      DW     1234H

B      DW     5678H

DATA  ENDS

CODE SEGMENT

       ASSUME CS:

CODE,DS:

DATA

START:

MOV   AX,DATA

       MOV   DS,AX

       MOV   AX,A

       XCHG AX,B

       MOV   A,AX

       MOV   AH,4CH

       INT     21H

CODE ENDS

       END    START

请回答:

(1)该程序完成什么功能?

      

(2)程序运行后A和B中的值各为多少?

2.现有程序如下:

(注:

限于篇幅,下列的程序不再列出公共部分,只列出程序中的主要部分。

X     DB      13

       Y      DB      5

       Z      DB      0

               …

               MOV   AL,X

               ADD   AL,Y

                     MOV   CL,2

               SAL     AL,CL

               MOV   Z,AL

 请回答:

(1)该程序完成什么功能?

(2)程序运行完后,Z中的内容为何值?

(3)若Y中的初值为65H,程序运行完后会出现什么现象?

3.现有程序如下:

    BUF1   DB      33H

    BUF2   DB      35H

    BUF3   DB      0

            …

    MOV   AL,BUF1

    AND   AL,0FH

    MOV   BL,BUF2

    AND   BL,0FH

    MOV   CL,4

    SHL     AL,CL

    OR     AL,BL

    MOV   BUF3,AL

请回答:

(1)该程序完成什么功能?

          

(2)程序运行后(BUF3)=______。

4.现有程序如下:

A      DB      56H

B      DB      0

C      DB      0

        …

MOV   AL,A

AND   AL,0FH

ADD   AL,30H

MOV   B,AL

MOV   AL,A

MOV   CL,4

SHR    AL,CL

ADD   AL,30H

MOV   C,AL

请回答:

(1)该程序完成什么功能?

          

(2)程序运行后B和C中的内容各为多少?

5.现有程序如下:

TAB    DB      1,2,4,8,10H,20H,40H,80H,90H,0A0H,0C0H

X      DB      ?

Y      DB      0

       …

MOV   AL,X

LEA     BX,TAB

XLAT

MOV   Y,AL

请回答:

(1)该程序完成什么功能?

      

(2)若(X)=5,该程序执行完后,(Y)=______。

6.现有程序如下:

X      DW     100

Y      DW     20

Z      DW     0

  …

MOV   AX,X

SUB    AX,Y

MOV   CL,4

SAL     AX,CL

ADD   AX,20

SAR    AX,1

MOV   Z,AX

请回答:

(1)该程序完成什么功能?

(2)程序运行完后Z中的内容为多少?

7.现有程序如下:

             A      DB      120

             B      DB      30

             C      DW     0

  …

    MOV   AL,A

    ADD   AL,5

    CBW

    IDIV   B

    MOV   C,AX

请回答:

(1)该程序完成什么功能?

          

(2)程序运行后C中的内容为何值?

          (3)C中的高低字节各是什么值?

8.现有程序如下:

A       DB      12H

B      DB      56H

C      DB      0

  …

MOV   AL,A

ADD   AL,B

MOV   BL,A

AND   BL,B

SAL     BL,1

SUB    AL,BL

MOV   C,AL

请回答:

(1)该程序完成什么功能?

          

(2)程序运行后,C中的内容为何值?

 9.现有程序如下:

A      DB     10H

B      DB     20H

C      DW     30H

D      DW     2DUP(0)

       …     

MOV   AL,A

MUL    B

ADD   AX,5

MOV   BX,C

SUB    BX,6

CWD

DIV     BX

MOV   D,AX

MOV   D+2,DX

请回答:

(1)该程序完成什么功能?

          

(2)程序运行后,D和D+2中的值各为多少?

10.现有程序如下:

BUF1   DB      12H,34H

BUF2   DB      35H,36H

BUF3   DB      2DUP(0)

  …

MOV   AL,BUF1+1

ADD   AL,BUF2+1

MOV   AH,BUF1

ADC    AH,BUF2

MOV   BUF3,AX

请回答:

(1)该程序完成什么功能?

          

(2)BUF3中两个单元中的内容依次是多少?

11.现有程序如下:

BUF1   DB      12H,34H

BUF2   DB      35H,36H

BUF3   DB      2 DUP(0)

  …

MOV   AL,BUF1+1

ADD   AL,BUF2+1

DAA

MOV   BUF3+1,AL

MOV   AL,BUF1

ADC   AL,BUF2

DAA

MOV  BUF3,AL

请回答:

(1)该程序完成什么功能?

(2)BUF3中两个单元中的值依次是多少?

12.现有程序如下:

             A       DB      35H,37H

B       DB      34H,32H

C       DB      0

  …

MOV   AL,A

ADD   AL,B

AAA

MOV   BL,AL

MOV   AL,A+1

ADC    AL,B+1

AAA

MOV   AH,AL

MOV   AL,BL

AAD

MOV   C,AL

请回答:

(1)该程序完成什么功能?

          

(2)C中的内容为何值?

13.现有程序如下:

BUF1     DB      38H,33H

BUF2   DB      35H,37H

  …

MOV   AL,A+1

SUB    AL,B+1

AAS

MOV   DH,AL

MOV   AL,A

SBB    AL,B

AAS

ADD   AL,30H

MOV   DL,AL

MOV   AH,2

INT    21H

MOV   DL,DH

ADD   DL,30H

MOV   AH,2

INT    21H

请回答:

(1)该程序完成什么功能?

          

(2)显示的结果是什么?

14.现有程序如下:

A       DB      39H

B       DB      37H

C       DW     0

  …

MOV   AL,A

AND   AL,0FH

MOV   BL,B

AND   BL,0FH

MUL    BL

AAM

MOV   BX,AX

MOV   DL,AH

ADD   DL,30H

MOV   AH,2

INT     21H

MOV   DL,BL

ADD   DL,30H

MOV   AH,2

INT     21H

请回答:

(1)该程序完成什么功能?

          

(2)显示的结果是什么?

15.现有程序如下:

BUF1   DB      100 DUP(?

BUF2   DB      100 DUP(?

  …

MOV   AX,DATA

MOV   DS,AX

MOV   ES,AX

CLD

LEA    DI,BUF2

LEA    SI,BUF1

MOV   CX,100

REP    MOVSB

请回答:

(1)该程序完成什么功能?

          

(2)MOVSB前可否用其他的重复前缀?

          (3)如果程序中没有CLD指令行不行?

为什么?

4.4.5 程序填空题。

1.设X、Y是无符号数字节变量,下列程序是计算Z=(X+5)*10/Y的程序,请在空格处填上适当的语句(不考虑溢出)。

DATA  SEGENT

X      DB      ?

Y      DB      ?

Z      DW     0

         

(1)   

CODE SEGMENT

       ASSUME CS:

CODE,DS:

DATA

START:

MOV   AX,DATA

             

(2)   

       MOV   AL,X

       ADD   AL,5

              (3)   

       MUL    BL

             (4)   

       MOV   Z,AX

                           MOV   AH,4CH

             (5)   

CODE ENDS

       END    START

2. 设A、B、C是无符号数字节变量,下列程序是计算Z=(C+(A+B)*(B+5))/B的程序段,请在空格处填上适当的指令(不考虑溢出)。

A      DB      ?

             B      DB      ?

C     DW     2 DUP(0)

 …

 MOV   AL,A

ADD   AL,B

MOV   BL,B

     

(1)   

     

(2)   

                           ADD      AL,C

                           ADC      AH,0

                           DIV     B

                           MOV   Z,AX

       (3)    

3.设X、Y是有符号数字变量,下列程序是计算S=((X+5)*Y+4)/(X-Y)的程序段,请在程序的空格处填上适当的指令(不考虑溢出)。

X     DW     ?

Y      DW     ?

S      DW     2 DUP(0)

       …

       MOV   AX,X

       ADD   AX,5

       IMUL  Y

             

(1)   

              

(2)   

        MOV   BX,X

                           SUB    BX,Y

     (3)   

                           MOV   S+2,AX

     (4)   

4.下列程序是将BUF缓冲区中的两个字节的非压缩BCD码转换成ASCⅡ送显示器显示的程序,请在程序的空格处填上适当的指令。

          BUF    DB      5,7

       …

MOV   DL,BUF

     

(1)   

MOV   AH,2

     

(2)   

     (3)   

ADD   DL,30H

MOV   AH,2

     (4)   

5.下列程序是将A和B中的24位无符号数相加,其结果存放在双字的C变量中的程序,请在空格处填上适当的指令。

    A        DB      3 DUP(?

    B        DB      3 DUP(?

    C        DD      0

             …

             MOV   AL,A

                   

(1)   

             XCHG CH,CL

             MOV   BL,B

                   

(2)   

             XCHG DH,DL

             ADD   CX,DX

                   (3)   

             MOV   AH,0

                   (4)   

             ADC   AH,BH

             MOV   C,CX

                   (5)   

6.下列程序是将A和B中两个数字字符串(非压缩BCD码)相加,其结果存放在C中的程序,请在空格处填上适当的指令。

     A      DB   ‘35’

     B      DB   ‘92’

     C      DB      3 DUP(0)

             …

             MOV   AL,A

             MOV   BL,B

               

(1)   

         AAA

               

(2)   

         MOV   AL,A+1

         MOV   BL,B+1

               (3)   

         AAA

         MOV   C+1,AL

         MOV   AH,0

               (4)   

         MOV   C,AH

7.下列程序是将X和Y中的32位无符号二进制数相乘,其结果存放在Z中的程序,请在空格处填上适当的指令。

     X      DW     2 DUP(?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1