《汇编语言程序设计期末考试试卷及参考答案.pdf》由会员分享,可在线阅读,更多相关《汇编语言程序设计期末考试试卷及参考答案.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!【汇编语言程序设计】期末考试-试卷及参考答案 课程编号:H61030005 课程名称:汇编语言程序设计 考试形式:闭卷 学院:信息工程 专业:计算机科学与技术 考试日期:题号 一 二 三 四 五 六 七 八 九 十 总分 累 分 人 签名 题分 20 12 18 20 30 100 得分 考生注意事项:1、本试卷共 7 页,请查瞧试卷中就是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸与草稿纸带出考场。一、单项选择题(每小题 2 分,共 20 分)1.一个有 128
2、个字的数据区,它的起始地址为 12ABH:00ABH,请给出这个数据区第一个字单元的物理地址就是(A )。A.12B5BH;B.12B6BH;C.12C59H;D.12BFEH。2.在下列指令的中,不能实现把 AX 寄存器内容清零的指令就是(C )。A SUB AX,AX;B.XOR AX,AX;C.OR AX,0000H;D.AND AX,0000H。3.条件转移指令 JNE 的测试条件为(A )。A.ZF=0;B.CF0;C.ZF=1;D.CF=1。4.8086CPU 在基址加变址的寻址方式中,变址寄存器可以为(D )。A.BX 或 CX;B.CX 或 SI;C.DX 或 SI;D.SI
3、或 DI。5.设(AX)=1000H,NEG AX NOT AX 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!执行上述两条指令后,正确的结果就是(B )。A.(AX)=1001H;B.(AX)=0FFFH;C.(AX)=1000H;D.(AX)=0111H。6.串指令中的目的操作数地址一定就是由_A_ _提供。()A.ES:DI;B.SS:BP;C.DS:SI;D.CS:IP。7.将 DX 的内容除以 2,正确的指令就是(C )。A.DIV 2;B.DIV DX,2;C.SAR DX,1;D.SHL DX,1。8、用户为了解决自己的问题,用汇编
4、语言所编写的程序,称为(B )。A.目标程序;B.汇编语言源程序;C.可执行程序;D.汇编程序。9.用一条指令仅实现将 AXBX+SI 的方法就是(D )。A XCHG AX,BXSI;B MOV AX,BX+SI;C.LEA AX,BXSI;D.LEA AX,BXSI。10.设 SP 初值为 2000H,执行指令“PUSH AX”后,SP 的值就是(C)。A.1FFFH;B.1998H;C.1FFEH;D.2002H。1、A 2、C 3、A 4、D 5、B 6、A 7、C 8、B 9、D 10、C 二、指出下列指令的出错原因,并改正。(每小题 2 分,共 12 分)1 MOV BX,DL;操
5、作数类型不匹配,改正为:MOV BL,DL 或 MOV BX,DX 2 MOV CS,AX;代码段寄存器 CS 不能作目的操作数,改正为 MOV DS,AX 3 ADD AX,DS;段寄存器 DS 的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4 TEST BX,CX;不能使用 CX 实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,SI 5 SUB BX,BP+SI;两个操作数不能同为存储器操作数,且两个操作数的数据类型 不确定,改正为:MOV AX,BX SUB AX,BP+SI 或:MOV AL,BX SUB AL,BP+SI 6.SHL
6、DX ;没有给出移位次数,改正为 SHL DX,1 或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空 3 分,共 18 分)1 在表 TABLE 处存放着 N 个无符号字节数,求表中前 10 个字节数的总与并保存在 AX 寄存器中。如果总与值超过 AX 寄存器的容量,则置 AX 寄存器内容不变。请在程序中的空格处填入适当指令使其完整。LEA BX,TABLE MOV CX,10 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV SUM,AX ;将 AX 的原值保存在 SUM 单元中 MOV AL
7、,00H MEXT:(1)ADD AL,BX;实现将表 TABLE 中的数据按字节累加到 AL 中 ADC AH,0 JNC DONE(2)MOV AX,SUM;总与值超过 AX 寄存器的容量,恢复 AX 的原值 JC EXIT DONE:INC BX (3)LOOP NEXT ;将计数器 CX 减 1,并判断就是否继续下一次循环 EXIT:HLT 2 BUFFER 为起始地址的存储区域中存放有 100 个字节数据,现将其首、尾颠倒过来,重新排放这 100个字节数据。请在程序中的空格处填入适当的指令使其完整。MOV CX,32H ;循环 50 次 LEA SI,BUFFER MOV DI,SI
8、 (1)ADD DI,99 ;DI 指向最后一个字节数据的存储单元的偏移地址 NEXT:MOV AL,SI (2)XCHG AL,DI;交换 SI 与 DI 所指向单元的内容 MOV SI,AL (3)INC SI ;使指针 SI 加 1,指向下一个字节的数据 DEC DI LOOP NEXT HLT 四、程序分析题(每小题 4 分,共 20 分)1 设(AX)=X,X 就是无符号数且 0X-32768),并存放在 M_average 单元中。(本小题 10 分)data SEGMENT Buffer DW XXXX,XXXX,XXXX;N 个字 count EQU($-Buffer)/2 M
9、_average dw?data ENDS code SEGMENT 得分 评阅人 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!ASSUME cs:code,da:data start:mov ax,data mov ds,ax mov cx,count lea si,Buffer xor ax,ax ;存负数的与 mov bx,ax ;存负数的个数 next:test word ptr si,8000H je go_on add ax,si inc bx go_on:add si,2 loop next 3.从键盘接收一串不多于 99 个字符
10、的字符串,对其进行分类统计,显示其中数字字符个数、大写英文字母个数、小写英文字母个数、以及其她字符的个数。要求使用子程序结构;数字字符的 ASCII 码为30H39H、大写英文字母的 ASCII 码为 41H5AH、小写英文字母的 ASCII 码为 61H7AH。(本小题 12 分)data SEGMENT MSG DB 0DH,0AH,输入一串字符:$MSG1 DB 0DH,0AH,大写字母个数:$MSG2 DB 0DH,0AH,小写字母个数:$MSG3 DB 0DH,0AH,数字符号个数:$MSG4 DB 0DH,0AH,其它符号个数:$BUFFER DB 99 DB 0 DB 99 DU
11、P(?)BIG DB 0 ;大写字母个数 LITTLE DB 0 ;小写字母个数 DIG DB 0 ;数字符号个数 OTHER DB 0 ;其它符号个数 data ENDS code SEGMENT ASSUME cs:code,da:data start:mov ax,data mov ds,ax lea dx,MSG mov ah,9 ;9 号功能调用显示提示信息 int 21h lea dx,BUFFER mov ah,10 ;10 号功能调用从键盘接收一串字符 int 21h mov cl,BUFFER+1;实际从键盘接收字符个数 mov ch,0 lea si,BUFFER+2 ag
12、ain:cmp byte ptr si,30H jb others cmp byte ptr si,39H jbe digitals cmp byte ptr si,41H jb others cmp byte ptr si,5AH cwd idiv bx mov M_average,ax;存负数的平均值 mov ah,4ch int 21h data ends end start 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!jbe bigs cmp byte ptr si,61H jb others cmp byte ptr si,7AH j
13、be littles others:inc OTHER jmp ok digitals:inc DIG jmp ok littles:inc LITTLE jmp ok bigs:inc BIG ok:inc si loop again lea dx,MSG1 mov bh,BIG call dispdec lea dx,MSG2 mov bh,LITTLE call dispdec lea dx,MSG3 mov bh,DIG call dispdec lea dx,MSG4 mov bh,OTHER call dispdec mov ah,4ch int 21h;DX 待显示数据说明,BH 待显示数据100 dispdec PROC mov ah,9 int 21h mov al,bh xor ah,ah aam mov dl,ah mov dh,al add dl,30H mov ah,2 int 21H mov dl,dh add dl,30H mov ah,2 int 21H ret dispdec ENDP code ENDS end start
限制150内