文本内容:
汇编语言实验二查找匹配字符串
一、目的查找匹配字符串SEARCH
二、实验内容程序接收用户键入的一个关键字以及一个句子如果句子中不包含关键字则显示NOmatch!;如果句子中包含关键字则显示MATCH,,且把该字在句子中的位置用十六进制数显示出来流程图mess3DB Matchat location:,$;mess4DB NOTMATCH/,13,10$mess5DB H if the sentence,13,10,1$;change DB13,10$stokninl label bytemaxi db10act1db stoknldb10dupstoknin2labelbytemax2db50act2db stokn2db50dupDATA ENDSSTACKSSEGMENT;此处觞入施楼丝代呜STACKS ENDSCODESEGMENTmain procfarassume cs:code,ds:data,es:dataSTART:push dssub AX,AX subBX,BX subDI,DI subSI,SI pushAX MOVAX,DATA MOVDS,AX LEA DX,mess1MOV ah,09INT21hLEA DX,stokninl MOV ah,0ah INT21h cmpact1,0je exita10:•★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★it人^Sentence并多J国片LEADX,change;为西切dos并清空后面患用到的域存器MOV ah,09INT21hLEA DX,mess2MOV ah,09INT21hLEA DX,stoknin2;输出Enter keywordMOV ah0ah5INT21h;用214中假的Oah号功能获驭关缠学MOV AL,act1MOV CX,AX;修存关缠专长度到ex如果为之血挂退出程序PUSH CX;cx人楼MOV AL,act2cmp AL,0jea50SUB;仔存旬孑长鹿到al,若与孑为空朝跳赭醒云not matchAL,act1js a50INC ALCBW;若与孑长度J孑关2更专长度,时跳赭%5not matchCBWLEABX,stokn2MOV DI,0MOV SI,0a20:MOV AHJBX+DI]CMP AH,stokn1[SI]jne a30INC DIINC SIDEC CXCMPCX,0je a40jmp;遇见学存彳的等就跳潴到a30a20a30:m**…*…m外循环,BX+1,丁波遇到一个和篝的字符,cx・1,cx彳为0则匕匕鬃,下一个字符,当CX为0聂锡明关健字匕匕鬃.它滑窗si,di健@由循环吐嘏INC BXDEC ALemp AL,0je a50MOV DI,0MOV SI,0POP CXpush CXjmp a20a40:;*—********m******m***mmatch,将bx减去旬孑的右处妣加一楞到关缠学所自
①正,调用二出制造十六遢制孑品敢将
①歪觞出SUB BX,offset stokn2INC BXLEADX,changeMOV ah,09INT21hLEA DX,mess3MOV ah,09INT21hCALL btohLEA DX,mess5MOVah,09INT21hjmp a10btoh PROCNEARMOV CH,4rotate:MOV CL,4ROL BX,CLMOV AL,BL andAL,Ofh addAL,30h empal,3ah jlprintit addal,7h printit:MOV dl,alMOV ah,2int21h decch jnzrotate retbtoh endpa50:★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★•*%3not matchLEADX,change MOVah,09INT21hLEADX,mess4MOVah,09INT21hjmp a10exit:ret mainendp CODEENDSEND START
四、运行结果及分析CA E:\JISOFT\«asB\bin\D¥Tep.exe Enterkeyword abbEnter Sentence45454abb Matchat location0006H ifthe sentenceEnter Sentencefdfeaaabb Matchat location0007HifthesentenceEnter Sentence^C
五、实验小结
六、附录(选)。
个人认证
优秀文档
获得点赞 0