微机实验报告5 循环程序设计实验

     

班级  软件工程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 个数据:12H88H82H 89H33H90H01H10H0BDH01H

(2) 对实验程序进行编译、链接。

(3) 运行程序并观察运行结果。

数据  

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

修改数据后

 

 

再修改一次  

 

四、心得体会:

 

刚开始还不明白

NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H   这一串数据的意思 并且也分不清正负值   后来才直到  大于等于80H 就是负数    因为80H转换成 2进制就是  1000 0000  转换成补码 最高为为1 就是负数

猜你喜欢

转载自blog.csdn.net/qq_41398448/article/details/84333679