循环程序设计实验报告-文少轩.pdf

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

循环程序设计实验报告

西安交通大学

文少轩

一、实验目的

1.掌握循环程序设计方法;

2.掌握数据的统计和排序方法。

二、实验设备

IBM-PC微型计算机一台

三、实验要求

1.复习比较指令、循环控制指令的用法;

2.根据流程图和编程提示,预先编写汇编语言程序;

3.有兴趣的同学请编写出实验习题中的程序

四、实验内容及数据记录

1.在屏幕上显示提示信息“Pleaseinput10numbers:”,提示用户输入10个数(数的

范围在0~99之间),然后从键盘上读入这10个数。接着对这10个数从小到大进行排

序,并统计0~59、60~79、80~99的数各有多少。最后在屏幕上显示排序后的数(每个

数之间用逗号分隔)并显示统计的结果。显示格式如下:

Sortednumbers:xx,xx,xx,xx,xx,xx,xx,xx,xx,xx

0~59:xx

60~79:xx

80~99:xx

程序设计:

CALLDOSMACROFUNCTION

MOVAH,FUNCTION

INT21H

ENDM

CRLFMACRO

MOVDL,0DH

CALLDOS2

MOVDL,0AH

CALLDOS2

ENDM

DATASEGMENT

;提示信息字符串

MESSAGEDBPleaseinput10nums:,0DH,0AH,$

;键盘缓冲区

KB_BUFDB3

ACTLENDB?

BUFFERDB3DUP(?)

;数据及统计结果

NUMBERSDB10DUP(?);键入的数据转换成二进制后放在此处

LE59DB0;0~59的个数

GE60DB0;60~79的个数

GE80DB0;80~99的个数

;显示结果的字符串

SORTSTRDBSortednumbers:

SORTNUMDB10DUP(20H,20H,,),0DH,0AH

MESS00DB0-59:,30H,30H,0DH,0AH

MESS60DB60-79:,30H,30H,0DH,0AH

MESS80DB80-99:,30H,30H,0DH,0AH,$

DATAENDS

;

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

;显示MESSAGE提示信息

LEADX,MESSAGE

CALLDOS9

MOVCX,10;共读入10个数据

LEADI,NUMBERS;设置数据保存区指针

L1:LEADX,KB_BUF

CALLDOS10

;将ASCII码形式的两位的十进制数转换成二进制数

MOVAH,[BUFFER]

MOVAL,[BUFFER+1]

CMPAL,0DH

JNZL2

MOVAL,AH

MOVAH,0

L2:SUBAL,30H

SUBAH,30H

SHLAH,1

MOVBL,AH

SHLAH,1

SHLAH,1

ADDAH,BL

ADDAL,AH

MOV[DI],AL

INCDI

CRLF

LOOPL1

;对NUMBERS中的10个数据进行排序

LEASI,NUMBERS

MOVB

您可能关注的文档

文档评论(0)

199****2173 + 关注
实名认证
内容提供者

小学毕业生

1亿VIP精品文档

相关文档