四川大学_微机原理与接口技术实验报告_冒泡法.doc
文本预览下载声明
《微机原理与接口技术实验报告》
学 院:
学 号:
姓 名:
一、实验目的:
1.理解各种指令的功能。
2.进一步学习程序的调试。
二、实验内容:
1.编制程序,对这组数进行排序,并输出原数据及排序后数据;
2.利用DEBUG调试工具,用D0命令,查看排序前后,内存数据的变化;
3. 去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值;
4. 用学过的压栈PUSH和出栈POP指令,将平均值按位逐个输出(即输出263);
5将平均值263转化为二进制串,并将这组二进制串输出。
6.所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在屏幕上。
三、程序流程图:
N
N Y
Y
四、程序清单:
DATAS SEGMENT
VAR DW 300,250,280,240,260
D1 DB 0DH,YUAN SHU JU,0DH,0AH,$
D2 DB 0DH,0AH,PAI XU HOU,0DH,0AH,$
D3 DB 0DH,0AH,ZUI DA ZHI,0DH,0AH,$
D4 DB 0DH,0AH,ZUI XIAO ZHI,0DH,0AH,$
D5 DB 0DH,0AH,PING JUN ZHI,0DH,0AH,$
D6 DB 0DH,0AH,AN WEI SHU CHU,0DH,0AH,$
D7 DB 0DH,0AH,ER JIN ZHI SHU CHU,0DH,0AH,$
DATAS ENDS
STACKS SEGMENT
S DB 100 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
B: MOV AX,DATAS
MOV DS,AX
MOV CX,5
MOV DX,OFFSET D1 ;输出‘yuan shu ju’
MOV AH,9
INT 21H
MOV SI,0
CALL OUTP ;调用输出
MOV DX,1
AG: CALL SUBP ;调用冒泡法
INC DX
LOOP AG
MOV CX,5
MOV DX,OFFSET D2 ;输出‘PAI XU HOU’
MOV AH,9
INT 21H
MOV SI,0
CALL OUTP ;调用输出,输出排序后数据
MOV DX,OFFSET D3 ;输出‘ZUI DA ZHI’
MOV AH,9
INT 21H
MOV SI,8
MOV BX,[SI]
CALL OUTP2 ;输出最大值
MOV DX,OFFSET D4 ;输出‘ZUI XIAO ZHI’
MOV AH,9
INT 21H
MOV SI,0
MOV BX,[SI]
CALL OUTP2
MOV DX,OFFSET D5 ;输出‘PING JUN ZHI’
MOV AH,9
INT 21H
MOV BX,0 ;求平均值
MOV DX,0
ADD BX,[SI+2]
ADD BX,[SI+4]
ADD BX,[SI+6]
MOV AX,BX
MOV BX,3
DIV BX
MOV BX,AX
PUSH BX ;BX入栈保护
CALL OUTP2 ;输出平均值
MOV DX,OFFSET D7 ;输出‘ER JIN ZHI SHU CHU’
MOV AH,9
INT 21H
显示全部