北航微机原理实验报告——字符串排序.doc

北航微机原理实验报告——字符串排序.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

微原实验报告

第PAGE2页

一、实验名称:字符串排序

二、实验目的:

⑴学习利用系统功能调用的“INT21H”进行字符的输入、字符串的显示方法,熟悉排序相关指令及方法。

⑵掌握汇编语言的编写、编译、连接及运行方法。

三、实验内容:

①利用INT21H的1号功能,从键盘输入任意长度的字符串,以回车符结束。

②将输入的字符串存放在数据段中。

③对输入的字符串按ASCⅡ码从小到大排序(ASCⅡ码小者占低地址存放)。

④将排好序的字符串利用INT21H的9号功能显示在微机屏幕上。

四、程序流程图:

分配各段

分配各段

调用输入程序,输入并存储一个字符

调用输入程序,输入并存储一个字符

输入是否为回车键

输入是否为回车键

NO

YES

冒泡法对存储单元中的内容排序

冒泡法对存储单元中的内容排序

使用INT21H的9号功能,将排好序的字符串输出

使用INT21H的9号功能,将排好序的字符串输出

返回DOS

返回DOS

五、结论:

六、实验心得:

通过实验,首先,我进一步理解学习了冒泡法排序的具体过程:冒泡法的外层循环次数等于其排序总数减一,每层内循环次数等于外循环总数减去已执行的次数。第二,在编写程序时,如若程序太长,最好将一段反复使用的程序段编成子程序,在主程序中反复调用即可。第三,在使用INT21H的各种功能时,要注意将功能号值付给AH,并需正确使用入口、出口参数。最后,堆栈段、数据段使用时要特别注意,堆栈段必须重新定义,程序中使用数据段时也要对数据段进行重新定义,否则程序将产生错误。

附:程序清单

STACKSEGMENTSTACK

DB100DUP(?)

STACKENDS

DATASEGMENT

XDB100DUP(?)

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK

MAINPROC

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETX

CALLINPUT

SUBSI,2

MOVBX,SI

NEXT3:MOVCX,BX

MOVSI,OFFSETX

NEXT2:MOVAL,[SI]

CMPAL,[SI+1]

JBENEXT1

XCHGAL,[SI+1]

MOV[SI],AL

NEXT1:INCSI

LOOPNEXT2

DECBX

JNZNEXT3

MOVDX,OFFSETX

MOVAH,9

INT21H

MOVAH,4CH

INT21H

MAINENDP

INPUTPROC

START:MOVAH,1

INT21H

MOV[SI],AL

INCSI

CMPAL,0DH

JNZSTART

MOVBYTEPTR[SI-1],$

RET

INPUTENDP

CODEENDS

ENDMAIN

文档评论(0)

187****7860 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档