汇编语言程序的设计期末考试题.pdf
.汇编语言程序设计期末考试题汇编语言程序设计期末考试题学院系:学号:计分:一、一、项选择题项选择题(在每题的四个备选答案中,在每题的四个备选答案中,选出一个正确答案,选出一个正确答案,并将正确答案的序号填在题干的括号。并将正确答案的序号填在题干的括号。每每题题 1 1 分,共分,共 1010 分分)1.CPU 发出的访问存储器的地址是()A.物理地址2.将高级语言的程序翻译成机器码程序的实用程序是()A.编译程序3.DEC BYTE PTRBX指令中的操作数的数据类型是()A.字 B.双字 C.字节 D.四字4.在以下语句中,BUFFER 称为()BUFFER DB 01H,0AHA.符号 B.变量 C.助记符 D.标号5.串操作指令中,源串操作数的段地址一定在()存放器中。A.CS B.SS C.DS D.ES6.使计算机执行某种操作的命令是()A.伪指令 B.指令7.将数据 5618H 存放在存储单元中的伪指令是()A.DATA1 DW 1856HB.DATA1 DB 18H,56HC.DATA1 EQU 5618HD.DATA1 DB 18H,00H,56H,00H8.假设 AX=3500H,CX=56B8H,当 AND AX,CX 指令执行后,AX=()A.1400H B.77F8H C.0000H D.0FFFFH9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是()码。A.BCD 码 B.二进制码 C.ASCII 码 D.十六进制码10.用指令的助记符、符号地址、标号和伪指令、宏指令以与规定的格式书写程序的语言称为()A.汇编语言 B.高级语言 C.机器语言 D.低级语言二、二、填空题填空题(每空每空 1 1 分,共分,共 2020 分分)1.在 8086/8088 汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是_。2.通常所说的计算机系统包括_和_两大局部。3.8086/8088 存储器分四个段,这四个段的段名所对应的段存放器分别是_、_、_、_。4.现有 AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(31201H)=02H,(31202H)=40H,请写出以下各条指令独立执行完后有关存放器与存储单元的容,并指出标志位 ZF、CF 的值。A.ADD AX,1200H;问 AX=_H,ZF=_B.SUB AX,BX;问 AX=_H,ZF=_1/4.C.MOV AX,BX;问 AX=_H CF=_D.NEG WORD PTR1200H;问(31200H)=_H CF=_5.设 DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出以下各种寻址方式下的有效地址,填入括号中。A.使用 D 的直接寻址()B.使用 BX 的存放器间接寻址()C.使用 BX 和 D 的存放器相对寻址()D.使用 BX、SI 和 D 的相对基址变址寻址()E.使用 BX、SI 的基址变址寻址()三、简答题三、简答题(共共 2020 分分)1.程序在数据段中定义的数组如下:(4 分)ARRAYDBYES ISDB20DBDO NOT请指出以下指令是否正确?假设不正确,错在哪里?答案做在旁边A.MOV BX,OFFSET ARRAY MOV AX,BX+8B.MOV AX,ARRAYC.MOV BX,2 MOV SI,3 MOV AX,ARRAYBX SID.MOV BX,2*2 MOV SI,3 MOV AX,OFFSET ARRAYBX SI;在汇编过程中,OFFSET 操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值,在汇编指令时还是未知的,所以第三条指令不正确。INC AX;第四条指令中,AX 不能作为基址存放器用。2.如 TABLE 为数据段中 0100 单元的符号名,其中存放的容为 0FF00H,试问以下两条指令有什么区别?指令执行后,AX 存放器的容是什么?(3 分)MOV AX,TABLEMOV AX,OFFSET TABLE3.对于下面的数据定义,三条 MOV 指令分别汇编成什么?(3 分,答案写在对应指令的右边)TAB1 DW 10 DUP(?)TAB2 DB 10 DUP(?TAB3 DB 1234MOV AX,LENGTH TAB1MOV BL,LENGTH TAB2MOV CL,LENGTH TAB34.子程序的说明文件中应包括哪几方面的容?(5 分)2/4.5、分别指出以下指令中源操作数的寻址方式:(5 分,答案写在对应指令的右边)A.MOV SI,100 立即寻址B.MOV CX,DATASI存放器相对寻址C.MOV SI,AX 存放器寻址D.ADD AX,BX DI基址变址寻址E.POPHF四、四、程序分析程序分析(每题每题 5 5 分,共分,共 2020 分,答案写在程序右边空白处。分,答案写在程序右边空白处。)1 列程序段完成什么工作?DAT1 DB 30 DUP(?)DAT2 DB 10 DUP(?)MOV CX,10MOV BX,20MOV SI,0MOV DI,0NEXT:MOV AL,DAT1BX SI MOV DAT2DI,AL INC SI INC DI LOOP NEXT2执行以下指令后,AX 存放器中的容是什么?START DW 10H,20H,30H,40H,50HEE1 DW 3MOV BX,OFFSET STARTADD BX,EE1MOV AX,BX3试分析下面程序段的功能是什么?CMP AL,AJC OTHERCMP AL,Z+1JNC OTHERJMP LETTEROTHER:LETTER:4.下面程序段执行完以后,AL 的容是什么?MOV BX,00FFHAND BX,0FFFH3/4.OR BX,0F0FHXOR BX,00FFH五、五、程序设计程序设计(每题每题 1010 分,共分,共 3030 分分)1.试编写出把 DX、AX 中的双字右移四位的程序段。2.定义一个数据区,它包含有 23H,24H,25H 和 26H 四个字符数据,把这个数据区复制 20 次,并显示出复制结果。3.存自 BUF 单元开场的缓冲区连续存放着 100 个学生的英文分数,编程序统计其中 90100,6089,60 以下者各有多少人?并把结果连续存放到自 RESUT 开场的单元中,(要求画出程序流程图,各段定义完整)汇编语言程序设计试题答案汇编语言程序设计试题答案一五、程序设计五、程序设计(每题每题 1010 分,共分,共 3030 分分)1)1.MOV CL,04SHR AX,CLMOV BL,DLSHR DX,CLSHL BL,CLOR BL,AH2 2.DATA SEGMENTPATTERN DB 23H,24H,25H,26HDISPLAY DB 80 DUP(),$DATE ENDSCODESEGMENTCLDLEA SI,PATTERNLEA DI,DISPLAYMOV CX,80REP MOVSBMOV AH,09HLEA DX,DISPLAYINT21HRETCODE ENDS3 3.DATA SEGMENTBUF DB 40H,64H,51HRESUT DB 3 DUP(0)DATA ENDSSTACK SEGMENT STACKDB100 DUP(0)STACK ENDSCODE SEGMENTASSUME DSDATA,ESDATA,SSSTACK,CSCODESTART PROC FARPUSHDSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV、AX,STACKMOV SS,AXLEA SI,BUFMOV CX,100CLDAO:LODSBCMP AL,5AHJL L60INC RESUTJMP COML60:CMP AL,3CHJGE K8960INC RESUT+1JMP COMK8960:INC RESUT+2COM:LOOP AORETSTART ENDPCODE ENDSEND START4/4