1、PC技术机试模拟试卷 96及答案与解析 一、程序设计题 1 内存单元连续存放的 20个 8位有符号数 (补码 )是由一个 8位 A/D转换器采集的双极性值的双极性信号 (Xn),现有要求对该信号作如下限幅处理 (处理后的信号记做 Yn)。 a Yn=-100 Xn -100 b. Yn=Xn |Xn| 100 c Yn=100 Xn 100 例如: Xn=68H, 8EH, 38H Yn: 64H, 60H, 9CH, 38H 部分程序已经在 PROG1.ASM中给出 ,请填空 BEGIN到 END之间已经给出的源程序,使其完整 (空白已经用横线标出,每行空白一般只需要一条指令,但功能相当多条
2、指令亦可 )或删除 BE GIN到 END之间的原有代码并自行编写程序片段完成所需的功能。 原有数据由过程 LOAD从文件 INPUT1.DAT中读入 SOURCE开始的内存单元中,结果要求从 RESULT开始存放,由 SAVE保存到 OUT1.DAT文件。 对程序必须进行汇编,并与 IO.OBJ链接产生 PROG1.EXE执行文件,最终产生运行结果 (无结果或结果不正确均不得分 )。调试中若发现整个 程序中存在错误之处,请加以修改。 PROG1.ASM源程序如下: EXTRN LOAD: FAR, SAVE: FAR N EQU 20 MAX-VAL EQU 100 STAG SEGMENT
3、 STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(?) RESULT DB N DUP(?) NAME0 DB INPUT1.DAT, 0 NAME1 DB OUTPUT1.DAT, 0, DATA ENDS CODE SEGMENT ASSUMEME CS: CODE, DS: DATA, SS: STAC START PROC FAR PUSH DS XOR AX, AX MOV AX, DATA MOV DS ? AX LEA DX, SOURCE ; 数据区起始地址 LEA SI, NAME0 ; 原始数据文件名起始
4、地址 MOV CX,N ; 字节数 CALL LOAD ; 从 INPUT1. DAT中读取数据 ;, * * * * BEGIN * * * * LEA SI, SOURCE LEA DI, RESULT _ NEXT: MOV AL, SI CMP AL, - MAX - VAL _ LESS CMP AL, MAX - VAL _ MOV AL, MAX - AL JMP STORE LESS: MOV AL, - MAX - VAL STORE: MOV DI, AL _ _ _ * * * * END * * * * LEA DX,RESULT ; 结果数据区首址 LEA SI,NA
5、ME1 ; 结果文件名起始地址 MOV CX,N ; 字节数 CALL SAVE ; 保存结果到 “output1. dat“ 文件中 RET START ENDP CODE ENDS END START PC技术机试模拟试卷 96答案与解析 一、程序设计题 1 【正确答案】 ; * * * * BDGIN * * * * LEA SI, SOURCE LEA DI, RESULT MOV CX,20 NEXT: MOV AL, SI CMP AL, -MAX-VAL JL IESS CMP AL, MAX-VAL JL STORE MOV AL, MAX-AL JMP STORE LESS: MOV AL, -; MAX-VAL STORE: MOV DI, AL INCSI或 ADDSI: 1 1NC DI或 ADD DI, 1 LOOP NEXT ; * * * * END * * * *