【计算机类职业资格】全国计算机等级考试三级PC技术机试真题2009年9月及答案解析.doc

上传人:刘芸 文档编号:1329458 上传时间:2019-10-17 格式:DOC 页数:5 大小:29KB
下载 相关 举报
【计算机类职业资格】全国计算机等级考试三级PC技术机试真题2009年9月及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】全国计算机等级考试三级PC技术机试真题2009年9月及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】全国计算机等级考试三级PC技术机试真题2009年9月及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】全国计算机等级考试三级PC技术机试真题2009年9月及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】全国计算机等级考试三级PC技术机试真题2009年9月及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、全国计算机等级考试三级 PC 技术机试真题 2009 年 9 月及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序 ex9.ASM,其功能是:从 20 个有符号字节数据中取出负数并计算其绝对值之和(字型),然后存放在指定的内存区中,多余的空间填 0。例如:内存中有 80H,02H,00H,7CH,7BH,11H,结果为 80H,00H,FEH,00H,FDH,00H,85H,00H,部分程序已给出,其中原始数据由过程 LOAD 从文件 INPUT1.DAT 中读入 SOURCE 开始的内存单元中,运算的结果要求从 RESULT 开始

2、存放,由过程 SAVE 保存到文件 OUTPUT1.DAT 中。补充 BEGIN 和 END 之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序进行汇编,并与 IO.OBJ 链接产生执行文件,最终运行程序产生结果。调试中发现整个程序中存在错误之处,请加以修改。试题程序 EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 256 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP

3、(?)RESULT DB N DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据; * BEGIN *LEA SI,SOURCELEA DI,RESUL

4、TMOV DX,0MOV CX,NCLDCON:LODSH(1) JGE (2) MOV DI,ALINC DI(3) INC DIADD DL,AL(4) NEXT:LOOP CONMOV DI,DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0(5) ; *END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_全国计算机等级考试三级 PC 技术机试真题 2009 年 9 月答案解析(

5、总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序 ex9.ASM,其功能是:从 20 个有符号字节数据中取出负数并计算其绝对值之和(字型),然后存放在指定的内存区中,多余的空间填 0。例如:内存中有 80H,02H,00H,7CH,7BH,11H,结果为 80H,00H,FEH,00H,FDH,00H,85H,00H,部分程序已给出,其中原始数据由过程 LOAD 从文件 INPUT1.DAT 中读入 SOURCE 开始的内存单元中,运算的结果要求从 RESULT 开始存放,由过程 SAVE 保存到文件 OUTPUT1.DAT 中。补充 BEG

6、IN 和 END 之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序进行汇编,并与 IO.OBJ 链接产生执行文件,最终运行程序产生结果。调试中发现整个程序中存在错误之处,请加以修改。试题程序 EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 256 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DB N DUP(0)NAME0 DB INPUT1.D

7、AT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据; * BEGIN *LEA SI,SOURCELEA DI,RESULTMOV DX,0MOV CX,NCLDCON:LODSH(1) JGE (

8、2) MOV DI,ALINC DI(3) INC DIADD DL,AL(4) NEXT:LOOP CONMOV DI,DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0(5) ; *END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_正确答案:(; * BEGIN *LEA SI,SOURCELEA DI,RESULTMOV DX,0MOV CX,NCLDCON:LODSBCMP

9、AL,0JGE NEXTMOV DI,ALINC DINEG ALINC DIADD DL,ALADC DH,0NEXT:LOOP CONMOV DI,DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0REP STOSB; *END*)解析:解析 本题主要考查有符号数的绝对值之和问题。考生需要注意从 20 个有符号字节数据中取出负数并计算其绝对值之和(字型),然后存放在指定的内存区中,多余的空间用 0 来填补。本题的难点在于从所给的数据中取出负数并计算绝对值之和。其中,CON 所完成的是判断数据,如果是负数则取反加 1,即变为它的绝对值再求和。否则转到 NEXT 中,继续循环判断数据,直到所有数据判断完。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1