汇编实验报告(适合初学者)(2)

2018-11-23 22:01

4.试编程统计数据区中正数、零和负数的个数。 ①.程序算法流程图。

开始初始化数循环计数值i=0;O=0;Z=0;F=0是X[i]=0否否X[i]>0O++(0数加1)是F++(负数个数加1)Z++(正数个数加1)i=i+1否循环计数值=0?是结束 ②.源程序清单。

DATA SEGMENT

X DB 5,6,7,8,0,-1,-2,-3,-4;数据定义 Y DB 9;存放循环计数值 Z DB 0;存放正数个数 O DB 0;存放0个数 F DB 0;存放负数个数

MESSAGE1 DB 'positive number:$';输出正数个数提示符 MESSAGE2 DB 'negative number:$';输出负数个数提示符 MESSAGE3 DB 'zero number:$';输出数为0个数提示符 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA

6

START:MOV AX,DATA

MOV DS,AX;段寄存器定义

LEA DI,X;将X数组放到DI寄存器 MOV CL,Y;初始化循环计数值 NEXT:

MOV AL,[DI];开始取数组里的值 CMP AL,0;与0比较

JE ZERO;等于0 则转ZERO JG ZHENG;大于0 则转ZHENG JMP FUSHU;小于0 则转FUSHU ZERO:

INC [O];0的个数加一 ADD DI,1;到数组下一个数 JMP LOOP_HERE ZHENG:

INC [Z];正数个数加一 ADD DI,1;到数组下一个数 JMP LOOP_HERE FUSHU:

INC [F];负数个数加一 ADD DI,1;到数组下一个数 LOOP_HERE:

LOOP NEXT;循环计数自动减一,循环计数不为0继续循环

MOV AH,9;输出正数个数 MOV DX,OFFSET MESSAGE1 INT 21H MOV DL,Z ADD DL,30H MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H

MOV AH,9;输出0个个数 MOV DX,OFFSET MESSAGE3 INT 21H MOV DL,O ADD DL,30H MOV AH,2 INT 21H MOV DL,0AH

7

MOV AH,2 INT 21H

MOV AH,9;输出负数个数 MOV DX,OFFSET MESSAGE2 INT 21H MOV DL,F ADD DL,30H MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H

MOV AH,4CH;退出 INT 21H CODE ENDS

END START ③.程序运行结果。

④.调试过程中遇到的问题和解决的方法。

对loop指令的跳转不熟悉,以至程序出错;一开始使用BX来缓存数据,但数组不跳转,使用DI指针寄存器来解决。

5. 编程求无符号数字节序列中最大值和最小值。 ①.程序算法流程图。

8

开始初始化数循环计数值i=0BL=X[i](最大值)DL=X[i](最小值)是X[i]>BL否BL=X[i]X[i]

DATA SEGMENT

X DB 5,6,7,8,0;数据定义 Y DB 5

MESSAGEMAX DB 'max number:$';输出最大值提示符 MESSAGEMIN DB 'min number:$';输出最小值提示符 DATA ENDS CODE SEGMENT

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

MOV DS,AX ;段寄存器定义

LEA DI,X;将X数组放到DI寄存器

9

MOV CL,Y;初始化循环计数值 MOV BL,X[DI];初始化最大值 MOV DL,X[DI];初始化最小值 NEXT:

MOV AL,X[DI];取数组里的数 CMP AL,BL

JG MMAX;大于最大值 转MMAX CMP AL,DL

JL MMIX;小于最小值 转MMIX ADD DI,1;到数组下一个数 JMP LOOP_HERE MMIX:

MOV DL,AL;更新最小值 ADD DI,1;到数组下一个数 JMP LOOP_HERE MMAX:

MOV BL,AL;更新最大值 ADD DI,1;到数组下一个数 JMP LOOP_HERE LOOP_HERE:

LOOP NEXT;循环计数自动减一,循环计数不为0继续循环 MOV CL,DL;输出用到DL,将值存在CL里 MOV AH,9;输出最大值

MOV DX,OFFSET MESSAGEMAX INT 21H MOV DL,BL ADD DL,30H MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H

MOV AH,9;输出最小值

MOV DX,OFFSET MESSAGEMIN INT 21H MOV DL,CL ADD DL,30H MOV AH,2 INT 21H

MOV AH,4CH;退出 INT 21H CODE ENDS

END START ③.程序运行结果。

10


汇编实验报告(适合初学者)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:材料成型及控制工程课程设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: