1、PC技术机试模拟试卷 41及答案与解析 一、程序设计题 1 请编制程序,其功能为:设由 20个 8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组 (顺序不变 )。结果存放在 RESULT开始的内存单元中。 部分程序已经给出,其中原始数据由 LOAD过程从文件 INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从 RESULT开始存放,由 SAVE过程保存到 OUTPUT1.DAT文件中。请在 BEOIN和 END之间补充使其完整。 对程序必须进行汇编,并与 IO.OBJ链接产生 PROG1.EXE执行文件,最终产生运行结果。 部分程序如下: ; PROG1.
2、ASM EXTRN LOAD:FAR, SAVE:FAR LEN EQU 20 DSEG SEGMENT SOURCE DW N DUP (?) RESULT DW N DUP (0) NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DSEG ENDS SSEG SEGMENT STACK DB 256 DUP (?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG;SS:SSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX, DSEG MOV DS,AX
3、 MOV ES, AX LEA DX, SOURCE LEA SI,NAME0 MOV CX,N CALL LOAD ; * BEGIN * ; * END * LEA DX, RESULT LEA SI,NAME1 MOV CX,N CALL SAVE RET START ENDP CSEG ENDS END START PC技术机试模拟试卷 41答案与解析 一、程序设计题 1 【正确答案】 ; * BEGIN * LEA SI,SOURCE LEA DI,RESULT MOV CX,20 LOOP1: MOV AL,SI MOV AH,AL SHR AH,1 JNC LOOP2 CMP AL,0. JNL LOOP2 JMP EXIT LOOP2: MOV DI,AL INC, DI EXIT: INC SI LOOP LOOP1 ; * END * INPUT 1.DAT 中的输入数据 : 81 H,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 4A 40 42 23 00