习中打好一定的基础。
实验三、循环程序设计
一. 实验内容
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