1、PC技术机试模拟试卷 40及答案与解析 一、程序设计题 1 请编制程序,其功能为:内存中连续存放着 20个无符号字节数,求它们的和。和值按字的形式存放,此前先按序存放参加运算的 20个字节。 例如; 内存中有: 01H, 02H, 03H 结果为: 01H, 02H, 03H ( 参加运算的字节 ),后跟一个字 (为前面各字节的和 ) 部分程序已经给出,其中原始数据由 LOAD过程从文件 INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从 RESULT开始存放,由 SAVE过程 保存到 OUTPUT1.DAT文件中。请在 BEGIN和 END之间补充使其完整,完成要求的功能
2、。或删除 BEGIN和 END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与 IO.OBJ链接产生 PROG1.EXE执行文件,最终产生运行结果。 部分程序如下: ;PROG1.ASM EXTRN LOAD:FAR,SAVE:FAR N 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 SEGMEN
3、T ASSUME CS:CSEG, DS:DSEG;SS;SSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX, DSEG MOV DS,AX LEA DX,SOURCE LEA SI,NAME0 MOV CX,N CALL LOAD ; * BEGIN * LEA SI,SOURCE LEA DI,RESULT MOV CX,N MOV BX,0 NEXT: MOV AL,SI _ _ MOV DI,_ _ _ LOOP NEXT MOV DI,_ ; * END * LEA DX,RESULT LEA SI,NAME1 MOV CX,N+
4、2 CALL SAVE RET START ENDP CSEG ENDS END START PC技术机试模拟试卷 40答案与解析 一、程序设计题 1 【正确答案】 ; * BEGIN * LEA SI, SOURCE LEA DI, RESULT MOV CX,N MOV BX, 0 NEXT: MOV AL, SI ADD BL, AL ; 将 SOURCE 原始数据区中相应的数累加。 ; BL ADC BH, 0 ; 将上一条加法指令中产生的进位加入至和 ; 值的高 8位 BH 中 MOV DI,AL ; 将 SOURCE 原始数据区中的数存入 ; RESULT 相应单元 INC SI INC DI LOOP NEXT ; (CX)-1, 若 (CX)0,则转移 NEXT MOV DI,BX ; 因最后依次循环中 DI 已加 1,故 BX将紧 ; 跟在这 20个数之后存入 ; * END * INPUT1.DAT 中的输入数据 : FFH,8OH,7FH,FOH, 14H,84H,25H,7EH,3 CH,45H, FFH,80H,O1H,O2H,22H,FCH,E3H,A3H,12H,01H 输出结果 FF 80 7F F0 14 84 25 7E 3C 45 FF 80 01 02 22 FC 113 A3 12 01 E3 08