汇编语言课程设计.docx

上传人:b****5 文档编号:2949457 上传时间:2022-11-16 格式:DOCX 页数:12 大小:369.53KB
下载 相关 举报
汇编语言课程设计.docx_第1页
第1页 / 共12页
汇编语言课程设计.docx_第2页
第2页 / 共12页
汇编语言课程设计.docx_第3页
第3页 / 共12页
汇编语言课程设计.docx_第4页
第4页 / 共12页
汇编语言课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

汇编语言课程设计.docx

《汇编语言课程设计.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

汇编语言课程设计.docx

汇编语言课程设计

 

《微机原理实践》课程设计报告

 

题目:

汇编语言课程设计

专业:

网络工程

班级:

学号:

姓名:

指导教师:

 

完成日期:

2013年1月6日

 

一、课程设计目的

1、加深对汇编语言理论和基本知识的理解,掌握DOS和BIOS系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法.

2、通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力

3、提高调试程序的能力

二、课程设计内容

1、从键盘输入一组十进制数,排序后在屏幕上显示

要求:

从键盘输入一组十进制数(每个数不超过3个字符),它们之间以逗号“,”分开,以回车键为该数组数据结束,将该数组升序排序后,结果在屏幕上显示。

'********************DisplayProgram********************

pleaseinput10decimalnumber,sortedthenoutput:

如果输入的不是数,提示出错,显示:

inputerror!

三、课程设计过程

1、算法设计(画出算法流程图)

2、程序代码清单

程序代码如下:

DSEGSEGMENT;数据段

numberdw80dup(?

countdw?

BUFFDB'pleaseinputdecimalnumber:

$'提示输入数组

STR1DB'inputerror!

',0AH,0DH,'$'

DSEGENDS

CSEGSEGMENT

assumeCS:

CSEG,DS:

DSEG

mainprocfar;入口

movax,dseg

movds,ax

添加主程序代码:

xorax,ax

movdx,offsetBUFF

movah,9

int21h

callinput;从键盘输入一组十进制数(每个数不超过3个字符),存于数组number中

callsort;将该组数按升序排序

calldisp;将结果送显示器显示;按任意键退出

movah,1

int21h;程序结束,返回到操作系统系统

movax,4ch

int21h

MAINENDP

inputproc

leasi,number

next:

movbx,0

movcx,4

newchar:

movah,1;键盘输入,每个数据以,结束

int21h

cmpal,0dh;全部数据以回车结束

jzhe

cmpal,2ch;存储数据

jzhe

subal,30h

jlexit;<0退出

cmpal,9h

jgexit;

cbw

xchgax,bx

movdx,10

muldx

xchgax,bx

addbx,ax

loopnewchar

he:

inccount

mov[si],bx

addsi,2

cmpal,0dh

jztj

jmpnext

tj:

ret

inputendp

exit:

movax,4c00h

int21h

sortproc;冒泡排序,为数组排序

movcx,count

deccx

loop1:

movdi,cx

movbx,0

loop2:

movax,number[bx]

cmpax,number[bx+2]

jlecontinue

xchgax,number[bx+2]

movnumber[bx],ax

continue:

addbx,2

looploop2

movcx,di

looploop1

ret

sortendp

dispproc;输出排列后的数据

callcrlf

movcx,count

leasi,number

repeat1:

movbx,[si]

movdi,100d

calldec_div

movdi,10d

calldec_div

movdx,bx

adddl,30h

movah,2

int21h

callcrlf

addsi,2

looprepeat1

ret

dispendp

dec_divprocnear;除法输出各个位数

movax,bx

movdx,0

divdi

movbx,dx

movdl,al

adddl,30h

movah,2

int21h

ret

dec_divendp

crlfprocnear;换行子程序

pushdx

pushax

movdl,0ah

movah,2

int21h

movdl,0dh

movah,2

int21h

popax

popdx

ret

crlfendp

CSEGENDS

ENDMAIN

 

3、调试过程(包括实验过程中实验步骤,出现的问题,解决的方法,使用的实验数据等)

(1)按emu8086进行调试,会出现两个对话框,

执行run,弹出一个输入十进制的数的提示框,按要求输入N个十进制数,用逗号分隔开,确保输入一组N个十进制数组后(且不大于三个字符),按回车键对该数组进行自动升序排序。

本次实验所用的N=10个测试数据为:

46,15,49,51,100,09,24,57,34,94

4、系统运行结果截图

运行后,输入一组十进制数

当输入的不是十进制数的时候:

例如:

结果如图

5、结果分析

1.在输入十进制数组的时候,若途中失误输入其他非十进制数组,例如:

大小写字母等,则程序会终止调试过程,此时,需要进行重新调试。

2.

四、课程设计体会

通过本次课程设计,对汇编语言又有了进一步的了解,主要有各种结构以及子程序的汇编设计的基本技术和基本方法,以及子程序的编写调用。

也认识到了,写汇编代码以前,画流程图的重要性,流程图主要体现了自己的思路,清晰的流程图,有利于代码的编写。

而后,对于代码的编写,必须对编译程序的指令功能熟悉,这部分可以通过书本了解。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1