资源描述:
《汇编实验报告—山东大学》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一熟悉汇编环境及调试命令内容和要求:(1)选取教科书中典型例题(完整程序),用编辑软件在PC机中形成汇编源程序*.ASM文件,然后编译、连接,生成目标文件和可执行文件。(2)用DEBUG程序进行调试,熟悉动态调试环境和常用命令。目的:掌握用编辑软件编辑程序文本的方法;在DOS环境下,熟练掌握用MASM5.0宏汇编程序对ASM文件进行编译、连接等操作步骤;熟悉并掌握用DEBUG调试程序。实验程序DATASSEGMENTonedb20dup(32),1,'WELCOMEYOU!',7,13,10countequ$
2、-oneDATASENDSSTACKSSEGMENTstack'stack'stapdb256dup(?)topequthiswordSTACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXmovax,segstacks;此处输入代码段代码movss,axmovsp,offsettopmovsi,offsetonemovcx,countnext:movdl,[si]movah,2int21hincsiloopn
3、extMOVAH,4CHINT21HCODESENDSENDSTART结果Debug调试:输入a,进行逐行汇编,输入c,比较两内存块,输入d,内存信息以16进制显示;输入e,修改内存指定的字节;输入f,可以预置一段内存;输入g,执行程序;输入h,制算术运算;输入i,从指定端口地址输入;输入l,读盘;输入m,内存块传送;输入n,置文件名;输入o,从指定端口地址输出;输入q,结束DEBUG调试;输入r,显示和修改寄存器;输入s,查找字节串;输入t,跟踪执行;输入u,反汇编;输入w,存盘操作。实验总结:1.通过实验,了
4、解了程序书写,熟悉了MASM环境,编译和运行的方法,对汇编有了初步认识。2.掌握了Debug调试方法,对程序修改有很大帮助,通过练习,熟悉了各调试指令。实验二多位十进制数相加求和显示内容和要求:将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)。要求:将相加结果仍以常用十进制数形式显示在屏幕上。目的:学习数据传送、加法运算及十进制数(BCD码)运算调整指令的用法;熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过程,练习分
5、析程序,会查错。实验程序:DATA1SEGMENTbufdb10db0db10dup(0)sumdw?buffdb10db0db10dup(0)sum1dw?tw1db'pleaseinputthefirstnum:','$'tw2db'pleaseinputthesecondnum:','$'tw3db'sum:','$';此处输入数据段代码DATA1ENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATA1,ss:stack
6、sSTART:MOVAX,DATA1MOVDS,AXmovax,stacksmovss,axpushf;显示输入amovah,9movdx,offsettw1int21h;输入buf;movdx,segbuf;movds,dxmovdx,offsetbufmovah,0ahint21h;换行movah,2movdl,10int21h;换行movah,2movdl,10int21h;提示输入bmovah,9movdx,offsettw2int21h;输入buf;movdx,segbuf;movds,dxmovdx,
7、offsetbuffmovah,0ahint21h;换行movah,2movdl,10int21hmovah,2movdl,10int21h;显示加法标志movah,9movdx,offsettw3int21h;;以下为加法过程MOVDI,OFFSETbuff+2MOVSI,OFFSETbuf+2xordx,dxxorax,axmovdl,ds:[di-1]moval,ds:[si-1]adddi,dxaddsi,axmovcx,0movds:[di],cxmovds:[si],cxpushaxpushdxMOV
8、DI,OFFSETbuff+2MOVSI,OFFSETbuf+2popdxcmpdl,1jetep2movcx,dxdeccxtep1:movdx,cxtest1:moval,ds:[di]xchgal,ds:[di+1]movds:[di],alincdilooptest1movcx,dxmovdi,offsetbuff+2looptep1tep2:popaxcmpax