匯编语言程序设计实验六.doc
文本预览下载声明
实验六 分支及循环程序设计
??? 实验目的
1、学习提示信息的显示及键盘输入字符的方法。
2、掌握分支程序和循环程序的设计方法。
??? 实验预习要求
1、复习比较指令、转移指令、循环指令的用法。
2、根据编程提示,编出汇编语言源程序。
3、有兴趣的同学请编写出实验习题中的程序。
??? 分支程序和循环程序简介
? 分支程序是根据不同条件执行不同处理过程的程序。分支程序的结构有两种:—种是二分支,—种是多分支。它们的共同特点是在满足某一条件时,将执行多个分支中的某—分支。
? 循环程序
??? 实验内容
在屏幕上显示提示信息“Please input 10 numbers:”,提示用户输入10个数(数的范围在0~99之间),然后从键盘上读入这10个数。接着对这10个数从小到大进行排序,并统计0~59、60~79、80~99的数各有多少。最后在屏幕上显示排序后的数(每个数之间用逗号分隔)并显示统计的结果。显示格式如下:
Sorted numbers: xx,xx,xx,xx,xx,xx,xx,xx,xx,xx
0-59: xx
60-79: xx
80-99: xx
代码:
CALLDOS MACRO FUNCTION
MOV AH,FUNCTION
INT 21H
ENDM
CRLF MACRO
MOV DL,0DH
CALLDOS 2
MOV DL,0AH
CALLDOS 2
ENDM
DATA SEGMENT
MESSAGE DB Please input 10 number:,0DH,0AH,$
NUMBERS DB 10 DUP(?)
KB_BUF DB 3
ACTLEN DB ?
BUFFER DB 3 DUP(?) ;输入的字符放在次区域中
LE59 DB 0 ;0——5的个数
GE60 DB 0 ;60——79的个数
GE80 DB 0 ;80——99的个数
SORTSTR DB Sorted numbers
SORTNUM DB 9 DUP(20H,20H,,),20H,20H,0DH,0AH
MESS00 DB 0-59:,30H,30H,0DH,0AH
MESS60 DB 60-79:,30H,30H,0DH,0AH
MESS80 DB 80-99:,30H,30H,0DH,0AH,$
DATA ENDS ;数据段结束
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:DATA,ES:DATA
START:MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA DX,MESSAGE
MOV AH,09H
INT 21H ;显示MESSAGE
;从键盘读入数据并转化成二进制数保存
MOV CX,10
LEA DI,NUMBERS ;设置数据保存区指针
LP11:LEA DX,KB_BUF
MOV AH,0AH
INT 21H ;从键盘读入数据
CMP ACTLEN,0
JZ LP11
CMP ACTLEN,1
JNZ LP12
MOV AL,BUFFER ;若只有一个数字
AND AL,0FH
显示全部