1、三级 PC技术机试-234 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.试题要求如下:请编制程序,其功能是:内存中连续放着 20个 ASCII字符,如果是小写字母 AZ 之间的字符,请把它们转换成相应的小写字母:若为其他字符,均转换成 ASCII字符NUL (00H)。例如:内存中有:41H (A),42H (B),5EH,64H,48H结果为: 61H (a),62H (b),00H(NUL),00H(NUL),00H(NUL)部分程序已给出,其中原始数据由过程 LOAD从文件 INPUT1.DAT中读入 SOURCE开始的内存单元中
2、,运算的结果要求从 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 OUTPUT1.DAT, 0DATA
3、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
4、, L+I ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_三级 PC技术机试-234 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.试题要求如下:请编制程序,其功能是:内存中连续放着 20个 ASCII字符,如果是小写字母 AZ 之间的字符,请把它们转换成相应的小写字母:若为其他字符,均转换成 ASCII字符NUL (00H)。例如:内存中有:41H (A),42H (B),5EH,64H,48H结果为: 61H (a),62H (b),00H(NU
5、L),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 DU
6、P(?)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, RES
7、ULT; * BEGIN *; * END *LEA DX, RESULT ; 结果数据区首址LEA SI, NAME1 ; 结果文件名MOV CX, L+I ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)_正确答案:(MOV CX, NNEXT: MOV AL, SICMP AL, AJB PROCMP AL, ZJA PROXOR AL, 20HJMP PSHPRO: MOV AL, 00HPSH: MOV DI, ALINC DIINC SILOOP NEXT)解析:解析 本程序要求将 AZ 之间的字母转换成相对应的小写字母。DI 中存放着的是转换后的偏移地址,每次加 1;AL 的作用是相当于一个指针,每次 SOURCE与它相加;CX 是一个循环计数器,每次减1。