1、三级 PC 技术机试-204 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,其功能为:设由 20 个 8 位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。结果存放在 RESULT 开始的内存单元中。部分程序已经给出,其中原始数据由 LOAD 过程从文件 INPUT1.DAT 中读入从 SOURCE 开始的内存单元,运算结果要求从 RESULT 开始存放,由 SAVE 过程保存到 OUTPUT1.DAT 文件中。请在 BEGIN 和 END 之间补充使其完整。对程序必须进行汇编,并与 IO.OBJ
2、链接产生 PROG1.EXE 执行文件,最终产生运行结果。部分程序如下:; PROG1.ASMEXTRN LOAD:FAR,SAVE:FARLEN EQU 20DSEG SEGMENTSOURCE DW N DUP (?)RESULT DW N DUP (0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DSEG ENDSSSEG SEGMENT STACKDB 256 DUP (?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG, DS:DSEG;SS:SSEGSTART PROC FARPUSH DSXOR AX,AXPUSH
3、 AXMOV AX, DSEGMOV DS,AXMOV ES, AXLEA DX, SOURCELEA SI,NAME0MOV CX,NCALL LOAD; * BEGIN *; * END *LEA DX, RESULTLEA SI,NAME1MOV CX,NCALL SAVERETSTART ENDPCSEG ENDSEND START(分数:100.00)_三级 PC 技术机试-204 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,其功能为:设由 20 个 8 位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数
4、组(顺序不变)。结果存放在 RESULT 开始的内存单元中。部分程序已经给出,其中原始数据由 LOAD 过程从文件 INPUT1.DAT 中读入从 SOURCE 开始的内存单元,运算结果要求从 RESULT 开始存放,由 SAVE 过程保存到 OUTPUT1.DAT 文件中。请在 BEGIN 和 END 之间补充使其完整。对程序必须进行汇编,并与 IO.OBJ 链接产生 PROG1.EXE 执行文件,最终产生运行结果。部分程序如下:; PROG1.ASMEXTRN LOAD:FAR,SAVE:FARLEN EQU 20DSEG SEGMENTSOURCE DW N DUP (?)RESULT
5、DW N DUP (0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DSEG ENDSSSEG SEGMENT STACKDB 256 DUP (?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG, DS:DSEG;SS:SSEGSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX, DSEGMOV DS,AXMOV ES, AXLEA DX, SOURCELEA SI,NAME0MOV CX,NCALL LOAD; * BEGIN *; * END *LEA DX, RESULTLEA SI,
6、NAME1MOV CX,NCALL SAVERETSTART ENDPCSEG ENDSEND START(分数:100.00)_正确答案:(答案 本题答案为:; * BEGIN *LEA SI,SOURCELEA DI,RESULTMOV CX,20LOOP1: MOV AL,SIMOV AH,ALSHR AH,1JNC LOOP2CMP AL,0JNL LOOP2JMP EXITLOOP2: MOV DI,ALINC, DIEXIT: INC SILOOP LOOP1; * END *INPUT 1.DAT 中的输入数据:81H,60H,8EH,38H,68H,60H,8EH,38H,68H,5EH,50H,64H,52H,55H,48H,3AH,4AH,40H,42H,23H输出结果60 8E 38 68 60 8E 38 68 5E 50 64 52 55 48 3A 4A40 42 23 00)解析: