资源描述:
《微机原理软件实验报告(原创)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、北京邮电大学微机原理软件实验报告2010级信通08班07号朱志强2012年11月24日北京邮电大学微机原理软件实验报告2010级信通08班07号朱志强2012年11月24日实验B分支,循环程序设计一、实验目的1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS功能调用。二、实验内容1.安排一个数据区,内存有若干个正数,负数和零。每类数的个数都不超过9。2.编写一个程序统计数据区中正数,负数和零的个数。3.将统计结果在屏幕上显示。4.(扩展题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。三、预习思考1.十进制数0~9所对应的ASCII码是什么?
2、如何将十进制数0~9在屏幕上显示出来?答:0~9分别对应ASCII码的30H~39H。欲将十进制数0~9显示在屏幕上,只需要用二进制数0~9分别加上30H即可。2.如何检验一个数为正,为负或为零?你能举出多少种不同的方法?答:方法有多种,现举出两种。一是直接用CMP命令和0比较,然后用JZ等命令进行判断;二是和0相比是否相等,然后用该数(假设为8位)和10000000相与,取出符号位判断,可区分正负。其余方法大同小异,核心的思想是要么直接和0相比,要么使用逻辑或移位运算,取出符号为进行判断。四、实验过程(一)、流程图(二)、源代码DATASEGMENTARRAYDB1,2,3,4,5
3、,6,-1,-2,-3,0,0,0LENGEQU$-ARRAY;数组长度POSIDB?;正数个数NEGTDB?;负数个数ZERODB?;零的个数POSIEVENDB?;正偶数POSIODDDB?;正奇数NEGTEVENDB?;负偶数NEGTODDDB?;负奇数;用于打印提示的字符串定义POSICHARDB'Positive:$'NEGTCHARDB'Negtive:$'ZEROCHARDB'Zero:$'EVENCHARDB'Even:$'ODDCHARDB'Odd:$'CRDB0DH,0AH,'$';回车换行的ASCII码DATAENDS;---------------------
4、-----------------------------------CODESEGMENTASSUMECS:CODE,DS:DATA;--------------------------------------------------------START:MOVAX,DATAMOVDS,AXMOVSI,OFFSETARRAY-1MOVCL,LENG;数组长度赋予CLMOVAL,0LOP:CMPCL,0;循环控制条件:数组长度减为零JECALC;为零则跳出INCSIDECCLMOVBL,[SI];采用基址加变址寻址CMPBL,AL;和零比较JGISPOSI;是正数跳转JEISZER
5、O;是零跳转JLISNEGT;是负数跳转;--------------------------------------------------------ISPOSI:INCPOSI;正数个数加一ANDBX,1ADDPOSIEVEN,BL;和1与之后的结果加到正偶数中JMPLOPISZERO:INCZEROJMPLOPISNEGT:INCNEGT;负数个数加一ANDBX,1ADDNEGTEVEN,BL;和1与之后结果加到负偶数中JMPLOP;--------------------------------------------------------CALC:MOVAH,POSIM
6、OVAL,POSIEVENSUBAH,AL;计算正奇数个数MOVPOSIODD,AHMOVAH,NEGTMOVAL,NEGTEVENSUBAH,AL;计算负奇数个数MOVNEGTODD,AH;--------------------------------------------------------PRINT:;打印正数提示符和正数(奇偶)个数MOVAH,09HMOVDX,OFFSETPOSICHARINT21HMOVAH,02HMOVDL,POSIADDDL,30HINT21HMOVAH,09HMOVDX,OFFSETEVENCHARINT21HMOVAH,02HMOVDL,P
7、OSIEVENADDDL,30HINT21HMOVAH,09HMOVDX,OFFSETODDCHARINT21HMOVAH,02HMOVDL,POSIODDADDDL,30HINT21HMOVDX,OFFSETCRMOVAH,09HINT21H;--------------------------------------------------------;打印负数提示符和负数(奇偶)个数MOVAH,09HMOVDX,OFFSETNEGTCHARINT21