资源描述:
《微机原理实验指导书(勿删)【精选】》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验比较字符串实验一.实验目的1.学握分支程序的设计方法。2.熟悉在PC机上建立、汇编、链接、调试和运行8086汇编程序的过程。二.实验内容1.比较两个字符串STRING1和STR1NG2所含的字符是否相同,若相同则显示Fateh',否则显示'NoMatch'。2.修改程序,显示所比较字符的个数。三.程序清单DATAREASEGMENTSTRTNG1DB'Movethecursorbackward.'STRTNG2DB*Movethecursorbackward.'MESSIDB'Match.',13,10,'$'MESS2D
2、B'Nomatch.',13,10,'S'DATAREAENDSPROGNAMSEGMENTMAINPROCFARASSUMECS:PROGNAM,DS:DATAREA,ES:DATAREASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAREAMOVDS,AXMOVES.AXLEAST,STRING1LEADT>STRTNG2CLDMOVCX,STR1NG2-STR1NG1REPZCMPSBJZMATCHLEADX,MESS2JMPDISPMATCH:LEADX,MESSIAH,09H2111START
3、DISP:MOVINTRETMAINENDPPROGNAMENDSEND一.实验方法1・用编借程序EDIT.EXE建立源文件EDTTD101-1.ASM/在编辑状态下输入源程序,存盘后退出编辑状态。2・用汇编程序MASM.EXE对源文件进行汇编,产生H标文件MASMD101-1;/Microsoft(R)MacroAssemblerVersion5.00Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved0Warning0SevereErrorError如汇编指示出
4、错则需匝新调用编辑程序修改错误,苴至汇编通过为止。如调试需要LST文件,则应在汇编过程中建立该文件。MASMD101-1.ASM/Microsoft(R)MacroAssemblerVersion5.00Copyright(C)MicrosoftCorp1981-1985,1987・AllrightsreservedObjectFilename[D101-1.OBJ]:/SourceFilename[NUL.LST]:A01/CrossReferenceFilename[NUL.CRF]:/0WarningError0Seve
5、reError1.川连接程序LINK产生可执行文件LINKD101-1.0BJZMicrosoft(R)PersonalComputerLinkerVersion2.00Copyright(C)MicrosoftCorp1981-1985,1987.AllrightsreservedRunFile[D101-1.EXE]:/Listfile[NIL.MAP]:/Libraries[.LTB]:/Warning:NoStackSegmentThereWas1ErrorDetected1.执行程序0101-1/此时屏幕显示运行结果
6、应为:Match.重新进入编辑状态,修改字符串的内容,使它们互不相同,然后重新汇编、连接、执行。其运行结果应为:Nomatch!2.使用调试工具DEBUG进行程序调试DEBUGD101-1.EXEZ此时DEBUG已将可执行程序A01.EXE装入内存,可直接用G命令运行程序。-GZMatch.Programterminatednormally为调试程序的另一部分,可在DEBUG中修改字符串的内容。先用U命令反汇编,以便了解指令地址。显示结果如下:-U0000/19F300001EPUSHDS19E300012BC0SUBAX19
7、F3000350PUSHAX19F30004B8EE19MOVAX,19EE19F300078ED8MOVDS,AX19F300098EC0MOVES,AX19E3000B8D360000LEASI,[0000]19F3000E8D3E1900LEADI,[0019]19F30013FCCLD19F30014B91900MOVCX,001919F30017F3REPZ19E30018A6CMPSB19F3:00197406JZ0021191'3:001B8D163B00LEADX,[003B]19卜'3:0011;EB04JM
8、P0025-U/19F3:00218D163200LEADX,[0032]19F3:0025B409MOVAH,09191'3:0027CD211NT2119F3:0029CBRETF19F3:002AFF7501PUSH[DT+01]19F3:002D40TNCAX19F3