1、PC技术机试模拟试卷 38及答案与解析 一、程序设计题 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 之间补充
2、一段源程序,完成要求的功能。 对程序必须进行汇编,并与 IO.OBJ链接产生 PROG1.EXE执行文件,最终产生运行结果。 部分程序如下: ; PROG1. ASM EXTRN LOAD:FAR, SAVE:FAR LEN EQU 20 N EQU 10 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 ASSU
3、ME CS:CSEG, DS:DSEG;SS:SSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX 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技术机试模拟试卷 38答案与解析 一、程序设计题 1 【正确答案】 ; * BEGIN * LEA SI,SOURCE LEA DI,RESULT LOOP1: MOV AL,SI CMP AL,00H JE EXIT NEXT: INC SI MOV AH,SI CMP AL,AH JE NEXT MOV DI ,AL INC DI JMP LOOP1 EXIT: 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