目录
1、实验目的:
2、实验内容:
3、实验要求:
4、程序流程图:
5、实验源程序:
6、实验要求分项截图及结果分析:
1、实验目的:
通过冒泡法排序程序设计,掌握将多重循环程序设计的方法。
2、实验内容:
利用冒泡法排序算法,将内存单元存储的数35H,78H,25H,A3H,8H,42H由小到大进行排序。
3、实验要求:
(1)进行反汇编,并截图;
(2)查看排序前内存中存储的数据,并截图;
(3)查看排序后内存中存储的数据,并截图;
(4)在屏幕上显示最大的数,要求显示两位16进制数的功能用子程序实现;
(5)截图程序调试及单步运行过程。
4、程序流程图:
5、实验源程序:
.MODEL SMALL
.STACK 100H
.DATA
ascii db 30h, 31h, 32h, 33h, 34h, 35h, 36h, 37h, 38h, 39h, 40h, 41h, 42h, 43h, 44h, 45h, 46h
array db 35H, 78H, 25H, 0A3H, 8H, 42H
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
mov cx, 6
dec cx
call bubble_sort
call changeNumber
MOV AH, 4CH
INT 21H
MAIN ENDP
bubble_sort PROC
outlp:
mov dx, cx
mov bx, offset array
inlp:
mov al, [bx]
cmp al, [bx+1]
jna next
xchg al, [bx+1]
mov [bx], al
next:
inc bx
dec dx
jnz inlp
loop outlp
ret
bubble_sort ENDP
changeNumber PROC
mov bx, offset ascii
mov al, array[5]
mov cl, 4
shr al, cl
inc al
xlat
mov dl, al
mov ah, 02h
int 21h
mov bx, offset ascii
mov al, array[5]
and al, 0fh
xlat
mov dl, al
mov ah, 02h
int 21h
ret
changeNumber ENDP
END MAIN
6、实验要求分项截图及结果分析:
(1)进行反汇编,并截图;
(2)查看排序前内存中存储的数据,并截图;
(3)查看排序后内存中存储的数据,并截图;
(4)在屏幕上显示最大的数,要求显示两位16进制数的功能用子程序实现;
(5)截图程序调试及单步运行过程。
p指令跳过子程序内部直接运行,t指令可进入子程序调试
单步运行如下