微机原理与接口技术实验报告 下载本文

习中打好一定的基础。

实验三、循环程序设计

一. 实验内容

1.求某数据区内负数的个数

2.试编程统计数据区中正数、零和负数的个数。 3. 编程求无符号数字节序列中最大值和最小值。

4.从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。 二.分析设计思想

1.求某数据区内负数的个数为统计数据区内负数的个数,需逐个判别区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,即得到区内包含负数的个数。参见程序清单.

2.试编程统计数据区中正数、零和负数的个数。 3.编程求无符号数字节序列中最大值和最小值

实验中可使用BH和BL作为暂存现行最大值和最小值,且在初始时将BH和BL初始化为首字节的内容,循环依次比较每个字节的内容,求得最大值(存于BH中)和最小值(存于BL中),送屏幕显示。

三. 程序清单及相关注解

;确定数据区NUMB中负数的个数(存放于BL中)

5

DDATA SEGMENT

NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H MES DB 'The number of negative is:$' DDATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DDATA START:MOV AX,DDATA

MOV MOV XOR

DS,AX

DI,OFFSET NUMB

BL,BL CX,10

MOV A1: MOV

AL,[DI]

TEST AL,80H JE INC A2: INC

A2 BL DI

LOOP A1 ;统计负数个数 MOV MOV INT MOV

DX,OFFSET MES AH,09H 21H

AL,BL ;显示负数个数,注意与实验二所使

用的方法的区别

6

MOV CX,2 A3: PUSH CX

MOV CL,4 ROL AL,CL POP CX MOV BL,AL AND AL,0FH CMP AL,0AH JB A4

ADD AL,07H A4: ADD AL,30H

MOV DL,AL MOV AH,02H INT 21H MOV AL,BL LOOP A3 MOV AH,4CH

INT

21H

CODE ENDS END START

四. 实验结果并分析。

7

六.收获体会。

在本次实验中基本了解了试编程统计数据区中正数、零和负数的个数的方法,对数值的进制有进一步了解,求某数据区内负数的个数为统计数据区内负数的个数,需逐个判别区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,才能得到区内包含负数的个数。实验中可使用BH和BL作为暂存现行最大值和最小值。我对代码段中的存储器用法基本掌握,对编程的思想还需进一步加强。

实验四、代码转换程序设计

一.实验内容

1.将5位十进制数的数字串转换为一个字的二进制数

2.编写程序将内存中一个字的数转换为十进制数的数字串显示。 3.编程将十进制的数字串转换为BCD码 4.编程将BCD码转换为二进制数 5.编程将二进制数转换为十进制数显示

二.分析设计思想

8