桂 林 理 工 大 学
实 验 报 告
班级 软件工程16-1班 学号 3162052051116 姓名 张识虔 同组实验者
实验名称 循环程序设计实验 日期 2018年 11 月16 日
一、实验目的:
掌握循环程序的设计方法。
二、实验环境:
PC 微机一台。
三、实验内容:
本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。要求 实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据, 然后将所有数据中凡是符号位为 1 的数据的个数累加起来,即得到区内所包含负 数的个数。循环程序的结构示意如图 2-5-1 所示。请画出程序流程图,根据流程 图编写实验程序。
图
图 2-5-1 循环结构示意图
实验程序清单
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H
MES1 DB 'The number of negative is:$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DI,OFFSET NUMB
XOR BH,BH
MOV CX,10D
A1: MOV AL,[DI]
TEST AL,80H
JE A2
INC BL
A2: INC DI
LOOP A1
MOV DX,OFFSET MES1
MOV AH,09H
INT 21H
MOV AL,BL
AND AL,0F0H
MOV CL,4
SHR AL,CL
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,BL
AND AL,0FH
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
WAIT1: MOV AH,1
INT 16H
JZ WAIT1
MOV AX,4C00H
INT 21H
CODE ENDS
END START
2.5.4 实验步骤
(1) 根据实验要求编写程序。在数据段声明 10 个数据:12H,88H,82H, 89H,33H,90H,01H,10H,0BDH,01H。
(2) 对实验程序进行编译、链接。
(3) 运行程序并观察运行结果。
数据
(4) 更改数据区中的数据,反复测试,验证程序功能。
修改数据后
再修改一次
四、心得体会:
刚开始还不明白
NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H 这一串数据的意思 并且也分不清正负值 后来才直到 大于等于80H 就是负数 因为80H转换成 2进制就是 1000 0000 转换成补码 最高为为1 就是负数