好文档 - 专业文书写作范文服务资料分享网站

大全语言程序设计期末考试试卷及参考答案

天下 分享 时间: 加入收藏 我要投稿 点赞

大全语言程序设计期末考

试试卷及参考答案

Revised by BETTY on December 25,2020

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

课程编号:课程名称: 汇编语言程序设计 考试形式: 闭卷 学院: 信息工程 专业: 计算机科学与技术 考试日期: 题号 一 题分 20 得分 二 三 四 五 20 30 六 七 八 九 十 总分 累分人 100 签名 12 18 考生注意事项:1、本试卷共7 页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。 一、单项选择题(每小题 2 分,共 20分) 1.一个有128个字的数据区,它的起始地址为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.CF=0 ; C.ZF=1 ; D.CF=1 。 4.8086CPU在基址加变址的寻址方式中,变址寄存器可以为(D )。 A.BX或CX ; B.CX或SI ; C.DX或SI ; D.SI或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. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 2. C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为: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 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,00H MEXT:(1)ADD AL,[BX] ; 实现将表TABLE中的数据按字节累加到AL中 ADC AH,0 JNC DONE (2)MOVAX,SUM ; 总和值超过AX寄存器的容量,恢复AX的原值 JC EXIT DONE:INCBX (3)LOOP NEXT ; 将计数器CX减1,并判断是否继续下一次循环 EXIT:HLT 2.BUFFER为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。 MOV CX,32H ;循环50次 LEA SI,BUFFER MOV 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 DI LOOPNEXT HLT 四、程序分析题(每小题4分,共20分) 1.设(AX)= X,X是无符号数且0≤X< 6000,分析下面程序段,回答问题; SHL AX,1 ;实现X乘2 MOV BX,AX SHL AX,1 SHL AX,1 ADD AX,BX (1) 该程序段的功能是什么? 实现无符号数X乘10,结果存放在AX寄存器中。 ——2分 (2) 该程序段执行完后,(AX)= 10X ,(BX)= 2X 。——2分 2.现有一子程序段: SUB1 PROC TESTAL,80H JEPLUS TESTBL,80H JNEEXITO JMPXCHANGE PLUS: TESTBL,80H JEEXITO XCHANGE:XCHGAL,BL EXITO: RET SUB1 ENDP 试回答:(1)子程序的功能是什么? 答:子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。 (2)若调用子程序前(AL)=9AH,(BL)=77H,则返回主程序时,(AL)=__77H____,(BL)=_9AH__。 3.现有如下程序段: 请回答: DATA SEGMENT (1) 该程序段占有的存储单元字节数是多少?画ORG 0020H 出所分配的存储区的示意图. DA1 DW12H,23H 答:8个字节, DA2 DB11H,21H 0020H 12H DA1 DA3 DB31H,32H 00H DA4 EQU $-DA3 23H DA5 EQU 1234H 00 DATAENDS 0024H 11H DA2 4.阅读如下程序: 21H ADRR DB XXH,XXH,……,XXH;定义的字节数组元素 0025H 31H DA3 NUM EQU$-ADRR 32H RET_VLAUEDW (2) 符号名DA4的值是多少符号名DA5的值是多 少 … 答:DA4=2,DA5=1234H MOVCX,NUM MOVBX,-1 NEXT: INCBX CMPADRR[BX],0 LOOPNZNEXT JZDONE MOVBX,OFFH DONE: MOVRET_VLAUE,BX HLT 请问:(1)该程序完成的功能是什么? 功能:在以ADRR为起始地址的数组中,查找第一个是0的数据。 (2)程序执行后指出RET_VLAUE单元中的内容是什么? 若找到,则将第一个是0的数据在数组中的偏移量送入RET_VLAUE单元中;若无0数据,则将0FFH送入RET_VLAUE单元中。

大全语言程序设计期末考试试卷及参考答案

大全语言程序设计期末考试试卷及参考答案RevisedbyBETTYonDecember25,2020【汇编语言程序设计】期末考试-试卷及参考答案课程编号:课程名称:汇编语言程序设计考试形式:
推荐度:
点击下载文档文档为doc格式
5vg2x34b3375cln2z0an3ef8l940h6007rs
领取福利

微信扫码领取福利

微信扫码分享