推荐文章:全国计算机等级考试一级05 推荐文章简介: 1. 在Word的编辑状态,单击文档窗口标题栏右侧的按钮 后,会( )。D A、将窗口关闭 B、打开一个空白窗口 C、使文档窗口独占屏幕 D、使当前窗口缩小 2. 在Word的编辑状态,当前编辑的文档是C盘中的d1.doc文档
第八十一题: 一、请编制程序,其功能是:内存中连续存放着20个ASCII字符,如果是小写字母a~z之间的字符,请把它们转换成相应的大写字符;若为其他字符,不作转换。 例如: 内存中有 61H(’a’), 62H(’b’),31H(’1’)41H(’A’),42H(’B’)… 结果为 41H(’A’), 42H(’B’),31H,41H(’A’),42H(’B’)… 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 20 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(?) RESULT DB N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** LEA SI,SOURCE LEA DI,RESULT MOV CX,N NEXT: MOV AL,[SI] CMP AL,’a’ JB ________________ CMP AL,_____________ J_______ UPPER2 AND ________________ UPPER2: MOV [DI],___________ INC ________________ INC ________________ ________ NEXT ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N ;字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START 第八十二题: 一、请编制程序,其功能是:内存中连续存放着两个有符号字节数序列AK和BK(k=0,…,9),求序列CK,CK=AK÷BK(运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。 例如: 序列AK为 FFH(-1D),81H(-127D),C0H(-64D),80H(-128D)… 序列BK为 81H(-127D),40H(64D),81H(-127D),01H(1D)… 则结果CK为 FF00H(00H(0D)为商、FFH(-1D)为余数),C1FFH,C000FH,0080H… 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 10 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N*2 DUP(?) RESULT DW N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N*2 ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** __________________________ MOV DI,______________ MOV CX,N PRO: MOV AL,______________ __________________________ ;AL中数的符号扩展到AH,正的字节变成正的 ;字,负的字节变成负的字 ________ SOURCE[BX+N] MOV ___________,AX ADD DI,2 INC BX DEC CX JNZ PRO ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,2*N ;字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START 第八十三题: 一、请编制程序,其功能是:内存中连续存放着16个10位无符号二进制数DB9DB8…DB0,其存放格式均为 DB9 DB8 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 |←--------低地址字节------→∣ |←---高地址字节--→∣ 请判别这16个10位二进制数是否小于等于200H;若小于200H,则相应地在内存中存入01H;否则,存入00H。最后存放这16个10位二进制数中小于等于200H的10位列符号二进制数的个数n(n用一个字节表示)。 例如: 内存中有: C048H,4091H,0080H… 结果为: 01H,00H,01H…(共16个字节),后跟n部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 16 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(?) RESULT DB N+1 DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N*2 ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** MOV DI,OFFSET RESULT MOV CH,N MOV CL,____________________ MOV BX,0 MOV DX,0100H PRO: MOV AH,BYTE PTR SOURCE[BX] ;10位无符号二进制数高八位 MOV AL,____________________ ;10位无符号二进制数低二位 CMP AX,____________________ JNBE C_0 MOV [DI],__________________ INC _______________________ INC DI JMP JUMP C_0: MOV [DI],DL INC DI JUMP: ADD BL,2 DEC CH JNZ PRO MOV [DI],CL ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N+1 ;字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START 第八十四题: 一、请编制程序,其功能是:内存中连续存放着10个二进制字节数,每个数的序号依次定义为0,1,…,9。统计每个数中位为1的个数N0,N1,…,N9(均用一个字节表示),然后按序定义将N0至N9存入内存中,最后再用一个字节这10个数中为1的位的总数n(n=N0+N1+…+N9)。 例如: 内存中有 00H,01H,03H… 结果为 00H,01H,02H…最后为n 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 10 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(?) ;顺序存放10个字节数 RESULT DB N+1 DUP(0) ;存放结果 NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N*2 ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** MOV CL,N MOV DI,OFFSET RESULT MOV BX,0 MOV DH,0 PRO: MOV DL,0 MOV AX,SOURCE[BX] MOV CH,_____________ COUNT: _________________________ JNC ________________ INC DL JUMP: DEC CH ________ COUNT MOV [DI],____________ ADD DH,DL INC DI INC BX DEC CL JNZ PRO MOV ________________ ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N+1 ;结果字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START 第八十五题: 一、请编制程序,其功能是:内存中有一个ASCII字符串(从SOURCE开始存放),试将其中所有连续的回车与换行符(ODH,0AH)置换成单个回车符(0DH)。字符串以00H结尾,长度(包括00H)不超过100字节。 例如: 字符串 41H,42H,0DH,0AH,43H,00H 转换为 41H,42H,0DH,43H,00H 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 100 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(?) RESULT DB N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** LEA SI,SOURCE LEA DI,RESULT L0: MOV AL,[SI] _________________________ _________________________ MOV [DI],AL INC SI INC DI CMP AL,0DH J_______ L1 JMP _________________ L1: MOV AH,[SI] CMP AH,0AH JNE L0 __________________________ JMP L0 QUIT: NOP ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N ;结果字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START 第八十六题: 一、请编制程序,其功能是:设内存中有一个由20个八位无符号数组成的数组A(下标从1开始),试求出一个新数组B使 B(I)=A(I) I=1,20 B(I)=(A(I-1)+2*A(I)+A(I+1))/4 I=2~19 结果仍以八位无符号数存放。为了得到尽可能高的精度,要求最后做除法运算。 例如: A为 39H,C6H,D8H,94H… B为 39H,A7H,C2H… 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 20 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT A DB N DUP(?) B DB N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,A ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** LEA SI,A LEA DI,B MOV AL,[SI] ;B[1]=A[1] MOV [DI],AL ________________________ ;B[N]=A[N] _________________________ INC SI INC DI MOV CX,_____________ L0: XOR AX,AX XOR BX,BX XOR DX,DX MOV AL,_____________ MOV BL,_____________ MOV DL,_____________ ________ AX,1 ADD AX,BX ADD AX,DX SHR AX,1 SHR AX,1 MOV [DI],AL INC SI INC DI LOOP L0 ;****END**** LEA DX,B ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N ;结果字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START 第八十七题: 一、请编制程序,其功能是:将内存中的20个有符号字节数据依次除以5,并按照四舍五入原则(即余数绝对值的2倍小于除数,则舍去)将商存入指定的内存区域。 例如: 内存中有 10H,01H,27H,00H,FFH,F8H… 结果为 03H,00H,08H,00H,00H,FEH… 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 20 X EQU 5 DSEG SEGMENT SOURCE DB N DUP(?) RESULT DB 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,SS:SSEG,DS:DSEG 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 ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** LEA SI,SOURCE LEA DI,RESULT CONT: LODSB CBW MOV DL,X IDIV DL _________________________ JNS PLUS _________________________ ADD AH,AH CMP AH,DL JB ________________ SUB AL,1 JMP NEXT PLUS: ADD ________________ CMP AH,DL JB NEXT _________________________ NEXT: CMP SI,N JB CONT ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N ;结果字节数 CALL SAVE ;保存结果到文件 RET START ENDP CSEG ENDS END START 第八十八题: 一、请编制程序,其功能是:对10个无符号字节数据排序(升序)。然后剔除第一个数和最后一个数,并按四舍五入原则计算其余8个数据的算术平均值。将剩余的8个数据存入指定的内存区域中,其后存放平均值。 例如: 内存中有 1,5,4,0,7,9,2,6,8,3 结果为 1,2,3,4,5,6,7,8,5 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 20 DSEG SEGMENT SOURCE DB N DUP(?) RESULT DB N-1 DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 TEMP DW 0 DSEG ENDS SSEG SEGMENT STACK DB 256 DUP(?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,SS:SSEG,DS:DSEG,ES:DSEG 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 ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** MOV BX,_____________ GOONI: _________________________ LEA SI,SOURCE GOONJ: MOV AL,[SI] CMP AL,[SI+1] JLE NEXT XCHG AL,[SI+1] MOV [SI],AL NEXT: ADD SI,1 LOOP GOONJ _________________________ JNZ GOONI CLD LEA SI,SOURCE LEA DI,RESULT MOV CX,______________ INC SI LP2: LODSB CBW ADD TEMP,AX STOSB LP1: LOOP LP2 MOV AX,TEMP __________________________ DIV DL ADD AH,AH CMP AH,DL JB OFF __________________________ OFF: MOV [DI],AL ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N-1 ;结果字节数 CALL SAVE ;保存结果到文件 RET START ENDP CSEG ENDS END START 第八十九题: 一、请编制程序,其功能是:分别统计内存中字符串SEGMENT、EQU、DB、MOV、ADD、ENDS、 PROC、ENDP、AL、END的个数,然后将统计的个数以字节类型依次存入指定的内存中。 例如: 内存中有 SEGMENT,EQU,DB,DB,MOV,ADD,ENDS,PROC,ENDP,AL,AL,AL,END,SUB,MUL 结果为 01H,01H,02H,01H,01H,01H,01H,01H,03H,03H 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: MSTR MACRO STRX,NX1,NX2 LOCAL NEXT,AGAIN,FOUND CLD LEA SI,SOURCE NEXT: CMP [SI],’$$’ JE AGAIN MOV CX,NX1 LEA DI,STRX REPE CMPSB JNE NEXT FOUND: INC BYTE PTR NX2 JMP NEXT AGAIN: ENDM EXTRN LOAD:FAR,SAVE:FAR N1 EQU 277 N2 EQU 10 DSEG SEGMENT SOURCE DB N1 DUP(?) RESULT DB N2 DUP(0) STR0 DB 'SEGMENT' STR1 DB 'EQU' STR2 DB 'DB' STR3 DB 'MOV' STR4 DB 'ADD' STR5 DB 'ENDS' STR6 DB 'PROC' STR7 DB 'ENDP' STR8 DB 'AL' STR9 DB 'END' 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,SS:SSEG,DS:DSEG,ES:DSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N1 ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ MSTR ________________ ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N2 ;结果字节数 CALL SAVE ;保存结果到文件 RET START ENDP CSEG ENDS END START 第九十题: 一、请编制程序,其功能是:内存中连续存放着20个无符号字节数序列,求出该序列的最大值和最小值。结果存放形式为:先按原序存放20个需处理的无符号字节序列,后跟该序列的最大值和最小值(最大值在前,最小值在后)。 例如: 内存中有 01H,02H,03H… 结果为 01H,02H,03H…(共20个个需处理的无符号字节序列),后跟该序列的最大值和最小值(最大值在前,最小值在后)。 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: EXTRN LOAD:FAR,SAVE:FAR N EQU 20 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(?) RESULT DB N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ;****BEGIN**** ;最大值放在BH中,最小值放在BL中 LEA SI,SOURCE LEA ________RESULT MOV BH,[SI] MOV BL,BH ADD SI,____________ ________________________ MOV CX,N-1 NEXT: MOV AL,[SI] CMP AL,BH ________ CHKMIN MOV BH,AL JMP ENDL CHKMIN: CMP AL,BL JAE ENDL MOV ________,AL ENDL: MOV [DI],AL ADD SI,1 ADD DI,1 LOOP NEXT MOV [DI],_____________ ___________________________ ;****END**** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,2+N ;字节数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START |