1、三级 PC 技术机试-208 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以 00H 结束,长度不超过 20 个字节。例如:原字符串为:4EH,4EH,4EH,42H,1AH,31H,31H,00H:新字符串为:4EH,42H,1AH,31H,00H部分程序已经给出,其中原始数据由 LOAD 过程从文件 INPUT1. DAT 中读入从 SOURCE 开始的内存单元,运算结果要求从 RESULT 开始存放,由 SAVE 过程保存到 OUTPUT
2、1.DAT 文件中。请在 BEGIN 和 END 之间补充一段源程序,完成要求的功能。对程序必须进行汇编,并与 IO.OBJ 链接产生 PROG1.EXE 执行文件,最终产生运行结果。部分程序如下:; PROG1. ASMEXTRN LOAD:FAR,SAVE:FARLEN EQU 20N EQU 10DSEG 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
3、 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,NAME1MOV CX,NCALL SAVERETSTART ENDPCSEG ENDSEND START(分数:100.00)_三级 PC 技术机试-208 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(
4、总题数:1,分数:100.00)1.请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以 00H 结束,长度不超过 20 个字节。例如:原字符串为:4EH,4EH,4EH,42H,1AH,31H,31H,00H:新字符串为:4EH,42H,1AH,31H,00H部分程序已经给出,其中原始数据由 LOAD 过程从文件 INPUT1. DAT 中读入从 SOURCE 开始的内存单元,运算结果要求从 RESULT 开始存放,由 SAVE 过程保存到 OUTPUT1.DAT 文件中。请在 BEGIN 和 END 之间补充一段源程序,完成要求的功能。对程序必须
5、进行汇编,并与 IO.OBJ 链接产生 PROG1.EXE 执行文件,最终产生运行结果。部分程序如下:; PROG1. ASMEXTRN LOAD:FAR,SAVE:FARLEN EQU 20N EQU 10DSEG 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 PRO
6、C FARPUSH DSXOR AX,AXPUSH 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)_正确答案:(答案 本题答案为:; * BEGIN *LEA SI,SOURCELEA DI,RESULTLOOP1: MOV AL,SICMP AL,00HJE EXITNEXT: INC SIMOV AH,SICMP AL,AHJE NEXTMOV DI ,ALINC DIJMP LOOP1EXIT: MOV DI, AL; * END *INPUT1. DAT 中的输入数据:4EH,4EH,4EH,42H, 1AH,31H,31H,00H,23H,25H输出结果4E 42 1A 31 00 00 00 00 00 00)解析: