【汇编语言程序设计】期末考试-试卷及参考答案剖析

上传人:今*** 文档编号:105947419 上传时间:2019-10-14 格式:DOC 页数:9 大小:89KB
返回 下载 相关 举报
【汇编语言程序设计】期末考试-试卷及参考答案剖析_第1页
第1页 / 共9页
【汇编语言程序设计】期末考试-试卷及参考答案剖析_第2页
第2页 / 共9页
【汇编语言程序设计】期末考试-试卷及参考答案剖析_第3页
第3页 / 共9页
【汇编语言程序设计】期末考试-试卷及参考答案剖析_第4页
第4页 / 共9页
【汇编语言程序设计】期末考试-试卷及参考答案剖析_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《【汇编语言程序设计】期末考试-试卷及参考答案剖析》由会员分享,可在线阅读,更多相关《【汇编语言程序设计】期末考试-试卷及参考答案剖析(9页珍藏版)》请在金锄头文库上搜索。

1、 课程编号: H61030005 课程名称: 汇编语言程序设计 考试形式: 闭卷 学院: 信息工程 专业: 计算机科学与技术 考试日期: 题号一二三四五六七八九十总分累分人 签名题分2012182030 100得分考生注意事项:1、本试卷共7 页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、单项选择题(每小题 2 分,共 20分) 1一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区第一个字单元的物理地址是( A )。A12B5BH ; B12B6BH ;C12C59H; D12BFEH。2

2、在下列指令的中,不能实现把AX寄存器内容清零的指令是( C )。A SUB AX,AX;BXOR AX,AX;COR AX,0000H;DAND AX,0000H。3条件转移指令JNE的测试条件为( A )。AZF=0 ; BCF0 ;CZF=1 ; DCF=1 。48086CPU在基址加变址的寻址方式中,变址寄存器可以为(D )。ABX或CX ; BCX或SI ;CDX或SI ; DSI或DI。5设(AX)=1000H,NEG AX NOT AX【汇编语言程序设计】期末考试-试卷及参考答案执行上述两条指令后,正确的结果是( B )。A(AX)=1001H; B(AX)=0FFFH;C(AX)

3、=1000H; D(AX)=0111H。6串指令中的目的操作数地址一定是由_A_ _提供。( )AES:DI ; BSS:BP;CDS:SI ; DCS:IP。7将DX的内容除以2,正确的指令是( C )。ADIV 2 ;BDIV DX,2 ;CSAR DX,1;DSHL DX,1。8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A目标程序; B汇编语言源程序; C可执行程序; D汇编程序。9用一条指令仅实现将AXBX+SI的方法是( D )。A XCHG AX,BXSI ;B MOV AX,BX+SI;CLEA AX,BXSI ;DLEA AX,BXSI。10设SP初

4、值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A1FFFH; B1998H;C1FFEH; D2002H。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;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2 MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX3 ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为MOV BX,DSADD AX,BX 4 TEST BX,CX;不能使用CX实现

5、寄存器间接寻址,改正为MOV SI,CXTEST BX,SI 5 SUB BX,BP+SI;两个操作数不能同为存储器操作数,且两个操作数的数据类型 不确定,改正为:MOV AX,BXSUB AX,BP+SI或:MOV AL,BXSUB AL,BP+SI 6SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分)1 在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令

6、使其完整。LEA BX,TABLEMOV CX,10MOV SUM,AX ;将AX的原值保存在SUM单元中 MOV AL,00HMEXT:(1)ADD AL,BX ; 实现将表TABLE中的数据按字节累加到AL中 ADC AH,0JNC DONE(2)MOVAX,SUM ; 总和值超过AX寄存器的容量,恢复AX的原值 JC EXITDONE:INCBX (3)LOOP NEXT ; 将计数器CX减1,并判断是否继续下一次循环 EXIT:HLT2 BUFFER为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。

7、MOV CX,32H ;循环50次LEA SI,BUFFERMOV DI,SI(1) ADD DI,99 ;DI指向最后一个字节数据的存储单元的偏移地址 NEXT:MOV AL,SI (2) XCHG AL,DI;交换SI和DI所指向单元的内容 MOV SI,AL(3) INC SI ;使指针SI加1,指向下一个字节的数据 DEC DILOOPNEXTHLT四、程序分析题(每小题4分,共20分)1 设(AX)= X,X是无符号数且0X 6000,分析下面程序段,回答问题; SHL AX,1 ;实现X乘2 MOV BX,AX SHL AX,1 SHL AX,1 ADD AX,BX(1) 该程序段

8、的功能是什么? 实现无符号数X乘10,结果存放在AX寄存器中。 2分(2) 该程序段执行完后,(AX)= 10X ,(BX)= 2X 。2分2 现有一子程序段:SUB1 PROCTESTAL,80HJEPLUSTESTBL,80HJNEEXITOJMPXCHANGEPLUS: TESTBL,80H JEEXITOXCHANGE:XCHGAL,BLEXITO: RETSUB1 ENDP试回答:(1)子程序的功能是什么?答:子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。 (2)若调用子程序前(AL)=9AH,(BL)=77H,则返回主程序时,(AL)=_77H_,(BL

9、)=_9AH_。 请回答:(1) 该程序段占有的存储单元字节数是多少?画出所分配的存储区的示意图. 答:8个字节, 0020H 12H DA100H23H000024H 11H DA2 21H0025H 31H DA3 32H(2) 符号名DA4的值是多少?符号名DA5的值是多少? 答:DA4=2,DA5=1234H3 现有如下程序段:DATA SEGMENTORG 0020HDA1 DW12H,23HDA2 DB11H,21HDA3 DB31H,32H DA4 EQU $-DA3DA5 EQU 1234H DATAENDS4 阅读如下程序:ADRR DB XXH,XXH,XXH;定义的字节数

10、组元素NUM EQU$-ADRRRET_VLAUEDW ?MOVCX,NUMMOVBX,-1NEXT: INCBXCMPADRRBX,0LOOPNZNEXT JZDONE MOVBX,OFFHDONE: MOVRET_VLAUE,BXHLT请问:(1)该程序完成的功能是什么?功能:在以ADRR为起始地址的数组中,查找第一个是0的数据。(2)程序执行后指出RET_VLAUE单元中的内容是什么? 若找到,则将第一个是0的数据在数组中的偏移量送入RET_VLAUE单元中;若无0数据,则将0FFH送入RET_VLAUE单元中。5 阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 OR

11、G100H BLOCK DWX1,X2,XN COUNT EQU ($-BLOCK)/2 RESULTDW COUNT,?LEABX,BLOCK-2MOVCX,RESULTXORAX,AXGO_ON:ADDBX,2CMPAX,BXJAENEXTMOVAX,BXNEXT: LOOPGO_ONMOVRESULT+2,AX程序段执行完,回答下述问题:RESULT+2字存储单元的内容= MAX(X1,X2,XN ) ; BX = 100H+2(COUNT-1) ; 程序循环次数 = COUNT 。 五、编写程序(30分)得分评阅人 1编写一程序,在letter为首地址的26个单元中依此存放字母A、B、Z。(本小题8分) data SEGMENT letter DB 26 DUP(?) count EQU $-letter data ENDS code SEGMENT ASSUME cs:code,da:data start: mov ax,data mov ds,ax mov cx,count lea si,letter mov al,A next: m

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号