资源描述:
《实验一南昌航空大学两个多位十进制数相减实验.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微机原理实验南昌航空大学实验报告学生姓名:学号:专业班级:电子信息工程实验类型:n验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称实验一、多位十进制数相减实验二、实验目的(1)学习数据传送和算术运算指令的用法。(2)熟悉在PC机上建立、汇编、连接、调试和运行汇编语言的过程。三、实验要求将两个多位十进制数相减,要求被减数、减数均以ASCII码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。实验程序框图如下图所示:四、实验程序DATASEGMENTDATA1D
2、B33H,39H,31H,37H,38H;第一个数据(作为被减数)DATA2DB36H,35H,30H,38H,32H;第二个数据(作为减数)MES1DB'-','$'MES2DB'=','$'DATAENDSSTACKSEGMENT;堆栈段STADB20DUP(?);定义由20个字节组成的数据缓冲区(数组),每个字节的初值不确定TOPEQULENGTHSTA返回利用DUP定义的数组元素的个数到TOP,TOP=20;段使用设定语句,确定段寄存器与段的对应关系:从现在开始:CS寄存器对应CODE段,DS寄存器对应数
3、据段,SS寄存器对应STACK段,ES寄存器对应数据段.STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA;START:MOVAX,DATA段使用设定语句是伪指令,它不能设置段寄存器的值,只能通过指令语句给DS,ES,SS赋值,CS由系统自动赋值。MOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AX堆栈指针寄存器赋值MOVAX,TOPMOVSP,AXMOVSI,OFFSETDATA1被减数送SIMOVBX,05位数5送BX中,作为
4、显示子程序的循环控制变量CALLDISPL;调用显示子程序,显示被减数DOS功能调用:AH=09H,显示字符串到屏幕,DX::要显示的内容。显示“-”号MOVAH,09HLEADX,MES1INT21HMOVSI,OFFSETDATA2减数送SIMOVBX,05CALLDISPL调用显示子程序,显示减数DOS功能调用:AH=09H,显示字符串到屏幕,DX::要显示的内容。显示“=”号MOVAH,09HLEADX,MES2INT21HMOVSI,OFFSETDATA1被减数送SIMOVDI,OFFSETDATA2减
5、数送DICALLSUBA;调用减法子程序,进行减法运算MOVSI,OFFSETDATA1运算结果送SIMOVBX,05;CALLDISPL调用显示子程序,显示运算结果DOS功能调用:AH=02H,显示一个字符到屏幕,DX::要显示的内容:CR(回车)的ASCII码0DMOVDL,0DHMOVAH,02HINT21HDOS功能调用:AH=02H,显示一个字符到屏幕,DX::要显示的内容:LF(换行)的ASCII码0A。MOVDL,0AHMOVAH,02HINT21HDOS功能调用:AH=4CH,退出程序INT21H
6、MOVAX,4C00HINT21HDISPLPROCNEAR;显示子程序(显示5个字符:BX=5)DSI:MOVAH,02AH=02H,显示一个字符到屏幕MOVDL,[SI+BX-1];显示字符串中一字符INT21HDECBX;修改偏移量JNZDSIBX不等于0,继续显示RETDISPLENDPSUBAPROCNEAR保护数据地址MOVDX,SI把被减数数据地址送到DXMOVBP,DI把减数数据地址送到BP将ASCII码表示的数字转化为十六进制表示的数字MOVBX,05SU1:SUBBYTEPTR[SI+BX-1
7、],30HSUBBYTEPTR[DI+BX-1],30HDECBX将5位数据进行转换JNZSU1;恢复数据地址MOVSI,DXMOVDI,BPMOVCX,05;置循环初始值,包括进位,共5位CLC;清进位位SU2:MOVAL,[SI]被减数送SIMOVBL,[DI]减数送DISBBAL,BL;带进位相减AAS;非组合BCD码的减法调整MOV[SI],AL;结果送被减数区INCSI指向下一位INCDI;指向下一位恢复数据地址LOOPSU2;CX=0?循环MOVSI,DXMOVDI,BPADDBYTEPTR[DI+B
8、X-1],30HDECBXJNZSU3RETSUBAENDPCODEENDSENDSTART五、实验步骤1、先进入DOS系统,按照路径进入EDIT编写上述程序1.ASM,并保存;2、用MASM编译1.ASM产生1.OBJ,在用LINK链接1.OBJ,最后用DEBUG调试1.EXE;3、运行程序,看结果是否正确。4、实验结果如下图:五、实验小结1、进入DOS系统时一定要注意