资源描述:
《微机原理设计性实验报告-DOS系统功能调用系统日期》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DOS系统功能调用系统日期[实验题目]:DOS系统功能调用—系统日期[实验目的]:1熟悉DOS操作中一些常用的命令;2掌握DOS功能调用中取系统日期的方法;3理解运用展转求余将机器二进制数转化为ASCII码的方法。[实验内容]:利用DOS功能调用2AH取系统的当前日期,返回参数后分别减1后显示在屏幕上(系统当前时间为2007/12/19,要求在屏幕上显示字符串THEDATEIS:2006/11/18)。[实验原理]:DOS是PC机上应用广泛的操作系统,其中包含了丰富的服务程序,这些程序为DOS功能调用。在此实验中,主程序先利用DOS功能调用2AH取系统当前日期,系统将各项参数自动放入
2、默认的寄存器中(年份放入CX中,月份放入DL中,日期放入DL中),再将放入寄存器中的参数按照年,月,日的顺序移入事先开辟的相应单元内(CX中的年参数移入字单元YEAR中,DH中的月参数移入字节单元MONTH中,DL中的日参数移入字节单元DAY中),然后将相应的寄存器清零后,将已经存入开辟的单元中的参数按照年,月,日的顺序移入相应的寄存器内(年参数放入AX中,月参数和日参数放入AL中),将参数分别减1。调用把二进制数转换为ASCII码的子程序把被减过后的参数以ASCII码字符的形式显示在屏幕上。子程序用展转求余法将被减过1后的参数逐位转换为ASCII码。将放入AX中的参数作为被除数,将
3、放入SI中的参数10作为除数。除的余数放入DX中,商继续放在AX中。将放入DX中的二进制余数加30H转化为ASCII码,放入年参数末尾数字6对应的地址内(即BX所指向的内存地址内),随后BX的值减1指针前移以存放下一个字符。AX中的商继续除10,重复上面的过程直至将参数全部转化完毕。[实验设备]:装有MASM5.0的PC机一台。[实验步骤]:1源程序的编辑:在DOS环境下利用命令‘D:>MDHUIBIAN’命令在D盘下建立一目录名为HUIBIAN的子目录,并用‘D:/>CDHUIBIAN’命令将此目录设置为当前目录。将MASM5.0的内容复制到此子目录下。键入‘EDIT’命令进入编
4、辑器中,开始按照设计原理来编辑程序。源程序如下:CODESEGMENTPUBLICASSUMECS:CODE,DS:CODEORG100H;起始地址的偏移量START:JMPBEGINSTR1DB'THEDATEIS:';要显示的字符DB4DUP(0)DB'/'DB2DUP(0)DB'/'DB2DUP(0),0DH,'$';0DH为回车YEARDW0MONTHDB0DAYDB0子程序:NUM2ASCPROC;数值在AX中转换,字符串末尾地址在BX中MOVSI,10;SI作除数,除数为10NEXT:XORDX,DX;DX清0DIVSI;AX内容被10除ADDDX,30H;把余数转化为A
5、SCII值DECBX;指向下一个字符位置MOV[BX],DL;把转化为ASCII值的字符存入字符串中ORAX,AX;有无更多的数位转换?JNZNEXT;有,换下一位RET;没有,返回NUM2ASCENDP主程序:BEGIN:MOVAX,CSMOVDS,AXMOVAH,2AH;取日期功能调用号为2AHINT21HMOVWORDPTRYEAR,CX;存年MOVBYTEPTRMONTH,DH;存月份MOVBYTEPTRDAY,DL;存日MOVBX,OFFSETSTR1+16;得到字符串末尾地址XORAX,AX;AX清零MOVAX,WORDPTRYEAR;取年份SUBAX,1;减1CALLN
6、UM2ASC;把年份二进制数转换为ASCII码MOVBX,OFFSETSTR1+19;取字符串末址XORAX,AXMOVAL,BYTEPTRMONTHSUBAL,1CALLNUM2ASCMOVBX,OFFSETSTR1+22;取字符串末址XORAX,AXMOVAL,BYTEPTRDAYSUBAL,1CALLNUM2ASCMOVDX,OFFSETSTR1;指向要显示字符串的首址MOVAH,09;显示字符串功能调用09HINT21HMOVAH,4CH;结束程序功能调用4CHINT21H;返回DOSCODEENDSENDSTART此源程序包含一主程序和一子程序。主程序实现日期的调取并返回参
7、数减1后输出显示。子程序实现将日期的二进制数转化为ASCII码用于显示。编辑完成后,将源文件以文件名QURIQI.ASM存盘。这样就在当前的子目录下建立了一个汇编语言的源程序文件,完成后返回DOS命令窗口。2源程序汇编(编译)在命令窗口中键入命令‘MASMQURIQI.ASM’,敲回车,出现第一个提示:Objiectfilename[QURIQI.OBJ]:询问目标文件名,直接打回车,则采用默认文件名(QURIQI.OBJ)。接着出现第二个提示:Sourc