微机原理与应用实验(二)
循环程序设计
1.编制程序,使 S=l+2×3+3×4+4×5+…+N(N+1),直到 N(N+1)项大于 200 为止。
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,0001H
MOV BL,02H
NT: MOV AL,BL
INC BL
MUL BL
ADD DX,AX
CMP AX,00C8H; 题目要求的是N>200停止,200的十六进制是00C8H,如果N为其他数字,可在这里进行更改
JNA NT
MOV AX,4C00H
INT 21H
CODE ENDS
END START
2.1求某数据区内负数的个数。
设数据区的第一单元存放区内数据的个数,从第二单元开始存 放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内 的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA DI,NUM
MOV CX,LEN
XOR CH,CH ;CH清零
MOV BL,CH ;BL清零
A1: MOV AL,[DI]
TEST AL,80H ;JUDGE 首位是不是1
JE A2
INC BL ;YSE BL+1
A2: INC DI;NOT DI+1
LOOP A1
MOV [DI+000AH],BL