资源描述:
《实验三 过程与算术字符串操作.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验三过程与算术字符串操作实验说明:本次实验要求,掌握输入输出的中断调用;熟悉掌握汇编程序的过程编程方法,这涉及到过程的基本编写规范,调用和返回的操作,参数的传递方法;进一步理解算术操作,包括乘除法、BCD码运算,以及常用的字符串操作方法。第一部分:输入输出中断调用一、实验目的:掌握利用INT2101、02、09和0AH号功能调用。二、实验内容1、字符输入步骤:(1)A命令在100H处键入下列程序:MOVAH,1INT21INT20(2)用P跟踪此程序,当跟踪INT21指令时,系统提示输入字符。输入的字符存于AL中。
2、2、字符显示步骤:(1)A命令在100H处键入下列程序:MOVAH,2MOVDL,41INT21INT20(2)直接用G运行此程序,即在屏幕上显示字符。若不出现,用DEBUG检查程序有无错误。注意,跟踪INT21指令时,用P命令。3、字符串的显示步骤:(1)A命令在100H处键入下列程序:MOVAH,9MOVDX,110INT21INT20(2)用A命令在110H处键入下列字符串的ASCII码:DB'Thisisasample!$'(3)直接用G运行此程序,即在屏幕上显示'Thisisasample!'字符串。若不出
3、现,用DEBUG检查程序有无错误。注意,跟踪INT21指令时,用P命令。4、字符串输入步骤:(1)A命令在100H处键入下列程序:MOVAH,0AMOVDX,110INT21INT20(2)用P单步跟踪运行此程序,当跟踪到INT21指令时,输入字符串,结束按回车。(3)查看内存用D110开始的区域内容,是否为输入的字符串对应的ASCII码。第二部分:过程一、实验目的:掌握子程序定义调用方法,过程定义伪指令:PROC,ENDP,NEAR和FAR以及调用返回CALL,RET,RETn。掌握利用堆栈传递参数的子程序调用方法
4、。理解利用RET指令退出EXE文件的方法。二、实验内容:1.过程的定义调用(NEAR过程)程序:TITLECallingproceduresstacksegmentstackdb64dup(0)stackendsdatassegmentdatasends;-------------------------------------------codessegmentparaassumecs:codes,ds:datas,ss:stackMAINPROCFARCALLB10;...MOVAX,4C00H;Endproce
5、ssingINT21HMAINENDPB10PROCNEARCALLC10;...RET;ReturntoB10ENDPC10PROCNEAR;...RET;ReturntoC10ENDP;-----------------------------------------codesendsENDMAIN步骤:(1)利用TextPad编辑上述程序,汇编并将此程序连接成EXE文件。(2)进入DOS环境,调试编译生成的可执行文件,debug文件名.exe装入内存,用断点跟踪命令G和T命令运行此程序,观察并记录每次过程调用返
6、回及进出栈指令的SP,利用查看内存命令DSS:偏移量查看堆栈内容。2.利用堆栈传递参数的子程序调用(FAR过程)程序:(求累加和)stacksegmentstackdb256dup(0)stackendsdatasegmentary1db1,2,3,4,5,6,7,8,9,10count1equ$-ary1sum1dw?ary2db10,11,12,13,14,15,16,17,18count2equ$-ary2sum2dw?dataendscodessegmentassumecs:codes,ds:data,ss:
7、stackstartprocfarpushdsxorax,axpushaxmovax,datamovds,axmovax,count1pushaxleaax,ary1pushaxcallfarptrsummovax,count2pushaxleaax,ary2pushaxcallfarptrsumretstartendpcodesendsprocesegmentassumecs:procesumprocfarmovbp,spmovcx,[bp+6]movbx,[bp+4]xorax,axadn:addal,[bx]a
8、dcah,0incbxloopadnmov[bx],axret4sumendpproceendsendstart步骤:(1)理解该程序的功能,输入编辑,汇编并将此程序连接成EXE文件。(2)调试编译生成的可执行文件,debug文件名.exe装入内存,用断点跟踪命令G和T命令运行此程序,观察并记录每次过程调用及进出栈指令的SP,利用查看内存命令D