实验二循环与子程序程序设计.doc
文本预览下载声明
3.2 实验二 循环与子程序程序设计
一、实验目的
1) 加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序的结构。
5) 掌握子程序设计、编制及调试。
6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容
1) 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。
源程序:
DATA SEGMENT
BUF DBS=1*2+2*3+3*4+4*5+……+N(N+1)+……=,$
RES DW 4 DUP(0),$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,09H
INT 21H
MOV DX,1
MOV BL,2
NEXT: MOV AL,BL
INC BL
MUL BL
ADD DX,AX
CMP AX, 200
JNA NEXT
MOV CX,0004H
MOV DI,OFFSET RES
ADD DI,03H
NEXT1: MOV AX, DX
AND AX, 000FH
CMP AL, 0AH
JB NEXT2
ADD AL, 07
NEXT2: ADD AL, 30H
MOV [DI],AL
DEC DI
PUSH CX
MOV CL,04
SHR DX,CL
POP CX
LOOP NEXT1
MOV DX, OFFSET RES
MOV AH, 09H
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
4)编制在屏幕上显示用*组成的三角形的程序。
源程序:
DATA SEGMENT
DATA ENDS
STACK1 SEGMENT STACK
DB 20H DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START:MOV AX,DATA
MOV DS,AX
MOV AX,5
MOV BX,1
MOV CX,5
LOP:PUSH CX
PUSH AX
MOV CX,AX
LOP2:MOV DL,20H
MOV AH,02H
INT 21H
LOOP LOP2
PUSH BX
ADD BX,BX
DEC BX
MOV CX,BX
LOP3:MOV DL,*
MOV AH,02H
INT 21H
LOOP LOP3
POP BX
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
INT 21H
POP AX
DEC AX
INC BX
POP CX
LOOP LOP
MOV AH,4CH
INT 21H
CODE ENDS
END START
四、实验步骤
1) 按程序流程图编制实验程序。
2) 输入源程序。
3) 汇编、连接程序,执行程序,检查结果。
4)对内存单元3000H开始的100个存储单元用E命令输入任意数。
5) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。
6) 用D命令检查执行结果。
五、实验报告的要求
列出源程序。
2)对程序中用到的寄存器说明其功能。
3)总结计数控制循环程序的设计方法。
4
显示全部