1 / 16
文档名称:

循环与子程序设计.doc

格式:doc   大小:18KB   页数:16
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

循环与子程序设计.doc

上传人:wz_198614 2017/10/9 文件大小:18 KB

下载得到文件列表

循环与子程序设计.doc

相关文档

文档介绍

文档介绍:循环与子程序设计
一、实验目的
1. 熟练循环程序的编写。
2. 掌握子程序的定义及调用方法。
3. 学会子程序的编程方法。
二、预习内容
1、循环程序是强制CPU重复执行某一指令系列(程序段)的一种程序结构形式,凡是要重复执行的程序段都可以按循环结构设计。
循环顺序一般由四部分组成
1) 置循环初值部分:这是为了保证循环程序能正常进行循环操作而必须做的准备工作。循环初值分两类,一类是循环工作部分的初值,另一类是控制循环结束条件的初值。
2) 工作部分:即需要重复执行的程序段。这是循环程序的核心,称之为循环体。
3) 修改部分:按一定规律修改操作数地址及控制变量,以便每次执行循环体时得到新的数据。
4)控制部分:用来保证循环程序按规定的次数或特定条件正常循环。
2、在程序设计中,对于某个连续多次重复出现的出现段,常常编制成循环程序,但在无规律的重复时很难用循环程序,此时应用子程序来实现。.
子程序的定义: 〈过程名〉PROC
:
〈过程名〉ENDP
子程序的调用: CALL 〈过程名〉
编写子程序时应注意:
1)、入口信息
2)、出口信息
3)、现场保护和恢复
4)、最后一条指令一定是RET指令
三、实验内容
1、编写程序,显示用‘* '组成三角形的图形。结果类似以下系列图(图中sanj4是程序文件名):
提示及要求:
1)循环调用2号系统功能,显示输出‘*’。注意循环次数的变化。
2)将回车、换行的功能编写成子程序的格式。
3)‘*’不是从顶格开始的,前面打印输出空格。空格的ASCII值为20H,同样调用 2号功能,输出空格。
2、编程实现以教材附录B的格式显示出ASCII码表。对于无法显示出的格式符或功能符,如空白0、响铃7、换行0AH、回车0DH等均用空格代替。
运行结果如下图
:
提示及要求:
1)列间字符的ASCII值加10H,行间字符的ASCII值加01H。
2)每显示完一行,回车换行。要求将实现回车换行编为子程序的格式。
3)对于ASCII值为2、7、8、9、0AH、0DH显示为空格。
四、实验报告
1、写出程序清单、程序流程图。
2、简述子程序的编写格式和调用方法。
实验内容:编写程序
程序一
DATA SEGMENT
DATA ENDS
STACK SEGMENT STACK
DB 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV BX,1
MOV CX,5
LOP1: PUSH CX
PUSH BX
LOP2: MOV DL,'*'
MOV AH,2
INT 21H
MOV DL,20H
MOV AH,2
INT 21H
DEC BX
JNZ LOP2
LOP3: POP BX
INC BX
POP CX
CALL HH
LOOP LOP1
MOV AH,4CH
INT 21H
HH PROC
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
RET
HH ENDP
CODE ENDS
程序二
DATA SEGMENT
DATA ENDS
STACK SEGMENT STACK
DB 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA
MOV DS,AX
MOV BX,5
MOV CX,5
L1:PUSH BX
PUSH CX
L2:MOV DL,'*'
MOV AH,2
INT 21H
MOV DL,20H
MOV AH,2
INT 21H
DEC BX
JNZ L2
POP CX
POP BX
DEC BX
CALL HH
LOOP L1
MOV AH,4CH
INT 21H
HH PROC
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
RET
HH ENDP
CODE ENDS
END START
程序三
DATA