北京邮电大学微原软件实验报告

北京邮电大学微原软件实验报告

ID:38762208

大小:299.39 KB

页数:25页

时间:2019-06-19

北京邮电大学微原软件实验报告_第1页
北京邮电大学微原软件实验报告_第2页
北京邮电大学微原软件实验报告_第3页
北京邮电大学微原软件实验报告_第4页
北京邮电大学微原软件实验报告_第5页
资源描述:

《北京邮电大学微原软件实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微机原理软件实验报告实验二分支,循环程序设计一.实验目的:1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS功能调用.二.实验内容:1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过9.2.编写一个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显示.4.统计出正奇数,正偶数,负奇数,负偶数以及零的个数.三.主程序流程图四.输出结果图1数据区图2输出结果五.预习题1.十进制数0--9所对应的ASCII码是什么?如何将十进制数0--9在屏幕上显示出来?答:对应的ascii码为30H至39H,将十进制数加上30H赋给DL,

2、给AH赋01,调用int21H即可输出2.如何检验一个数为正,为负或为零?你能举出多少种不同的方法?答:(1)用CMP指令与0相比,结合符号数比较指令JG等可以判断出正负数。(2)可通过判断sf的值来判断数值是否是负数。(3)也可用减法指令来判断六.总结与感想这是自己编的第一个汇编程序,虽然很简单,但也犯了不少错误,主要是语法错误如寻址错误,寄存器使用错误等。通过这个程序,我初步掌握了条件结构在汇编语言中的实现以及输出的DOS功能调用。七.源代码STACKSEGMENTSTACK'STACK';堆栈段DB100DUP(?)STACKENDSDATASEGMENTBUFFERDB0,-1

3、,8,9,-2,0,-5,7,1,0,2,-3;含有三类数据的数据区OUTPUTDB0AH,0DH,'thenumberofzero:',0AH,0DHNUMZDB?;0的个数DB0AH,0DH,'thenumberofpositiveevennumber:',0AH,0DHNUMPEDB?;正偶数的个数DB0AH,0DH,'thenumberofpositiveoddnumber:',0AH,0DHNUMPODB?;正奇数的个数DB0AH,0DH,'thenumberofnegativeevennumber:',0AH,0DHNUMNEDB?;负偶数的个数DB0AH,0DH,'the

4、numberofnegativeoddnumber:',0AH,0DHNUMNODB?;负奇数的个数DB'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:XORAX,AX;给数据段基址赋值MOVAX,DATAMOVDS,AXMOVAL,0;正偶数计数MOVAH,0;正奇数计数MOVBL,0;负偶数计数MOVBH,0;负奇数计数MOVDL,0;零计数MOVCX,12MOVDI,OFFSETBUFFERLOOP1:MOVDH,[DI]CMPDH,0JGPOSITIVE;如果大于零则跳转到POSITIVEJZZERO;等于零S

5、HRDH,1JCNEGAODD;为奇数INCBL;负偶数+1JMPNEXTNEGAODD:INCBH;负奇数+1JMPNEXTPOSITIVE:SHRDH,1;除以2JCPOSIODD;进位为1为奇数INCAL;正偶数+1JMPNEXTPOSIODD:INCAH;正奇数+1JMPNEXTZERO:INCDL;零+1NEXT:INCDIDECCXJNZLOOP1ADDAX,3030H;转换为ascii码ADDBX,3030HADDDL,30HMOVNUMPE,AL;将计数结果存到内存MOVNUMPO,AHMOVNUMNE,BLMOVNUMNO,BHMOVNUMZ,DLXORAX,AXMO

6、VAH,09HMOVDX,OFFSETOUTPUT;输出结果INT21HMOVAX,4C00HINT21HCODEENDSENDSTART实验三代码转换程序设计一.实验目的:1.掌握几种最基本的代码转换方法;2.运用子程序进行程序设计.二.实验内容:1.从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来.2.两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明.3.对输入要有检错措施,以防止非法字符输入,并有适当的提示.4.将整个程序分解为若干模块,分别用子程序实现.在报告中要给出模块层次图.三.模块层次图四.程序流程图五.输出结果六.预习题1.如何将输入的两

7、个字符(0--9)变为十进制或二进制数?答:将输入的ascii码减去30H则能转换为对应的数值2.如何将选出的最小值(二进制或十进制)变为ASCII码再进行显示?答:将存数的数值除以10或2得到对应的十进制或二进制的每一位数,加上30H得到ascii码。3.你觉得采用二进制运算还是十进制运算更适合于这个实验?答:我觉得二进制运算更适合,因为计算机内部使用二进制存储数据,用二进制计算效率更高。七.总结与感想本次实验的难度较之前有了提高,接收输入的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。