循环程序设计实验

一、实验目的:

  1. 掌握运算类指令编程及调试方法。
  2. 掌握运算类指令对各状态标志位的影响及测试方法。

 

二、实验环境:

PC 微机一台。

三、实验内容:

本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。要求

实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为 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 

实验步骤

  1. 根据实验要求编写程序。在数据段声明 10 个数据:12H,88H,82H, 89H,33H,90H,01H,10H,0BDH,01H。
  2. 对实验程序进行编译、链接。
  3. 运行程序并观察运行结果。

更改数据区中的数据,反复测试,验证程序功能

猜你喜欢

转载自blog.csdn.net/xu_benjamin/article/details/85565719