1、汇编语言课程设计微机原理实践课程设计报告题目: 汇编语言课程设计专业: 网络工程 班级: 班 学号: 姓名: 指导教师: 完成日期:2013年 1 月 6 日一、课程设计目的1、加深对汇编语言理论和基本知识的理解, 掌握DOS和BIOS系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法.2、通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力3、提高调试程序的能力二、课程设计内容1、从键盘输入一组十进制数,排序后在屏幕上显示要求:从键盘输入一组十进制数(每个数不超过3个字符),它们之间以逗号“,”分开,以回车键为该数组数据结束,将该数组升序排序后
2、,结果在屏幕上显示。*Display Program* please input 10 decimal number,sorted then output: 如果输入的不是数,提示出错,显示:input error!三、课程设计过程1、算法设计(画出算法流程图)2、程序代码清单程序代码如下:DSEG SEGMENT ;数据段 number dw 80 dup (?)count dw ?BUFF DB please input decimal number:$ 提示输入数组STR1 DB input error!,0AH,0DH,$DSEG ENDSCSEG SEGMENT assume CS:
3、CSEG , DS:DSEGmain procfar ;入口 mov ax, dseg mov ds, ax添加主程序代码:xor ax,axmov dx,offset BUFF mov ah,9 int 21h call input;从键盘输入一组十进制数(每个数不超过3个字符),存于数组number中call sort ;将该组数按升序排序 call disp ;将结果送显示器显示 ;按任意键退出 mov ah,1 int 21h ;程序结束,返回到操作系统系统mov ax, 4ch int 21hMAIN ENDPinput proc lea si,numbernext: mov bx,
4、 0 mov cx,4newchar: mov ah, 1;键盘输入,每个数据以,结束 int 21h cmp al,0dh ;全部数据以回车结束 jz he cmp al, 2ch ;存储数据 jz he sub al, 30h jl exit ; 0退出 cmp al, 9h jg exit ; cbw xchg ax, bx mov dx, 10 mul dx xchg ax, bx add bx, axloop newchar he: inc count mov si,bx add si,2 cmp al,0dh jz tj jmp next tj: retinput endpexit
5、: mov ax, 4c00h int 21hsort proc ;冒泡排序,为数组排序 mov cx,count dec cxloop1: mov di,cx mov bx,0loop2: mov ax,numberbx cmp ax,numberbx+2 jle continue xchg ax,numberbx+2 mov numberbx,axcontinue: add bx,2 loop loop2 mov cx,di loop loop1ret sort endpdisp proc ;输出排列后的数据 call crlf mov cx,count lea si,numberrepe
6、at1: mov bx,si mov di,100d call dec_div mov di,10d call dec_div mov dx,bx add dl,30h mov ah,2 int 21h call crlf add si,2 loop repeat1 retdisp endpdec_div proc near ;除法输出各个位数 mov ax,bx mov dx,0 div di mov bx,dx mov dl,al add dl,30h mov ah,2 int 21h retdec_div endpcrlf proc near ;换行子程序 push dx push ax
7、 mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h pop ax pop dx retcrlf endpCSEG ENDSEND MAIN3、调试过程(包括实验过程中实验步骤,出现的问题,解决的方法,使用的实验数据等)(1)按emu8086进行调试,会出现两个对话框,执行run,弹出一个输入十进制的数的提示框,按要求输入N个十进制数,用逗号分隔开,确保输入一组N个十进制数组后(且不大于三个字符),按回车键对该数组进行自动升序排序。本次实验所用的N=10个测试数据为:46,15,49,51,100,09,24,57,34,944、系统运行结果截图运行后,输入一组十进制数当输入的不是十进制数的时候:例如:结果如图5、结果分析1. 在输入十进制数组的时候,若途中失误输入其他非十进制数组,例如:大小写字母等,则程序会终止调试过程,此时,需要进行重新调试。 2.四、课程设计体会通过本次课程设计,对汇编语言又有了进一步的了解,主要有各种结构以及子程序的汇编设计的基本技术和基本方法,以及子程序的编写调用。也认识到了,写汇编代码以前,画流程图的重要性,流程图主要体现了自己的思路,清晰的流程图,有利于代码的编写。而后,对于代码的编写,必须对编译程序的指令功能熟悉,这部分可以通过书本了解。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1