资源描述:
《汇编实验五条件转移指令》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、氓廉春理工术学5ChangchunUniversityofScienceandTechnology实脸報•学年第—学期实验课程汇编语言学生姓名123实验项目条件转移指令学院计算机科学技术实验性质专业选修课班级学号实验地点同组人数1第组实验日期第周星期第节成绩5环境参数Dosbox-0.74Masm5.0一、实验冃的及耍求二、实验原理、实验内容三、实验仪器设备及材料四、操作方法与实验步骤五、实验数据记录及处理六、实验结果分析及讨论一、实验目的:1・8088指令:JZ,JNZ,JC,JNC,CMP,SHR。2.程序:用字符搜索法确定字符串长度。3.
2、程序:16进制数化为ASCII码的一般方法。—:实验任务1.自编程序:修改实验准备程序(二),使除了以16进制数形式显示内存内容外,还能在其右边显示该16进制码所对应的ASCII字符,07-0D的控制字符用代替。源代码:DATASEGMENTDATAENDSSTACKSSEGMENTSTACKSTACKSENDSCODESEGMENT'code,ASSUMECS:CODE,DS:DATA,SS:STACKSSTART:MOVAX,DATAMOVDS,AXMOVSI,OHMOVBL,1OHLOP:MOVDL,[SI];先处理高四位MOVCL,4H
3、SHRDL,CL;右移四位CMPDL,OAH;判断是'(V-V’还是S'」f'JCJI;是0-9跳转ADDDL,7H;是8-f要多加7因为9为390h'A'为41h相差7hJI:ADDDL,3OH:以’0,为基址MOVAll,211;输出高四位的ASCII码INT21HMOVDL,民叮;处理第四位ANDDL,OFHCMPDL,OAH;同上JCJ2ADDDL,7HJ2:ADDDL,30HMOVAH,2HINT2111;数值输出完毕MOVDL,20H;输出一个空格MOVAH,2HINT21HMOVDL,[SI:;将数值直接作为ASCII输岀MOVD
4、H,06H;判断是否在07-Od之内CMPDH,[SI]JNCJ3MOVDH,OeHCMP[SI],DHJNCJ3MOVDL,2EH;在范围内,换成'J3:MOVAH,2H;输岀INT21HMOVDL,20H;第一个字节处理完毕,输出一个空格MOVAll,211INT21HINCSI;内存中下一个字节DECBL;控制循环次数JNZLOP;回调结束代码MOVax,4C00HINT21HCODEENDSENDSTART编译连接:E:>masm5_1.ASMMicrosoft(R)MacroAssemblerUersion5.00Copyright
5、(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.Objectfilename[5_1.OBJ]:Sourcelisting[NUL.LST]:Cross-reference[NUL.CRF]:51692晋464852Bytessymbolspacefree0WarningErrors0SevereErrorsE:>link5l.OBJMicrosoft(R)OverlayLinkerUersion3.60Copyright(C)MicrosoftCorp1983-1987.Al1rightsr
6、eserved.RunFile[5_1.EXE]:ListFile[NUL.MAPI:Libraries[.LIB]:MS-DOS下运行结果:10►8Ae14B1摻04♦DZEAQE:>5_1.EXE38=]AZ60108EAD8fBEJ0000B3结论:1、可以看到输出了十六进制的字符并在其右边输出了对应的ASCII字符。2、因为是在dos下执行了,数据段地址与debug下不同,所以输出的数据不同,但通过查ASCII表,确定其对应字符正确。2.BUFX、BUFY和BUFZ9是3个有符号的十六进制数,编写一个比较相等关系的程序:1)如果这3个
7、数都不相等,则显示02)如果这3个数中有两个数相等,则显示13)如果这3个数都相等,则显示2源代码:DATASEGMENTDATAENDSSTACKSSEGMENTSTACKSTACKSENDSCODESEGMENT'code,ASSUMECS:CODE,DS:DATA,SS:STACKSSTART:MOVAX,DATAMOVDS,AX;将三个数分别存到bh,bl,dh中movah,Olhint21hmovbh,almovdl,20hmovah,02hint21hmovah,Olhint21hmovbl,almovdl,20hmovah,02h
8、int21hmovah,Olhint21hmovdh,almovdl,Oahmovah,02hint21h;将"设为字符movdl,30hcmpbh,