没有合适的资源?快使用搜索试试~ 我知道了~
2011211123班北邮微原软件实验报告.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 32 浏览量
2022-11-26
16:49:11
上传
评论
收藏 1.11MB PDF 举报
温馨提示
试读
35页
2011211123班北邮微原软件实验报告.pdf2011211123班北邮微原软件实验报告.pdf
资源推荐
资源详情
资源评论
信息与通信工程学院
微机原理软件实验报告
班 级
:2011211123
姓 名
:
学 号
:
日 期
:
2013.11.28
实验二分支、循环程序设计
一、实验目的
1. 开始独立进行汇编语言程序设计;
2. 掌握基本分支,循环程序设计;
3. 掌握最简单的 DOS 功能调用。
二、实验内容
1. 安排一个数据区,内存有若干个正数,负数和零。每类数的个数都不超过
9。
2. 编写一个程序统计数据区中正数,负数和零的个数。
3. 将统计结果在屏幕上显示。
4. (扩展题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。
三、预习思考
1. 十进制数 0 ~ 9 所对应的 ASCII 码是什么?如何将十进制数 0 ~ 9 在
屏幕上显示出来?
答:0~9 分别对应 ASCII 码的 30H~39H。将十进制数 0~9 显示在屏幕
上,要用二进制数 0~9 分别加上 30H。
2. 如何检验一个数为正,为负或为零?你能举出多少种不同的方法?
答:和 0 相比是否相等,然后用该数和相与,取出符号位判断,可区分正负。还可
以直接用 CMP 命令和 0 比较,然后用 JZ 等命令进行判断。
四、实验过程
1、流程图
开始
定义各段并初始化
是
计数器值大于数列长度
否
读取当前指针指向的数,指针+1
负数个数+1
<0
该数和 0 比较
=0
>0
正数个数+1
和 1 与,结果
加到正偶数
0 的个数+1
和 1 与,结果
加到负偶数
统计结果
显示结果
结束
2、源代码
DATA SEGMENT
ARRAY DB 8,0,0,5,8,-1,-2,-3, 0,1,4,3
LENG EQU $-ARRAY ; 数组长度
POSI DB ? ; 正数个数
NEGT DB ? ; 负数个数
ZERO DB ? ; 零的个数
POSIEVEN DB ? ;正偶数的个数
POSIODD DB ? ; 正奇数的个数
NEGTEVEN DB ? ; 负偶数的个数
NEGTODD DB ? ; 负奇数的个数
POSICHAR DB 'Pos: $'
NEGTCHAR DB 'Neg: $'
ZEROCHAR DB 'Zero: $'
EVENCHAR DB ' ou: $'
ODDCHAR DB ' ji: $'
CR DB 0DH,0AH,'$' ; 回车换行
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET ARRAY-1
MOV CL,LENG ;数组长度
MOV AL,0
LOP: CMP CL,0 ; 循环控制条件
JE CALC
INC SI
DEC CL
MOV BL,[SI] ;基址加变址寻址
CMP BL,AL ; 和零比较
JG ISPOSI ; 是正数
JE ISZERO ; 是零
JL ISNEGT ; 是负数
ISPOSI: INC POSI; 正数个数加一
AND BX,1
ADD POSIEVEN,BL ; 和 1 与之后的结果加到正偶数中
JMP LOP
ISZERO: INC ZERO
JMP LOP
ISNEGT: INC NEGT ; 负数个数加一
AND BX,1
ADD NEGTEVEN,BL ; 和 1 与之后结果加到负偶数中
JMP LOP
CALC: MOV AH,POSI
MOV AL,POSIEVEN
SUB AH,AL ; 计算正奇数个数
MOV POSIODD,AH
MOV AH,NEGT
MOV AL,NEGTEVEN
SUB AH,AL ; 计算负奇数个数
MOV NEGTODD,AH
PRINT: ;打印
MOV AH,09H
MOV DX,OFFSET POSICHAR
INT 21H
MOV AH,02H
MOV DL,POSI
ADD DL,30H
INT 21H
MOV AH,09H
MOV DX,OFFSET EVENCHAR
INT 21H
MOV AH,02H
MOV DL,POSIEVEN
ADD DL,30H
INT 21H
MOV AH,09H
MOV DX,OFFSET ODDCHAR
INT 21H
MOV AH,02H
MOV DL,POSIODD
ADD DL,30H
INT 21H
MOV DX,OFFSET CR
MOV AH,09H
INT 21H
MOV AH,09H
MOV DX,OFFSET NEGTCHAR
INT 21H
MOV AH,02H
MOV DL,NEGT
ADD DL,30H
INT 21H
MOV AH,09H
MOV DX,OFFSET EVENCHAR
INT 21H
MOV AH,02H
MOV DL,NEGTEVEN
ADD DL,30H
INT 21H
MOV AH,09H
MOV DX,OFFSET ODDCHAR
INT 21H
MOV AH,02H
MOV DL,NEGTODD
ADD DL,30H
INT 21H
MOV DX,OFFSET CR
MOV AH,09H
INT 21H
MOV AH,09H
MOV DX,OFFSET ZEROCHAR
INT 21H
MOV AH,02H
剩余34页未读,继续阅读
资源评论
xxpr_ybgg
- 粉丝: 6560
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于原生微信小程序实现的课堂考勤系统的设计与实现
- 商道融绿、润灵环球ESG评级数据(2015-2023年).xlsx
- 商道融绿、润灵环球ESG评级数据(2015-2023年).dta
- 基于 GDAL 与 PROJ4 的遥感图像处理软件,使用 Qt 构建课程设计
- 图形化界面采用Easyx编写,实现对哈夫曼树的显示操作
- 使用后端开发框架Spring Boot构建应用程序.pdf
- 基于Boson的计算机网络实验:RIP和IGRP的配置
- 在线教育系统 JAVA+Vue+SpringBoot+MySQL
- 健身房管理系统 JAVA+Vue+SpringBoot+MySQL
- 卓越导师双选系统 JAVA+Vue+SpringBoot+MySQL
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功