1、全国计算机等级考试三级 PC 技术机试真题 2010 年 3 月及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序 ex10.ASM,其功能是:内存中连续放着 20 个 ASC字符,如果是大写字母 AZ 之间的字符,请把它们转换成相应的小写字母;若为其他字符,均转换成 ASC字符NUL(00H)。例如:内存中有:41H(A),42H(B),5EH,64H,48H结果为:61H(a),62H(b),00H(NUL),00H(NUL),00H(NUL)部分程序已给出,其中原始数据由过程 LOAD 从文件 INPUT1.DAT 中读入 S
2、OURCE 开始的内存单元中,运算的结果要求从 RESULT 开始存放,由过程 SAVE 保存到文件 OUTPUT1.DAT 中。在 BEGIN 和 AND 之间编程完成要求的功能。对程序进行汇编,并与 IO.OBJ 链接产生 PROG1.EXE 执行文件,最终运行程序产生结果。试题程序 EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DB N DUP(0FH)NAME0 DB INPUT1.DAT,0NAME1 DB OUTP
3、UT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据LEA SI,SOURCELEA DI,RESULT; *BEGIN*; *END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,L+1 ;结果字节数
4、CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_全国计算机等级考试三级 PC 技术机试真题 2010 年 3 月答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序 ex10.ASM,其功能是:内存中连续放着 20 个 ASC字符,如果是大写字母 AZ 之间的字符,请把它们转换成相应的小写字母;若为其他字符,均转换成 ASC字符NUL(00H)。例如:内存中有:41H(A),42H(B),5EH,64H,48H结果为:61H(a),62H(b),00H(NUL),
5、00H(NUL),00H(NUL)部分程序已给出,其中原始数据由过程 LOAD 从文件 INPUT1.DAT 中读入 SOURCE 开始的内存单元中,运算的结果要求从 RESULT 开始存放,由过程 SAVE 保存到文件 OUTPUT1.DAT 中。在 BEGIN 和 AND 之间编程完成要求的功能。对程序进行汇编,并与 IO.OBJ 链接产生 PROG1.EXE 执行文件,最终运行程序产生结果。试题程序 EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N
6、DUP(?)RESULT DB N DUP(0FH)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,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据LEA SI,SOURCELEA DI,RESULT; *BEGIN*; *EN
7、D*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,L+1 ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_正确答案:(; * BEGIN *MOV CX,NNEXT: MOV AL,SICMP AL,AJB PER2CMP AL,ZJA PER2XOR AL,20HJMP PSHPER2: MOV AL,00HPSH: MOV DI,ALINC DIINC SILOOP NEXT;*END*)解析:解析 本题主要考查将大写字母改写成小写字母的实现方法问题;考生需要注意知道大写字母和小写字母对应的 ASC码字符,如 61H(a),62H(b);41H(A),42H(B)。本题难点在于具体如何将大写字母转换为小写字母的 ASC码字符:利用循环依次对每个字符进行判断是否是大写字母,若是则加上 32 即成为该字母相对应的小写字母。