1、3) 修改部分:按一定规律修改操作数地址及控制变量,以便每次执行循环体时得到新的数据。4)控制部分:用来保证循环程序按规定的次数或特定条件正常循环。2、在程序设计中,对于某个连续多次重复出现的出现段,常常编制成循环程序,但在无规律的重复时很难用循环程序,此时应用子程序来实现。.子程序的定义: 过程名PROC : 过程名ENDP子程序的调用: CALL过程名编写子程序时应注意:1)、入口信息2)、出口信息3)、现场保护和恢复4)、最后一条指令一定是RET指令三、实验内容1、编写程序,显示用 * 组成三角形的图形。结果类似以下系列图(图中sanj4是程序文件名): 提示及要求: 1)循环调用2号系
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、
3、简述子程序的编写格式和调用方法。实验内容:编写程序程序一DATA SEGMENTDATA ENDSSTACK SEGMENT STACK DB 20 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV BX,1 MOV CX,5LOP1: PUSH CX PUSH BXLOP2: MOV DL,* MOV AH,2 INT 21H MOV DL,20H DEC BX JNZ LOP2LOP3: POP BX INC BX POP CX CALL HH LOOP LO
4、P1 MOV AH,4CHHH PROC MOV DL,0DH MOV DL,0AH RETHH ENDPCODE ENDS 程序二 MOV BX,5L1:PUSH BXL2:MOV DL, MOV DL,20H JNZ L2 CALL HH LOOP L1HH PROCCODE ENDS END START程序三 MOV BX,4 MOV CX,4L3:L4: JNZ L4 LOOP L3程序四 MOV CX,7MOV DL,20H LOOP L2 JNZ L3程序五程序六 JNZ L3 ADD BX,2程序七BUF DB 50 DB ? DB 50 DUP($STACK SEGMENT STACK STACK DW 32 DUP(?ASSUME DS:DATA,CS:CODE,SS: MOV BH,16 MOV CX,16 MOV BL,0CMP BL,2H JE L3 CMP BL,7H CMP BL,8H CMP BL,9H CMP BL,0AH CMP BL,0DH JNE L4 JMP L5 MOV DL,BLL5:ADD BL,10H DEC BH INC BLCALL HH INT 21H