- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环结构汇编语言程
序设计实验报告
实验四循环结构汇编语言程序设计
一、实验目的
1、学习循环结构的汇编语言程序的设计和调试。
2、学习通过直接对 8086 计算机的寄存器和内存的直接访问, 编写更高效简洁
的汇编程序。
3、加深掌握计算机整体的工作过程。
3、加深对排序算法的理解。
二、实验任务
编写程序求出数组 A 中(20 个元素)的最大值和最小值(数组没有排序) 。
要求至少采用二种不同的排序算法来实现。 ( 快速排序,归并排序、堆排序、
Shell 排序、插入排序、冒泡排序、交换排序、选择排序、基数排序 ……)
三、实验内容
为了更好地实现老师所布置的实验任务, 我们根据情况选取以下两种方式实
验。
1、利用冒泡排序的方式求解数组 A 中元素的最大值最小值。设计流程图如
下所示:
2、利用选择排序的方式求得数组 A 中元素的序列。设计流程图如下所示:
四、实验环境
PC 机: winXP/win7(32 位)/win7(64 位 )+winxp 虚拟机
汇编工具: Masm.exe+Link.exe。
五、实验步骤
1)建立和生成的文件
(1)编写的源程序,源程序名为 abc、扩展名为 .asm
(2)源程序经汇编程序 Masm.exe 汇编(翻译)后生成二进制目标程序,文件
名为 abc.obj
(3)目标程序需要经 Link.exe 连接生成可执行程序,文件名为 abc.exe
2 )汇编环境
最基本的汇编环境只需要两个文件: Masm.exe和 Link.exe。将这两个文件拷
入到已经建好的文件夹 (例如 huibian)中,并将文件夹 huibian 放在硬盘根目录
>下
3 )上机步骤
进入 DOS 窗口中执行。
4 )调试程序
进入 DEBUG 后,调试程序
5 )调试成功后重新汇编、连接并生成可执行代码
6 )执行程序,并对运行结果截图。
利用冒泡排序求得数组 A 中元素的最大值最小值的实验结果如下图所示:
(说明:输入数据为: 13,0,59,900,587,1,657,234,34,48)
利用选择排序对数组 A 中元素排序得到的序列得实验结果如下图所示: (说
明:输入数据为 13,0,59,900,587,1,657,234,34,48)
六、实验心得
通过本次循环结构汇编语言程序设计的实验, 我初步了解了汇编语言的基本
语法,利用汇编语言的循环结构实现了对于数组 A 中元素的排序以及求得元素中
的最大值最小值。另外,在实验过程中,我也了解到了,我们要时刻细心严谨,
认真做好每一步,避免出现低级错误。
七、汇编语言代码
1、利用冒泡排序实现求最大值最小值的代码
data segment
mes1 db the max:$
mes2 db the min:$
a dw 13,0,59,900,587,1,657,234,34,48
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
; 以下是起泡排序核心代码
mov cx,10
dec cx
loop1:
mov di,cx
mov bx,0
loop2:
mov ax,a[bx]
cmp a[bx+2],ax
jge cotinue
xchg ax,a[bx+2]
m
文档评论(0)