文档详情

北航微机原理实验报告——字符串排序.doc

发布:2017-06-22约1.53千字共3页下载文档
文本预览下载声明
一、实验名称:字符串排序 二、实验目的: ⑴学习利用系统功能调用的“INT 21H”进行字符的输入、字符串的显示方法,熟悉排序相关指令及方法。 ⑵掌握汇编语言的编写、编译、连接及运行方法。 三、实验内容: ①利用INT 21H的1号功能,从键盘输入任意长度的字符串,以回车符结束。 ②将输入的字符串存放在数据段中。 ③对输入的字符串按ASCⅡ码从小到大排序(ASCⅡ码小者占低地址存放)。 ④将排好序的字符串利用INT 21H的9号功能显示在微机屏幕上。 四、程序流程图: NO YES 五、结论: 六、实验心得: 通过实验,首先,我进一步理解学习了冒泡法排序的具体过程:冒泡法的外层循环次数等于其排序总数减一,每层内循环次数等于外循环总数减去已执行的次数。第二,在编写程序时,如若程序太长,最好将一段反复使用的程序段编成子程序,在主程序中反复调用即可。第三,在使用INT 21H的各种功能时,要注意将功能号值付给AH,并需正确使用入口、出口参数。最后,堆栈段、数据段使用时要特别注意,堆栈段必须重新定义,程序中使用数据段时也要对数据段进行重新定义,否则程序将产生错误。 附:程序清单 STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT X DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC MOV AX,DATA MOV DS,AX MOV SI,OFFSET X CALL INPUT SUB SI,2 MOV BX,SI NEXT3:MOV CX,BX MOV SI,OFFSET X NEXT2:MOV AL,[SI] CMP AL,[SI+1] JBE NEXT1 XCHG AL,[SI+1] MOV [SI],AL NEXT1:INC SI LOOP NEXT2 DEC BX JNZ NEXT3 MOV DX,OFFSET X MOV AH,9 INT 21H MOV AH,4CH INT 21H MAIN ENDP INPUT PROC START:MOV AH,1 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ START MOV BYTE PTR [SI-1],$ RET INPUT ENDP CODE ENDS END MAIN 微原实验报告 第2页 定义堆栈段、数据段 分配各段 调用输入程序,输入并存储一个字符 输入是否为回车键 冒泡法对存储单元中的内容排序 使用INT 21H的9号功能,将排好序的字符串输出 返回DOS
显示全部
相似文档