- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《实验三排序程序设计
《32位微机接口原理与接口》实验报告
实验序号: 03 实验项目名称:排序程序设计实验
学 号 姓 名 专业、班 09计专(2) 实验地点 实1-416 指导教师 实验时间 一、实验目的及要求
1.掌握排序程序的结构。
2.掌握排序程序的设计方法。
二、实验设备(环境)及要求
IBMPC微机,Win2000操作系统,MF2KP微机原理实验集成开发环境
三、实验内容与步骤
1.实验内容:
在以BUF为首址的字节存储区存放有n个无符号数,用选择排序的方法按从小到大的顺序排列在BUF存储区中。
2.实验步骤:
(一)方式1(Debug方式)
1.在MF2KP环境下输入汇编程序,编译、连接,生成.exe文件。
2.启动调试程序(Debug)。
3.在程序的退出处设置断点,利用Add Watch命令查看变量[BUF]、[BUF+1]、[BUF+2]……[BUF+7]或者在VIEW菜单下观看DUMP里面DS寄存器中的内容是否正确。
(二)方式2(人-机交互方式)
1.在MF2KP环境下输入汇编程序,编译、连接、运行。
2.按提示输入数据,在屏幕显示的运结果中查看结果是否正确
3.输入不同的数据,可得到不同的结果。
四、实验结果与数据处理
图一:启动debug
图二:在程序退出处设置断点
图三:利用Add Watch命令查看BUF BUF+1的值
图四:Watches中的初始数据
图五:Watches中的最后结果
图六:利用VIEW下的DUMP查看数据
图七:冒泡排序运行结果
五、分析与讨论
无 六、教师评语
签名:
日期: 成绩 附源码:
(一)STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
BUF DB 20H,11H,25H,49H,0,43H,2H,0FFH
N EQU $-BUF
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV SI,1
L1: MOV DI,SI
INC DI
MOV AL,[BUF+SI-1]
L2: CMP AL,[BUF+DI-1]
JBE NEXT
XCHG [BUF+DI-1],AL
MOV [BUF+SI-1],AL
NEXT: INC DI
CMP DI,N
JBE L2
INC SI
CMP SI,N-1
JBE L1
MOV AH,4CH
INT 21H
CODE ENDS
END START
(二)冒泡程序:
STACK1 SEGMENT para STACK
DB 200 DUP(0)
STACK1 ENDS
DATA SEGMENT
input db 0ah,0dh,please sort the input numbers with ascending order
db 0ah,0dh,if you want to quit ,please press..q/Q...,0ah,0dh
db press other key to input numbers$
input1 DB 0AH,0DH,please input numbers(0~255) seperated by ,:,0AH,0DH,$
BUF DB 10 dup(0) ;存放转换后的数据
N dw ? ; 输入的数的个数
buf2 db 100 ;字符缓冲区
db ?
db 100 dup(0)
buf0 db 10 dup(0) ;存放一个十进制字符串
buf1 db 10 dup(0)
dat
文档评论(0)