资源描述:
《2016-2022年中国印刷包装行业竞争格局现状及十三五投资价值评估报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验五循环与子程序设计一、实验目的1.熟练循环程序的编写。2.掌握子程序的定义及调用方法。3.学会子程序的编程方法。二、预习内容1、循环程序是强制CPU重复执行某一指令系列(程序段)的一种程序结构形式,凡是要重复执行的程序段都可以按循环结构设计。循环顺序一般由四部分组成1)置循环初值部分:这是为了保证循环程序能正常进行循环操作而必须做的准备工作。循环初值分两类,一类是循环工作部分的初值,另一类是控制循环结束条件的初值。2)工作部分:即需要重复执行的程序段。这是循环程序的核心,称之为循环体。3)修改部分:按一定规律修改操作数地址及控制变量,以便每次执行循环体时
2、得到新的数据。4)控制部分:用来保证循环程序按规定的次数或特定条件正常循环。2、在程序设计中,对于某个连续多次重复出现的出现段,常常编制成循环程序,但在无规律的重复时很难用循环程序,此时应用子程序来实现。.子程序的定义:〈过程名〉PROC:〈过程名〉ENDP子程序的调用:CALL 〈过程名〉编写子程序时应注意:1)、入口信息2)、出口信息3)、现场保护和恢复4)、最后一条指令一定是RET指令三、实验内容1、编写程序,显示用‘*'组成三角形的图形。结果类似以下系列图(图中sanj4是程序文件名):提示及要求:1)循环调用2号系统功能,显示输出‘*’。注意循环次
3、数的变化。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、
4、简述子程序的编写格式和调用方法。实验内容:编写程序程序一DATASEGMENTDATAENDSSTACKSEGMENTSTACKDB20DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVBX,1MOVCX,5LOP1:PUSHCXPUSHBXLOP2:MOVDL,'*'MOVAH,2INT21HMOVDL,20HMOVAH,2INT21HDECBXJNZLOP2LOP3:POPBXINCBXPOPCXCALLHHLOOPLOP1MOVAH,4C
5、HINT21HHHPROCMOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HRETHHENDPCODEENDS程序二DATASEGMENTDATAENDSSTACKSEGMENTSTACKDB20DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVBX,5MOVCX,5L1:PUSHBXPUSHCXL2:MOVDL,'*'MOVAH,2INT21HMOVDL,20HMOVAH,2INT21HDECBXJNZL
6、2POPCXPOPBXDECBXCALLHHLOOPL1MOVAH,4CHINT21HHHPROCMOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HRETHHENDPCODEENDSENDSTART程序三DATASEGMENTDATAENDSSTACKSEGMENTSTACKDB20DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVBX,1MOVCX,5L1:PUSHBXPUSHCXL2:MOVDL,'*'
7、MOVAH,2INT21HMOVDL,20HMOVAH,2INT21HDECBXJNZL2POPCXPOPBXINCBXCALLHHLOOPL1MOVBX,4MOVCX,4L3:PUSHBXPUSHCXL4:MOVDL,'*'MOVAH,2INT21HMOVDL,20HMOVAH,2INT21HDECBXJNZL4POPCXPOPBXDECBXCALLHHLOOPL3MOVAH,4CHINT21HHHPROCMOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HRETHHENDPCODEENDSENDSTART程序四DATA
8、SEGMENTDATAENDSSTACKSEGMEN