哈工大计组实验源程序 下载本文

内容发布更新时间 : 2024/5/25 0:55:56星期一 下面是文章的全部内容请认真阅读。

;实验1.5.1

STACKS SEGMENT STACK ;堆栈段

DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS

DATAS SEGMENT ;数据段 BUF1 DB 'MATCH',0DH,0AH,'$' BUF2 DB 'NOMATCH',0DH,0AH,'$' STR1 DB 10 DUP(?) STR2 DB 10 DUP(?) DATAS ENDS

CODES SEGMENT ;代码段

ASSUME CS:CODES,DS:DATAS ,SS:STACKS START:

MOV AX,DATAS MOV DS,AX LEA DX,STR1 MOV STR1,10 MOV AH,10 INT 21H

MOV DL,0AH MOV AH,02H INT 21H LEA DX,STR2 MOV STR2,10 MOV AH,10 INT 21H

MOV DL,0AH MOV AH,02H INT 21H

MOV AL,STR1+1 CMP AL,STR2+1 JA NOMATCH JB NOMATCH MOV CL,STR1+1 MOV CH,00H MOV BX,2 AGAIN:

MOV AL,STR1[BX] MOV AH,STR2[BX] CMP AL,AH JA NOMATCH JB NOMATCH INC BX LOOP AGAIN

MATCH: MOV DL,OFFSET BUF1 MOV AH,09H INT 21H JMP ENDP1

NOMATCH: MOV DL,OFFSET BUF2 MOV AH,09H INT 21H

ENDP1: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS

END START

;实验1.5.2

STACKS SEGMENT STACK ;堆栈段

DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS

DATAS SEGMENT ;数据段 BUFF DB 90,80,83,88,98,77,82,67,78,99 MAX DB ? MIN DB ? VALUS DB ? DATAS ENDS

CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV AL,100 MOV AH,0 MOV CX,10 MOV BX,0 AGAIN:

CMP AH,BUFF[BX] JA XY

MOV AH,BUFF[BX] XY: CMP AL,BUFF[BX] JB NO

MOV AL,BUFF[BX] NO: INC BX LOOP AGAIN MOV MAX,AH MOV MIN,AL MOV BX,0 MOV AX,0H MOV CX,10

AGAIN2:

MOV DL,BUFF[BX] MOV DH,0H ADD AX,DX INC BX

LOOP AGAIN2 MOV BL,MAX MOV CL,MIN MOV BH,0 MOV CH,0 SUB AX,BX SUB AX,CX MOV BL,8 DIV BL

MOV VALUS,AL MOV AL,MAX CALL PRINT MOV AL,MIN CALL PRINT MOV AL,VALUS CALL PRINT

MOV AX,4C00H INT 21H PRINT PROC

MOV AH,00H MOV BL,10 DIV BL MOV DL,AL ADD DL,30H MOV CL,AH MOV AH,02H INT 21H MOV DL,CL ADD DL,30H MOV AH,02H INT 21H MOV DL,09H MOV AH,02H INT 21H RET PRINT ENDP CODES ENDS

END START ;这是自动生成的代码模板

;退出程序