14、
DATAS SEGMENT
DAT1 DW 10 DUP(0,1,2,3,4,5,6,7,8,9) MAX DW ? MIN DW ? DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX
MOV AX,DAT1+198 MOV BX,DAT1+196 CMP AX,BX JG NEXT1 XCHG AX,BX
NEXT1: MOV CX,98 NEXT: MOV SI,CX ADD SI,CX SUB SI,2 CMP AX,DAT1[SI] JL L CMP BX,DAT1[SI] JG G JMP N L: MOV AX,DAT1[SI] JMP N G: MOV BX,DAT1[SI] N: LOOP NEXT MOV MAX,AX MOV MIN,BX
DONE: MOV AH,4CH INT 21H CODES ENDS END START
9 / 14
15、
DATAS SEGMENT
NUM DB 0,-5,3,2,-6,9,7,-2,6,1 CNT DW 10 PLUS DB 10 DUP(?) DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX LEA SI,NUM LEA DI,PLUS MOV CX,CNT
N1: CMP BYTE PTR [SI],0 JL L1 MOV AL,[SI] MOV [DI],AL INC DI L1: INC SI LOOP N1
MOV AH,4CH INT 21H CODES ENDS END START
10 / 14
16、
DATAS SEGMENT
ARRAY DB 200 DUP(?)
LTEV DB 6 DUP(?) ;顺序存放90-100人数,80-89人数,70-79人数,60-69人数,60以下人数,平均成绩 DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX LEA SI,ARRAY MOV AX,0 MOV BX,0 MOV CX,200
N1: CMP BYTE PTR [SI],90 JL L1 INC LTEV JMP N2
L1: CMP BYTE PTR [SI],80 JL L2 INC LTEV[1] JMP N2
L2: CMP BYTE PTR [SI],70 JL L3 INC LTEV[2] JMP N2
L3: CMP BYTE PTR [SI],60 JL L4 INC LTEV[3] JMP N2 L4: INC LTEV[4]
N2: MOV BL,BYTE PTR [SI] ADD AX,BX INC SI LOOP N1 MOV BL,200 ;求平均成绩 DIV BL MOV LTEV[5],AL MOV AH,4CH INT 21H CODES ENDS END START
11 / 14
17、
DATAS SEGMENT DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX
GETKEY: MOV AH,1 ;系统功能调用 INT 21H ;al←按键的ASCII码 CMP AL,'*' ;是*? JE DONE SUB AL,20H;小写变大写 MOV DL,AL;要输出的字符放在DL中 MOV AH,2 INT 21H JMP GETKEY
DONE: MOV AH,4CH INT 21H CODES ENDS END START
12 / 14

