第一范文网 - 专业文章范例文档资料分享平台

2015年微机原理软件实验报告

来源:用户分享 时间:2025/6/8 3:16:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

信息与通信工程学院 微机原理软件实验报告

级: 名: 号: 期: 2015年11月

姓 学 日

1

实验B 分支、循环程序设计

一、实验目的

1. 开始独立进行汇编语言程序设计; 2. 掌握基本分支,循环程序设计; 3. 掌握最简单的 DOS 功能调用。

二、实验内容

1. 安排一个数据区,内存有若干个正数,负数和零。每类数的个数都不超过 9。

2. 编写一个程序统计数据区中正数,负数和零的个数。 3. 将统计结果在屏幕上显示。

4. (选作题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。

三、预习思考

1. 十进制数 0 ~ 9 所对应的 ASCII 码是什么? 如何将十进制数 0 ~ 9 在屏幕上显示出来?

0~9分别对应ASCII码的30H~39H;

由于数字0~9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数。 2. 如何检验一个数为正,为负或为零? 你能举出多少种不同的方法? 一是直接用CMP命令和0比较(CMP X,0 ),然后检验标志位CF,CF=1则X为负数,CF=0接着检验ZF,ZF=1则X为零,ZF=0则X为正数; 二是使用逻辑或移位运算,和0相比是否相等,用数和10000000相与,取出符号位判断,可区分正负。

页 第2

四、实验过程

流程图

源代码

data segment

array db 1,4,3,2,5,7,-1,-2,-6,0,0,0;自定义数组 length EQU $-array ;数组长度 pnum db ? ;正数个数 nnum db ? ;负数个数 zero db ? ;零的个数 peven db ? ;正偶数个数 podd db ? ;正奇数个数 neven db ? ;负偶数个数 nodd db ? ;负奇数个数

POSICHAR DB 'Positive: $';用于打印字符串定义 NEGTCHAR DB 'Negtive: $'

页 第3

ZEROCHAR DB 'Zero: $'

EVENCHAR DB ' Even: $'ODDCHAR DB ' Odd: $' CR DB 0DH,0AH,'$'; 回车换行的ASCII码 data ends

;-------------------------------------------------------- code segment

assume cs:code,ds:data start:mov ax,data

mov ds,ax

mov si,offset array ;offset指令取array的偏移地址 dec si ;偏移地址先减1 mov cl,length ;数组长度赋予CL xor al,al

lop:cmp cl,0 ;余下数组长度不为0,则继续循环

je print;cl为0跳出循环

inc si;偏移地址加1,比较下一位数字 dec cl;余下数组长度减1

mov bl,[si];采用寄存器间接寻址方式 cmp bl,0;和0比较 jg posi;正数跳转 jz zo;零跳转 jl neg;负数跳转

posi:inc pnum;正数个数加1

test bx,01h;检测最后一位是否是0 jz pep;是0,即为偶数则跳转至pep inc podd;不是0,则正奇数个数加1 jmp lop

pep:inc peven;正偶数个数加1

jmp lop

zo:inc zero;零的个数加1

jmp lop

neg:inc nnum;负数个数加1

test bx,01h;检测最后一位是否是0 jz nep;是0,即为偶数则跳转至nep

页 第4

搜索更多关于: 2015年微机原理软件实验报告 的文档
2015年微机原理软件实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c691yp1ptzc4m0xc0pdv8_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top