《汇编语言程序设计习题集.pdf》由会员分享,可在线阅读,更多相关《汇编语言程序设计习题集.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!第四章 汇编语言程序设计习题集 一、单项选择题 1.用高级语言编写的程序()。A.只能在基本种计算机上运行 B.无需经过编译或解释,即可被计算机直接执行 C.具有通用性和可移植性 D.几乎不占用内存空间 2.一般地,我们将计算机指令的集合称为()。A 机器语言 B.汇编语言 C.模拟语言 D.仿真语言 3.我们通常所说的“裸机”指的是()。A.只装备有操作系统的计算机 B.不带输入输出设备的计算机 C.未装备任何软件的计算机 D.计算机主机暴露在外 4.计算机的软件系统一般分为()两大部分。A.系统软
2、件和应用软件 B.操作系统和计算机语言 C.程序和数据 D.DOS 和 Windows 5 计算机系统软件中的汇编程序是一种()。A.汇编语言程序 B.编辑程序 C.翻译程序 D.将高级语言转换成汇编程序的程序 6.假设 V1 和 V2 是用 DW 定义的变量,下列指令中正确的是:()A.MOV V1,20H B.MOV V1,V2 C.MOV AL,V1 D.MOV 2000H,V2 7.PC 机所使用的标准键盘向主机发送的代码是()A.ASCII 码 B.扫描码 C.BCD 码 D.格雷码 8.8086CPU 中断号为 8 的中断矢量存放在()。A.0FFFFH:0008H B.0000H
3、:0008H C.0000H:0020H D.0020H:0000H 9.已知变量 VAR 为字型,则 TYPE VAR=()。A.1 B.2 C.3 D.4 10 汇编语言源程序经 MASM 汇编后可直接生成的文件是()。A.LST B.CRF C.EXE D.OBJ E.ASM F.MAP 11.段定义语句以(B)语句结束。A.END B.ENDS C.ENDP D.ENDM 12 若主程序段中数据段名为 DATA,对数据段的初始化操作应为()。A.MOV AX,DATA B.MOV AX,DATA MOV ES,AX MOV DS,AX C.PUSH DS D.MOV DS,DATA 1
4、3.EXE 文件产生在()之后。A.汇编 B.编辑 C.用软件转换 D.连接 14 定义双字变量的定义符是()。A.DW B.DQ C.DD D.DT 15 假设 VAR 为变量,指令 MOV BX,OFFSET VAR 的寻址方式是()。A直接寻址 B间接寻址 C立即寻址 D存储器寻址 16 执行下列指令:STR1 DW AB STR2 DB 16 DUP(?)CONT EQU$-STR1 MOV CX,CONT MOV AX,STR1欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!HLT 后寄存器 CL 的值是()。A.12H B.0EH C.
5、0FH D.10H 17.与 MOV BX,OFFSET VAR 指令完全等效的指令是()。A.MOV BX,VAR B.LDS BX,VAR C.LES BX,VAR D.LEA BX,VAR 18.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是 ()。A.WORD B.PAGE C.BYTE D.PARA 19.BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量 BUF 分配的存储单元字节数是()。A.80H B.100H C.124 D.192 20.在汇编语言程序的开发过程中使用宏功能的顺序是()。A.宏定义,宏调用 B.宏定义,
6、宏展开 C.宏定义,宏调用,宏展开 D.宏定义,宏展开,宏调用 21.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不 可省略的项是()。A.名字项 B.操作项 C.操作数项 D.注释项 22.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有 ()。A.CMP B.SUB C.AND D.MOV 23.为使 CX=-1 时,转至 MINUS 而编制了一指令序列,其中错误的序列是()。A.INC CX JZ MINUS B.SUB CX,OFFFFH JZ MINUS C.AND CX,OFFFFH JZ MINUS D.XOR CX,OFFF
7、FH JZ MINUS 24.假设 V1 和 V2 是用 DW 定义的变量,下列指令中正确的是().A.MOV V1,20H B.MOV V1,V2 C.MOV AL,V1 D.MOV 2000H,V2 二.多项选择题(每题有多个正确答案,选出所有正确答案,多选.少选均不得分)1 变量定义的伪指令助记符有:()。A.DB B.DW C.DD D.DF E.DQ F.DT 2 主程序与子程序之间传递参数可通过()进行。A.堆栈 B.存储器单元 C.通用寄存器 D.指令队列 E.其他 3.交换寄存器 SI.DI 的内容,正确的程序段是()。欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系
8、删除!我们将竭诚为您提供优质的文档!欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!ADD BX,ENTRY MOV AX,WORD PTR BX 11 将下列文件类型填入空格:(1).obj(2).exe(3).crf(4).asm(5).lst(6).map 编辑程序输出的文件有;连接程序输出的文件有。12.数据段中有以下定义:ARRAY1 EQU 16H ARRAY2 DW 16H 请指出下面两条指令的寻址方式:MOV AX,ARRAY1;寻址方式:MOV AX,ARRAY2;寻址地址:四、判断(正确的在括号画“”,错误的画“”)1 汇编语言
9、程序语言必须由四部分组成。()2 汇编语言源程序中所使用的变量,必须在代码段中先定义,后引用。()3 在汇编语言中,一般伪指令语句放在代码段中()4 逻辑操作符 AND、OR、XOR 或 NOT,只能用于数字表达式。()5 符号定义语句不占内存单元,变量定义语句占内存单元。()6 汇编语言源程序中至少有一个代码段。()7.伪指令是指示性语句,不产生机器目标代码。()8.伪指令 BVAR:DBABCD,200 DUP(?)是合法伪指令。()9.伪指令 DAT1 DB 7,8,9,10 与 DAT1 DW 07H,08H,09H,0AH 所预置的数据是一 样的。()10.8086CPU 的中断向量
10、表共占有 1024 个字节(00000H003FFH),所以共有 256 个中 断。()五.程序分析题 1.执行下面的程序段后,CX 的内容是()DAT1 DB 12H,34H,56H N=$-DAT1 MOV CX,N 2.执行下面的程序段后,AX 的内容是(),BX 的内容是().M1 DB 12H,34H MOV SI,OFFSET M1 MOV AX,0 MOV AL,SI MOV BX,WORD PTR SI 3 源程序如下:STR DB ABCDEF0123456789 MOV BX,OFFSET STR MOV AL,65H PUSH AX AND AL,0FH XLAT MOV
11、 DL,AL POP AX ADD AL,08H欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!DAA MOV DH,AL CMP DH,32H 执行上面程序段后,(DL)=(),(DH)=()。4 源程序如下:MOV AX,SEG TABLE;TABLE 为表头 MOV ES,AX MOV DI,OFFSET TABLE MOV AL,0 MOV CX,100 CLD REPNE SCASB 问:1)该段程序完成什么功能?()2)该段程序执行完毕之后,ZF 和 CX 有几种可能的数值?各代表什么含义?()5 源程序如下:DATA SEGMENT
12、S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS LEA SI,S9 LEA,DI,S9+1 MOV CX,5 LOP:MOV AL,SI XCHG AL,DI MOV SI,AL ADD SI,2 ADD DI,2 LOOP LOP 上述程序段运行后,S9 开始的 10 个字节存储单元内容是什么?()6 源程序如下:MOV AL,38H MOV BL,49H CALL SUBO欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!INC AL DEC CL SUBO PROC ADD AL,BL MOV CL,AL DAA RET
13、 SUBO ENDP 上述程序段运行后,AL=(),CL=()7 源程序如下:DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA3 上述程序段运行后,CX=(),DX=()8 下面程序是将 10 个 8 位无符号数按递减次序排序,请将程序填写完整。DATA SEGMENT ARRAY DB 05H,78H,FFH,7BH,00H DB 8CH,20H,A0H,F0H,60H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR
14、 START:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX AB1:MOV SI,OFFSET ARRAY MOV BL,0 MOV CX,10欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!()AGAIN:MOV AL,SI INC SI CMP AL,SI()CD1 MOV AH,SI MOV SI,AL DEC SI MOV SI,AH INC SI MOV BX,1 CD1:LOOP AGAIN DEC BL()AB1 RET MAIN ENDP CODE ENDS END START 9
15、下面的程序段是统计 AX 中 16 位二进制数 1 的个数,并将结果放在 CX 中,填空使程序 完成预定的功能。XOR CX,CX L1:AND AX,AX JZ STOP SHL AX,1()INC CX L2:JMP L1 STOP:HLT 10 下面的程序段是求 8 个无符号数累加和,最后结果用双字表示,存在 YAH 和 YAL 单 元,填空使程序完成预定的功能。DATA SEGMENT TABLE DW 34,789,67,78,345,89,78,60 YAH DW 0 YAL DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ST
16、ART:MOV AX,DATA MOV DS,AX MOV DX,0 XOR AX,AX;清 AX MOV BX,OFFSET TABLE MOV CX,8 CLC LP:ADD AX,BX()()DON:INC BX INC BX LOOP LP MOV YAL,AX;存和欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV YAH,DX MOV AH,4CH INT 21H CODE ENDS END START 11.两个非组合 BCD 数(BY0,BY1)进行十进制减法,并将差求绝对值后保存在 SD 单 元。MOV AL,BY0 CMP
17、AL,BY1 JNC L1 MOV AH,BY1 MOV BY1,AL MOV AL,AH L1:SUB AL,BY1()MOV SD,AL 12 附加段有一块长 50 个字的数据区,首址为 DEST,现将数据区初始化为 0FFFFH。LEA DI,DEST MOV CX,50*2 CLD MOV AL,0FFH()13 下面是某数据段定义,在表中标出各字节单元的值,并回答问题。DATA SEGMENT PA DB 1 PB DW 5 PP EQU 2 PC DB PP DUP(0)DATA ENDS 偏移 +0 +1 +2 +3 +4 值 TYPE PA=()TYPE PB=()SIZE P
18、A=()SIZE PB=()SIZE PC=()14.源程序如下:MOV CL,4 MOV AX,2000H 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!SHL AL,CL SHR AX,CL MOV 2000H,AX 试问:若程序执行前,数据段内(2000H)=09H,(2001H)=03H,则执行后有 (2000H)=_ _,(2001H)=_ _。本程序段的功能_。15.阅读程序,并完成以下要求(10 分)MOV CL,04H MOV DX,1234H MOV AX,5678H SHL DX,CL MOV BL,AH SHL AX,CL
19、SHR BL,CL OR DL,BL A)(DX)=,(AX)=B)由上面的结果可以看出该程序的功能是:16.源程序如下:(6 分)MOV CX,9 MOV AL,01H MOV SI,1000H NEXT:MOV SI,AL INC SI SHL AL,1 LOOP NEXT 试问:执行本程序后有:AL=_;SI=_;CX=_;本程序的功能是_。17.设某数据段:DATA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!DA1 DB COMPUTER DB 0AH,0DH C
20、OUNT EQU$-DA1 DA2 DWCO,MP,UT,ER DATA ENDS 试回答:(1)DA1 的偏移地址是:_ (2)COUNT 的值是_ (3)DA2+5 字节单元的内容是_ 18.从 BUF 开始的 11 个单元中存放着 11 个整数,找出这 11 个数中正数并且是偶数的个 数存入 R 中。DATA SEGMENT BUF DB 2,5,-3,6,100,0,-20,-9,8,-110,21 N=R DW?DATA ENDS CODE SEGMENT BEGIN:MOV AX,DATA LEA BX,BUF MOV CX,N LOPA:CMP BX,BYTE PTR 0 TES
21、T BX,BYTE PTR 1 INC AX NEXT:INC BX DEC CX MOV R,AX MOV AH,4CH INT 21H CODE ENDS END 19.对于下面两个数据段,偏移地址为 10H 和 11H 的两个字节中的数据是一样的吗?为 什么?DTSEG SEGMENT ORG 10H DATA1 DB 72H|DTSEG SEGMENT|ORG 10H|DATA1 DW 7204H 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!DB 04H DTSEG ENDS|DTSEG ENDS|()。20.内存单元初始化内容为:(2
22、000H:2A00H)-(2000H:2A02H)分别为 0FH、0EH、0DH,(2000H:2A10H)-(2000H:2A12H)分别为 09H、08、07H。执行下列程序 后,请填写存储单元的内容:MOV AX,2000H MOV DS,AX MOV ES,AX MOV SI,2A10H MOV DI,2A00H CLD MOV CX,3 L:MOV AL,DI MOVSB DEC SI MOV SI,AL INC SI LOOP L HLT(1)2000H:2A00H=。(2)2000H:2A11H=。(3)2000H:2A12H=。六.简答题 1.有变量定义的伪指令如下:NUMS
23、DW 18 DUP(4 DUP(5),23)VAR DB HOW ARE YOU!,0DH,0AH 试问:NUMS、VAR 变量各分配了多少存储字节?1、在指令系统中,段内、段间返回均为 RET 指令。试回答:(1)执行段内返回 RET 指令时,执行的操作是?(2)执行段间返回 RET 指令时,执行的操作是?3.ARY DW 10 DUP(?)MOV AL,TYPE ARY.;MOV BL,LENGTH ARY;MOV CL,SIZE ARY;上述 MOV 指令序列执行后的结果是什么?4 已知某数据段定义如下:DSEG SEGMENT 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系
24、删除!我们将竭诚为您提供优质的文档!ORG 00H DAT1 DW 4,26 ORG 06H DAT2 DW 5678H DB AB DSEG ENDS 要求:用内存分配示意图,说明该数据段的存储器分配情况。5 读程序,并回答问题 DATA SEGMENT TABLE DB 0,1,4,9,16,25,36,49,64,81,100 XAD DB 3 YAD DB?DATA ENDS STACK SEGMENT STACK STACK STA DB 16 DUP(STACK)STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MAIN
25、 PROC FAR START:PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV BX,OFFSET TABLE MOV AH,0 MOV AL,XAD ADD BX,AX MOV AL,BX MOV YAD,AL ADD AL,30H MOV DL,AL MOV AH,02H INT 21H RET MAIN ENDP CODE ENDS END START(1).在存储器中分别为 table、xad、yad、sta 分配多少字节单元?(2).程序运行后,xad、yad,单元中的值为多少?屏幕上显示的字符是什么?。6.下面的程序是将表中元素
26、按值的大小升序排序。要求填空(1)和(2)使程序按预定目标 运行;(3).程序运行后,显示结果为什么?CODE SEGMENT ASSUME CS:CODE STAR:JMP SSTT ASCII DB GFBACXYD6291,$COUNT=$-ASCII-2 SSTT:MOV AX,CS MOV DS,AX MOV DL,COUNT MOV DH,1;设交换标志=1 XOR BX,BX L0:OR DH,DH欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!JZ L3 MOV DH,0 MOV CX,COUNT SUB CX,BX MOV SI,
27、OFFSET ASCII L1:MOV AL,SI INC SI CMP AL,SI JBE L2;小于等于转 XCHG AL,SI(1)MOV DI-1,AL MOV DH,1 L2:LOOP(2)L1 INC BX DEC DL JNZ L0 L3:MOV DX,OFFSET ASCII MOV AH,9 INT 21H MOV AH,4CH INT 21H;返回 DOS CODE ENDP END STAR 7.阅读下面的程序,回答问题.MODEL SMALL.386.STACK.DATA STRING DB Assemble Language is powerful N=$-STRIN
28、G NEWSTR DB N DUP(0).CODE.STARTUP MOV CX,N LEA SI,STRING LEA DI,NEWSTR.REPEAT MOV AL,SI.IF(AL=a)&(AL=z)SUB AL,32.ENDIF MOV DI,AL INC SI INC DI.UNTILCXZ.EXIT END【问题】写出程序功能,程序执行后,从 NEWSTR 开始的 N 个字节中的内容是什么?欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!求 七 编程题 1.将 AL 中的数,高 4 位保持不变,低 4 位置零。2.从 1000H 单元开
29、始,连续存放 100 个字符串,要查出第一个$符号,编程序将第一个$字 符地址送 BX 中。3.从地址 2100H 单元开始,连续存放 8 个字节的无符号数,现在用 BX 作地址指针,编 程序求和,并将结果存在 210AH 单元中。4.将连续存放在 2000H 单元开始的两个 16 位无符号数相乘,结果存放在两个数之后。5.检查 AX 中的第 2 位(bite2),为零时,把 DH 置 0;为 1 时,把 DH 置 1。6.假设某班 80 个学生某门课的成绩存放在数据区 BUF 开始的字节单元中,请编程统计 小于 60 分的人数,60 80 分的人数,大于 80 分的人数,并将统计结果分别存于
30、 S1、S2、S3 字节单元中。要求写出注释。7.从 2000H 单元开始的区域,存放 100 个字节的字符串,其中有几个#符号(#的 ASCII 码为 23H),将第一个#符号替换成 0,并将地址送 DX,试写出程序段。8.DAT 为首地址的两个存储单元存放了两个无符号字节数,它们的差的绝对值存入 ABS 单元中,把 ABS 单元的值以十进制形式显示出来,然后返回 DOS 系统。要求显示程序 用中断类型号为 60H 的中断服务子程序来完成。9.(13 分)在存储单元中,以 DAT 为首地址存放了 10 个无符号数(范围为 0255),对 这 10 个数进行以下处理:去掉一个最大值和一个最小值
31、后,求余下 8 个数的平均值并 存入 AVG 单元中。请编写一个完整的汇编语言源程序实现。10.自 BUFFER 开始的缓冲区有 6 个字节型的无符号数:10,0,20,15,38,236,试编 制 8086 汇编语言程序,要求找出它们的最大值、最小值及平均值,分别送到 MAX、MIN 和 AVI 三个字节型的内存单元。要求按完整的汇编语言格式编写源程序。11.编程题(用完整段模式和简化段模式分别实现)编写一个在某项比赛中计算每一位选手最终得分的程序。计分方法如下:10 名评委,在 010 的整数范围内给选手打分。10 个得分中,除去一个最高分(如有同样两个以上最高分也只除一个),除去一个最
32、低分(如有同样两个以上最低分也只除一个),剩下的 8 个得分取平均值为该选手 的最终得分。12 编程题(用完整段模式和简化段模式分别实现)【程序说明】设有一个数组存放学生的成绩(0100),编程统计 059、6069、7079、8089、90100 分的人数,并分别存放到 SCOREE、SCORED、SCOREC、SCOREB、SCOREA 单元中。13.编制完整的汇编语言源程序,求两个多字节 BCD 码数据之和。两个数据分别存放 在 BUF1 和 BUF2 开始的存储区中,和要求存放在 SUM 开始的存储区中。b 如:11223344+44332211=55555555 14设计一个完整的汇
33、编语言源程序。已知两个整数变量 A 和 B,试编写程序完成下述操 作:1)若两个数中有一个奇数,则将奇数存入 A 中,偶数存入 B 中;2)若两个数均奇数,则两个数分别加 1,并存回原变量;3)若两个数均偶数,则两个变量不变。(12 分)15.编定程序段,用 DOS 的 1 号功能调用通过键盘输入一字符,并判断输入的字符。如 字符是Y,则转向 YES 程序段;如字符是N,则转向 NO 程序段;如是其他字符,欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!(则转向 DOS 功能调用,重新输入字符。考生勿需写出源程序格式,只需写出与试题 要求有关的指令序列)16.在 BUF1 和 BUF2 两个数据区中,各定义有 10 个带符号字数据,试编制一完整的源 程序,求它们对应项的绝对值之和,并将和数存入以 SUM 为首址的数据区中。