循环程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二循环程序设计
一.实验目的
1.加深对循环结构的理解
2.掌握循环结构程序设计的方法
3.熟练掌握调试循环程序的方法
二.实验内容及步骤
1.编制程序
使S=1+2*3+3*4+4*5+……+N*(N+1),直到N*(N+1)项大于200为止。实验程序及流程如下:
STACK SEGMENT
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,0001H
MOV BL,02H
A1: MOV AL,BL
INC BL
MUL BL
ADD DX,AX
CMP AX,00C8H
JNA A1
MOV AH,4CH
INT 21H
CODE ENDS
END START
要求:1.根据程序写出流程图。
2.用Debug跟踪此程序的执行过程,写出程序执行到第二次循环结束时相关寄存器中的内容。
2.求某数据区内负数的个数
设数据区(首地址为3000H)的第一单元存放数据总数,从第二个单元开始存放数据,最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内负数的个数。
STACK SEGMENT
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
ORG 3000H
DB 12H,88H,82H,90H,22H,23H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DI,3000H
MOV CL,[DI]
XOR CH,CH
MOV BL,CH
INC DI
A1: MOV AL,[DI]
TEST AL,80H
JE A2
INC BL
A2: INC DI
LOOP A1
MOV [DI],BL
MOV AH,4CH
INT 21H
CODE ENDS
END START
要求:1.根据程序写出流程图。
2.给每行程序添加注释。
3.用Debug跟踪此程序的执行过程,写出每一步执行后相关寄存器中的内容