文档详情

第四章顺序程序设计

z****2
实名认证
店铺
DOC
409KB
约28页
文档ID:156592063
第四章顺序程序设计_第1页
1/28

第四章 顺序程序设计练习题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 •分配存储空间 4. 4. 2 多项选择题D.编写程序1.在下列的选项中,不能作为名字的是( )A. AX B. OABH C. AB D . ADD2.在下列的选项中,属于指令性语句的有( )A. MOV AX , BX B. STR DB 33.4.C . WORD PTR AD . IN在下列指令中,将内存某一单元的偏移地址送A.MOV BX, OFFSET A B.MOVC.LEABX , AD.LEA数值表达式的运算符有()A .算术运算符B.逻辑运算符AX , 80HBX 寄存器的有( )BX, OFFSET [SI]BX , [SI]5.地址表达式的运算符有()关系运算符D •属性运算符6.7.8A .算术运算符B.逻辑运算符关系运算符D •属性运算符不能分配内存单元的伪指令(伪操作)有(A .等值语句B .等号语句定义段是由下列的哪些语句组成的? 在段的定义中,如果要将该段定位在能被 A . SEGNAME SEGMENT B)。

C .数据定义语句D .段定义语句1 6整除的地址开始,定位方式应选(SEGNAME PROCC. SEGNAME ENDS C.SEGNAME ENDPA . BYTE B . WORD C . PARA D . PAGE9.在下列的选项中,属于宏指令的格式有( )A.P MICRO B.P MICRO A , BENDM ENDMC.P MICRO B .P MICRO A, BIIIIIIP ENDM ENDS10.在汇编语言程序设计中,上机调试程序时除了在计算机中有 DOS 和编辑器外,在计算机中还应该有( )A. MASM B. LINK C.DEBUG D . WINDOWS4.4.3 填空题1. 用汇编语言编写程序,除了要求程序能正常运行和实现预定的功能外,还必须满足程序要 结构化,执行的速度要 ,占用的内存空间要 2. 编写结构化程序的目的是为了使程序简明、 和 3. 流程图一般由 种框组成,在顺序程序的流程图中,一般使用 框, 框和 框4. 无分支,无转移,无循环的程序结构称为 程序5. 在程序设计过程中,确定解决问题的算法,合理地选择存储空间及工作单元能 目标程序的长度。

6.在汇编语言程序中,“ MOV AX , DATA”和“ MOV DS, AX ”指令是要将 送DS7. 对同一问题,如果解决问题的算法不相同,则编写的源程序 8. 在汇编语言源程序中,通常用“ MOV AH , 4CH”和“ INT 21H”实现DOS返回,其中的 4CH 为 号, 21H 为 号9. 在汇编语言源程序中, “END表达式”表示 而其中的表达式表示程序运行时的10. 基本的程序设计方法有顺序程序设计、 、 和子程序设计4. 4. 4 程序分析题1 . 现有程序如下:DATA SEGMENTA DW 1234HB DW 5678HDATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX , DATAMOVDS,AXMOVAX,AXCHGAX,BMOVA,AXMOVAH , 4CHINT21HCODE ENDSEND START请回答:(1)该程序完成什么功能?(2)程序运行后 A 和 B 中的值各为多少?2. 现有程序如下:(注:限于篇幅,下列的程序不再列出公共部分,只列出程序中的主要部分 )X DB 13YDB5ZDB0MOV AL , XADD AL , YMOV CL , 2 SAL AL , CLMOV Z , AL请回答:(1)该程序完成什么功能?(2) 程序运行完后,Z中的内容为何值?(3) 若Y中的初值为65H,程序运行完后会出现什么现象?3 •现有程序如下:BUF1 DB 33HBUF2 DB 35HBUF3 DB 0MOVAL ,BUF1ANDAL ,0FHMOVBL ,BUF2ANDBL ,0FHMOVCL ,4SHLAL ,CLORAL ,BLMOVBUF3, AL请回答:(1)该程序完成什么功能?( 2)程序运行后( BUF3) = 4.现有程序如下:ADB56HBDB0CDB0MOVAL ,AANDAL ,0FHADDAL ,30HMOVB ,ALMOVAL ,AMOVCL ,4SHRAL ,CLADDAL ,30HMOV请C,AL回答:(1)该程序完成什么功能?2)程序运行后B和C中的内容各为多少?5.现有程序如下:TABDBh 2, 4, 8, 10H, 20H,40H,80H,90H,0A0H, OCOHXDB ?YDB 0MOVAL , XLEABX, TABXLATMOVY, AL请回(1)该程序完成什么功⑵若(X) =5答该程序执行完后,(Y )二 6.现有程序如下:XDW 100YDW 20ZDW 0MOVAX, XSUBAX, YMOVCL , 4SALAX, CLADDAX, 20SARAX, 1MOV乙AX请回答:(1)该程序完成什么功冃匕? ( 2)程序运行完后Z中的内容为多少?7.现有程序如下:ABCDB 120DB 30DW 0MOVAL , AADDAL , 5CBWIDIVBMOVC , AX请回答:1)该程序完成什么功能?( 2)程序运行后C中的内容为何值?3)C 中的高低字节各是什么值?8.现有程序如下:A DB 12HDB56HDBMOVALADDALMOVBLANDBL,SALBL ,SUBAL ,BLC, AL(1)该程序完成什么功C中的内容为何值?MOV请回(:2) 程序运行后,9.现有程序如下:DB10HDB20HDWDW30H2 DUP(0)MOVAL,AMULBADD,AX5MOVBX,CSUBBX,6CWDDIVBXMOVD,AXMOVD+2DX请回答;(1)该程序完成什么功能?(D 和 D+2 中的值各为多少?10.现有程序如下:12H,34HBUF1DBBUF2DB35H,36HBUF3DB2 DUP(02)程序运行后,)MOVAL , BUF1+1ADDAL , BUF2+1MOVAH , BUF1ADCAH , BUF2MOV 请回 答:BUF3, AX(1)该程序完成什么功能?2) BUF3 中两个单元中的内容依次是多少?11 •现有程序如下:BUF1DB 12H, 34HBUF2DB 35H, 36HBUF3DB 2 DUP ( 0)MOVAL, BUF1+1ADDAL , BUF2+1DAAMOVBUF3+1 , ALMOVAL , BUF1ADCAL , BUF2DAAMOV BUF3 ,AL请回答 :( 1 )该程序完成什么功能?( 2)BUF3 中两个单元中的值依次是多少?12.现有程序如下:BA DB 35H, 37H34HDB 32HCDB 0MOVAL , AADDAL, BAAAMOVBL, ALMOVAL , A+1ADCAL , B+1AAAAHMOVALMOV AADAL , BLMOV C, AL请回答:(1)该程序完成什么功能? ( 2 ) C 中的内容为何值? 13.现有程序如下:BUF1DB 38H ,33HBUF2DB 35H,37HMOVAL , A+1SUBAL , B+1AASMOVDH , ALMOVA L , ASBBAL, BAASADDAL , 30HMOVDL , ALMOVAH , 2INT21HMOVDL , DHADDDL , 30HMOVAH , 2INT21H请回(1)该程序完成什么功答:能2)显示的结果是什么?14 .现有程序如下:ADB39HBDB37HCDW0MOVAL , AAL ,AND0FHMOVBL , BANDBL , 0FHMULBLAAMMOVBX , AXMOVDL , AHADDDL,30HMOVAH ,2INT21HMOVDL,BLADDDL,30HMOVAH ,2INT21H请回答:(1)该程序完成什么功能?(2)显示的结果是什么?15・现有程序如下:BUF1DB100 DUP(?)BUF2DB100 DUP(?)MOVAX,DATAMOVD S,AXMOVES,AXCLDLEADI,BUF2LEASI,BUF1MOVCX,100REPMOVSB请回答:(1)该程序完成什么功能?(2) MOVSB 前可否用其他的重复前缀?(3) 如果程序中没有CLD指令行不行?为什么?4. 4. 5 程序填空题。

1.计算设 X、Y 是无符号数字节变量,下列程序是Z= (X+5) *10/Y的程序,请在空格处填上适当的语句(不考虑溢出)DATA SEGENTX DB ?Y DB ?Z DW 0⑴CODE SEGMENTASSUME CS: CODE, DS: DATASTART: M(O2V) AX , DATAMOV AL , X(2)ADDAL , 5⑶MUL BL⑷MOV Z, AXMOV AH , 4CH⑸CODE ENDSEND START2. 设A、B、C是无符号数字节变量,下列程序是计算 Z= (C+ (A+B ) * ( B+5)) /B的程序段,请在空格处填上适当的指令(不考虑溢出) ADB?BDBCDW2 DUP (0)MOVAL, AADDAL, BMOVBL, B(1)(2)ADDAL,CADCAH,0DIVBMOVz.AX(3)3. 设 X、 Y 是有符号数字变量,下列程序是计算S= (X+5) *Y+4 ) / (X— Y)的程序段,请在程序的空格处填上适当的指令(不考虑溢出) X DW?Y DW ?S DW 2 DUP (0)MOV AX , XADD AX , 5IMUL Y(1)MOV BX, XSUBBX , Y(3MOV S+2, AX⑷4. 下列程序是将BUF缓冲区中的两个字节的非压缩 BCD码转换成ASC □送显示器显示的程序,请在程序的空格处填上适当的指令。

BUF DB 5,7MOV DL,BUF⑴MOV AH, 2(2)⑶ADD DL, 30HMOV AH, 2下列程序是将A和B中C 变量中的程序,请(4)5.的 24 位无符号数相加,其结果存放在双字的在空格处填上适当的指令A DB3DUP (?)B DB3DUP(?)C DD0MOV AL , A(1XCHGCH ,CLMOVBL,B⑵XCHGDH ,DLADDCX,DX⑶MOVAH ,0⑷ADCAH ,BHMOVC ,CXC56. 下列程序是将A和B中两个数字字符串(非压缩BCD码)相加,其结果存放在C中的程序,请在空格处填上适当的指令MOV C, AHAAA(2)MOVAL, A+1MOVBL, B+1(3)AAAMOVC+1, ALMOVAH , 0(4)7.的 32 位无符号二进制数相乘,其结果存放在下列程序是将X和Y中Z 中的程序,请在空格处填上适当的指令MOV AX,Y+2(1)MOV Z+6,AXMOV Z+4,DXMOV AX,Y+2(2)ADDZ+4, AXADCZ+2, DXADC乙0MOVAX, YXDW2DUP(?)YDW2dup(?)ZDW4 DUP(0)⑶ADD Z+4, AXADC Z+2, DXADB‘ 35BDB'92,CDB3 DUP (0)MOVAL , AMOV(1BL, BADC Z, 0MOV AX , Y(4)ADD Z+2, AXADC Z, DX8•下列程序是将X中的64位无符号二进制数除以Y中的16位无符号二进制数,其结果的商存放在W,余数存放在N中的程序,请在空格处填上适当的指令XDW4 DUP (?)YDW?•WDW4 DUP(0)NDW07MOVDX ,0MOVAX ,X+6(1)DIVBXMOVW+6,AXMOVAX ,X+4DIVBX⑵MOVAX ,X+2DIVBX⑶MOVAX ,XDIVBX( 4 )(5)9•下列程序是利用宏定义和DOS功能调用将ST中的字符串显示在显示器上的程序,请在空 格处填上 适当的指令或参数。

DISPLAY MACRO X, YMOV AH , X(1)INT 21H⑵DATA SEGMENTST DB ‘ ABCD $'DATA ENDSDISPLAY (3), (4)10 •下列程序是将BUF1字缓冲区中的内容送300H输出端口,将200H端口中的内容送BUF2(2)序JF1BUF2MOV区的程请在空格处填上适当的指令DW ?DB ?7LEA BX, BUF1 AX , [BX]MOV BUF2,AL4. 4. 6程序设计题1. 设X、Y、Z为无符号的16位二进制数,编写程序计算W= (X + 8) *Z +( X*Y )不考 虑加法的 溢出)2. 设X、Y、Z为有符号的16位二进制,编写程序计算W= (X+Y+10 ) *Z/ (X+Y )(不考虑 加法的溢 出),其中W存放商,W+2存放余数3.编一程序从键盘输入一个字母,然后找出它的前导字符和后续字符(如B的前导字符为A,后续字符为C),并顺序显示这三个字符4.将BUF中的16位数分成四组,每组四位,然后把这四组数分别存放在A、B、C、D 字节变量中5. 将BUF中的8位二进制数转换成八进制数,其中的最高位存放在A字节单元,最低位存放在C 字节单元。

同时显示转换后的结果6. 将A和B中的2位压缩型BCD码相加后显示输出7. 将A中的2位非压缩型BCD码与B中的2位非压缩型BCD码相乘,其结果存放在C字节变量 中8. 将A字节变量中的48位无符号数与B字节变量中的16位数无符号数相乘,其结果存放在C字节变量中9. 用宏定义、宏调用实现A和B变量中的二位非压缩型BCD码相加,然后显示输出相加的结果10. 设TAB是存放数字开方后的数字表,其中每个开方值占两个字节,低字节存放开方的值,高字节存放余数部分,试用查表的方法求出 X字单元中的开方值,并将结果存放在 Y单元中。

下载提示
相关文档
正为您匹配相似的精品文档