【计算机类职业资格】三级PC技术机试-196及答案解析.doc

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

1、三级 PC技术机试-196 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,其功能是:内存中连续存放的 20个八位无符号数是一个自动抄表示抄录的 20个用户某月的用水量(立方米),为了控制用水量,水费计算公式如下(X 表示用水量;Y 表示水费,单位为分):a) Y=X*70 X=10b) Y=10*70+(X-10)*120 X10例如:用水量(X):04H,0FH,18H水费(Y): 0118H,0514H,094CH试计算出这 20个用户应缴纳的水费,结果用字(word)表示。部分程序已给出原始数据由过程 LOAD从文件 I

2、NPUT.DAT中读入 SOURCE开始的内存单元中,结果要求从RESULT开始存放,由过程 SAVE保存到文件 OUTPUT.DAT中。请填空 BEGIN和 END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除 BEGIN和 END之间原有的代码并自行编写程序片段来完成所要求的功能。对程序必须进行汇编,并与 IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。【试题程序】EXTRN LOAD:FAR,SAVE:FARN EQU 20RATE1 EQU 70RATE2 EQU 120

3、DELTA EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DW N DUP(0)NAME0 DB INPUT.DAT,0NAME1 DB OUTPUT.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXNOV AX, DATAMOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名起始地

4、址NOV CX,N ; 字节数CALL LOAD ; 从INPUT.DAT中读取数据; * BEGIN *LEA SI, SOURCELEA DI, RESULTCLDMOV CX,NMOV BL,RATE1MOV BH,RATE2NEXT:U /UCMP AL,DELTAJU /U GREATMUL BLJMP STOREGREAT:U /UMUL BHU /USTORE:U/UU /UINC SILOOP NEXT; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名起始地址MOV CX,N*2 ; 字节数CALL SAVE ; 保存结果到

5、OUTPUT.DAT文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_三级 PC技术机试-196 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,其功能是:内存中连续存放的 20个八位无符号数是一个自动抄表示抄录的 20个用户某月的用水量(立方米),为了控制用水量,水费计算公式如下(X 表示用水量;Y 表示水费,单位为分):a) Y=X*70 X=10b) Y=10*70+(X-10)*120 X10例如:用水量(X):04H,0FH,18H水费(Y): 0118H,0514H,094CH试

6、计算出这 20个用户应缴纳的水费,结果用字(word)表示。部分程序已给出原始数据由过程 LOAD从文件 INPUT.DAT中读入 SOURCE开始的内存单元中,结果要求从RESULT开始存放,由过程 SAVE保存到文件 OUTPUT.DAT中。请填空 BEGIN和 END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除 BEGIN和 END之间原有的代码并自行编写程序片段来完成所要求的功能。对程序必须进行汇编,并与 IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。【试题程序】EX

7、TRN LOAD:FAR,SAVE:FARN EQU 20RATE1 EQU 70RATE2 EQU 120DELTA EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DW N DUP(0)NAME0 DB INPUT.DAT,0NAME1 DB OUTPUT.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXNOV AX, DATAMOV

8、 DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名起始地址NOV CX,N ; 字节数CALL LOAD ; 从INPUT.DAT中读取数据; * BEGIN *LEA SI, SOURCELEA DI, RESULTCLDMOV CX,NMOV BL,RATE1MOV BH,RATE2NEXT:U /UCMP AL,DELTAJU /U GREATMUL BLJMP STOREGREAT:U /UMUL BHU /USTORE:U/UU /UINC SILOOP NEXT; * END *LEA DX,RESULT ; 结果数据区首址LEA

9、 SI,NAME1 ; 结果文件名起始地址MOV CX,N*2 ; 字节数CALL SAVE ; 保存结果到OUTPUT.DAT文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_正确答案:(MOV AL,SI (2) A (3) SUB AL,10(4) ADD AX,10*70 (5) MOV DI,AX (6) ADD DI,2)解析:解析本题是一道分段计算题,此类题型的关键是确定数据范围、数据类型以及计算方法。本题的数据范围在题目中已明确给出,即 20个无符号字节数,共占 20个存储单元。这样数据的类型也一同确定了,需要计算的原始数据为无符号字节数,运算结果按序以字的形式连续存放,因此在计算运算结果的偏移位置时要特别小心。很明显计算方法是本题的重点,题目要求的是根据不同的数值范围,采用不同的计算方法,因此要特别注意每个数据计算方法的确定。

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

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

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