资源描述:
《北邮微原软件实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2011211120微机原理软件实验报告2013-2014年第1学期微机原理软件实验实验报告实验名称:8086微机原理软件实验学院:信息与通信工程学院专业:通信工程班级:20112111班内序号:学号:201121姓名:北京邮电大学时间:2013年11月27日202011211120微机原理软件实验报告实验二分支,循环程序设计一.实验目的:1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS功能调用.二.实验内容:1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过9.2.编写一个程序统计数据区中正数,负数和零的个数.3.
2、将统计结果在屏幕上显示.三.预习题:1.十进制数0--9所对应的ASCII码是什么?如何将十进制数0--9在屏幕上显示出来?答:0~9分别对应ASCII码的30H~39H。将十进制数0--9在屏幕上显示出来可以使用操作系统提供的输入输出功能(即相关DOS功能调用)。显示单个字符的DOS功能调用包含以下四个步骤:在AH寄存器中设置系统功能调用号02H;在指定寄存器中设置入口参数,入口参数:DL=待显示字符的ASCII码;执行指令INT21H;根据出口参数分析功能调用执行情况。显示字符串的DOS功能调用包含以下四个步骤:在AH寄存器中设置系统功能调用号09H;在指定寄存器中设置
3、入口参数,入口参数:DS:Dx指向字符串在内存中的首地址,要求字符串以$(24H)结束。执行指令INT21H;根据出口参数分析功能调用执行情况。2.如何检验一个数为正,为负或为零?你能举出多少种不同的方法?答:利用CMP指令,比较该数与0的大小,然后根据比较后所设置的标志进行转移。CMP指令的特点是完成两个操作数的相减,但不回送相减的结果,只是使结果影响标志AF、CF、OF、PF、SF、ZF。202011211120微机原理软件实验报告四.程序流程图:202011211120微机原理软件实验报告五.源代码:DATASEGMENT;定义数据段NUMDB-2,3,4,0,1,5
4、,-22,-25,0,0,4;存储的数据countEQU$-NUM;数据个数CountZDB0;0的个数CountPDB0;正数的个数CountMDB0;负数的个数stringZDB0DH,0AH,'ZERO:','$';屏幕上显示”ZERO:”stringPDB0DH,0AH,'POSITIVE:','$';屏幕上显示”POSITIVE:”stringMDB0DH,0AH,'MINUS:','$';屏幕上显示”MINUS:”DATAENDSSTACKSEGMENTSTACK'STACK';定义堆栈段DB50DUP(?);预留50个字节空间STACKENDSCODESEGM
5、ENT;定义代码段ASSUMECS:CODE,DS:DATA,SS:STACK;段寻址STARTPROCfarPUSHDSXORAX,AXPUSHAX;程序开始时,DS:0指向的是一条返回DOS的MOVAX,DATA;指令:INT20HMOVDS,AX;初始化DS段MOVCX,count;赋值计数变量MOVBX,OFFSETNUMLOOPC:MOVAL,[BX];从内存代码段中取出数据与0比较CMPAL,0JGEBIGPR;操作数不小于0,跳转到BIGPRJNGESMALL;操作数小于0,跳转到SMALLBIGPR:JEEQUAL;操作数是0,则跳转到EQUALMOVDL,
6、CountP;操作数大于0:CountP自增INCDLMOVCountP,DLINCBXLOOPLOOPCJMPEXITEQUAL:MOVDL,CountZ;操作数等于0:CountZ自增INCDL202011211120微机原理软件实验报告MOVCountZ,DLINCBXLOOPLOOPCJMPEXITSMALL:MOVDL,CountM;操作数小于0:CountM自增INCDLMOVCountM,DLINCBXLOOPLOOPCEXIT:MOVAH,09HMOVDX,SEGstringPMOVDS,DXMOVDX,OFFSETstringPINT21HMOVAL,Co
7、untP;显示正数的个数ADDAL,30HMOVAH,02HMOVDL,ALINT21HMOVAH,09HMOVDX,SEGstringZMOVDS,DXMOVDX,OFFSETstringZINT21HMOVAL,CountZ;显示零的个数ADDAL,30HMOVAH,02HMOVDL,ALINT21HMOVAH,09HMOVDX,SEGstringMMOVDS,DXMOVDX,OFFSETstringMINT21HMOVAL,CountM;显示负数的个数ADDAL,30H202011211120微机原理软件实验