《微机原理实践》课程设计报告。
题目: 汇编语言课程设计。
专业: 网络工程
班级: 班
学号: 姓名:
指导教师:
完成日期:2023年 1 月 6 日。
一、课程设计目的。
1、 加深对汇编语言理论和基本知识的理解, 掌握dos和bios系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法。
2、 通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力。
3、 提高调试程序的能力。
二、课程设计内容。
1、 从键盘输入一组十进制数,排序后在屏幕上显示。
要求:从键盘输入一组十进制数(每个数不超过3个字符),它们之间以逗号“,”分开,以回车键为该数组数据结束,将该数组升序排序后,结果在屏幕上显示。
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 ends
cseg segment
assume cs:cseg , ds:dseg
main procfar ;入口。
mov ax, dseg
mov ds, ax
添加主程序**:
xor ax,ax
mov 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 21h
main endp
input proc
lea si,number
next: mov bx, 0
mov cx,4
newchar: mov ah, 1;键盘输入,每个数据以,结束。
int 21h
cmp al,0dh ;全部数据以回车结束。
jz he
cmp al, 2ch ;存储数据。
jz hesub al, 30h
jl exit ; 0退出。
cmp al, 9h
jg exit ;
cbwxchg ax, bx
mov dx, 10
mul dx
xchg ax, bx
add bx, ax
loop newchar
he: inc count
mov [si],bx
add si,2
cmp al,0dh
jz tjjmp next
tj: ret
input endp
exit:
mov ax, 4c00h
int 21h
sort proc冒泡排序,为数组排序。
mov cx,count
dec cx
loop1: mov di,cx
mov bx,0
loop2: mov ax,number[bx]
cmp ax,number[bx+2]
jle continue
xchg ax,number[bx+2]
mov number[bx],ax
continue: add bx,2
loop loop2
mov cx,di
loop loop1
ret sort endp
disp proc输出排列后的数据。
call crlf
mov cx,count
lea si,number
repeat1:
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 endp
dec_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 endp
crlf proc near换行子程序。
push dx
push ax
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
pop ax
pop dx
retcrlf endp
cseg ends
end main
3、调试过程(包括实验过程中实验步骤,出现的问题,解决的方法,使用的实验数据等)
1)按emu8086进行调试,会出现两个对话框,执行run,弹出一个输入十进制的数的提示框,按要求输入n个十进制数,用逗号分隔开,确保输入一组n个十进制数组后(且不大于三个字符),按回车键对该数组进行自动升序排序。本次实验所用的n=10个测试数据为:46,15,49,51,100,09,24,57,34,94
4、 系统运行结果截图。
运行后,输入一组十进制数。
当输入的不是十进制数的时候:
例如:结果如图。
5、结果分析。
1. 在输入十进制数组的时候,若途中失误输入其他非十进制数组,例如:大小写字母等,则程序会终止调试过程,此时,需要进行重新调试。
四、课程设计体会。
通过本次课程设计,对汇编语言又有了进一步的了解,主要有各种结构以及子程序的汇编设计的基本技术和基本方法,以及子程序的编写调用。也认识到了,写汇编**以前,画流程图的重要性,流程图主要体现了自己的思路,清晰的流程图,有利于**的编写。而后,对于**的编写,必须对编译程序的指令功能熟悉,这部分可以通过书本了解。
汇编语言课程设计
学号 01211103402 18 课程设计。打字游戏的设计与实现。一 设计内容 1 功能菜单由 开始 速度调整 统计成绩 和 结束 等组成。2 游戏开始后,出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失,并得分 按esc键返回主界面 按空格键暂停 按...
汇编语言课程设计
汇。编。语。言。课。程。设。计。姓名 学号 专业班级 计科一班。指导老师 袁全清。一 课程题目。数字时钟,与计算机的时间同步显示。二 设计思想。程序原理 程序先调用系统时间,然后将返回的二进制数转化成ascii码,再通过dos显示功能显示出来,并通过循环不断刷新显示的时间。在二进制转化成ascii码...
汇编语言课程设计
课程设计报告。课程名称 汇编语言程序设计 课题名称系统时间显示 姓名阚鹏。班级 信息与计算科学082班 指导老师邢远秀老师。报告日期2010年。课程设计的主要目的是提高实践能力,包括对硬件的理解分析能力和汇编语言的编程能力。与其他课程不同的是,本课程对硬件有较高的依赖性,因此课程设计的灵活性受到了一...