一、实验目的 (1)学习汇编语言循环结构语句的特点,重点掌握冒泡排序的方法。 (2)理解并掌握各种指令的功能,编写完整的汇编源程序。 (3)进一步熟悉DEBU G 的调试命令,运用DEBU G 进行调试汇编语言程序。 二、实验内容及要求 (1)实验内容:从键盘输入五个有符号数,用冒泡排序法将其按从小到大的顺序排序。 (2)实验要求: ①编制程序,对这组数进行排序并输出原数据及排序后的数据; ②利用DEBU G 调试工具,用D0 命令,查看排序前后内存数据的变化; ③去掉最大值和最小值,求出其余值的平均值,输出最大值、最小值和平均值; ④用压栈 PU SH 和出栈 POP 指令,将平均值按位逐个输出; ⑤将平均值转化为二进制串,并将这组二进制串输出; ⑥所有数据输出前要用字符串的输出指令进行输出提示,所有数据结果能清晰显示。 三、程序流程图 (1)主程序:MAIN 否 是 开始 初始化 键盘输入数据 调用 INPUT 子程序 输入是否正确 显示原始数据 调用 OUTPUT 子程序 显示输入错误 显示冒泡排序后的数据 调用SORT 子程序 调用OUTPUT 子程序 显示最小值Min 显示One 子程序 显示最大值Max 调用One 子程序 显示其余数平均值Average 调用One 子程序 显示平均值二进制串 Binary 调用One 子程序 结束 (2)冒泡排序子程序: SORT 否 是 否 是 否 是 进入 初始化 COUNT1=N-1 COUNT2=COUNT1 SI=0 COUNT1 ---- 外循环次数 COUNT2 ---- 内循环次数 i ---- 数组下标 Ai≥Ai+1 Ai 与 Ai+1 两数交换 SI=SI+2 COUNT2=COUNT2-1 COUNT2=0? COUNT1=COUNT1-1 COUNT2=0? 返回 四、程序清单 NAME BUBBLE_SORT DATA SEGMENT ARRAY DW 5 DUP(?) ;输入数据的存储单元 COUNT DW 5 TWO DW 2 FLAG1 DW 0 ;判断符号标志 FLAG2 DB 0 ;判断首位是否为零的标志 FAULT DW -1 ;判断出错标志 CR DB 0DH,0AH,'$' STR1 DB 'Please input five numbers seperated with space and finished with Enter:','$' STR2 DB 'The original numbers:','$' STR3 DB 'The sorted numbers:','$' STR4 DB 'The Min:','$' STR5 DB 'The Max:','$' STR6 DB 'The Average:','$' STR7 DB 'The binary system of the average :','$' STR8 DB 'Input error!Please input again!''$' DATA ENDS CODE SEGMENT MAIN P...