| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1291 人关注过本帖
标题:字符串比较,显示结果
只看楼主 加入收藏
a123750374
Rank: 1
来 自:福州
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-15
收藏
 问题点数:0 回复次数:6 
字符串比较,显示结果
本人初学汇编,许多东东还不是很懂,希望大家帮忙下下
比较两个字符串string1,string2.相同显示出‘match’,不同显示‘no match’
data segment
string1 db 'ling'
string2 db 'lingg'
EQUL      db 'match$'
  NOEQUL   db  'no match$'
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
      mov ds,ax
      mov bx,offset string1
      mov dx,offset string2
      REPZ CMPSB
      JZ jump1
      JNZ jump2
jump1:mov dx,offset EQUL
      mov ah,09h
      int 21h
      jmp exit
jump2:mov dx,offset  NOEQUL
      mov ah,09h
      int 21h
exit: mov ah,4ch
      int 21h
code ends
     end start
搜索更多相关主题的帖子: 字符 结果 
2008-12-01 20:27
a123750374
Rank: 1
来 自:福州
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-15
收藏
得分:0 
无论如何更改string的值,输出的结果都为match,麻烦帮忙指出哪里错误
2008-12-01 20:50
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
修改这几个地方,然后试一下吧:
data segment
string1 db 'ling'
string2 db 'lingg'
EQUL      db 'match$'
  NOEQUL   db  'no match$'
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
      mov ds,ax
      mov es,ax
      mov si,offset string1
      mov di,offset string2
      REPZ CMPSB
      JZ jump1
      JNZ jump2
jump1:mov dx,offset EQUL
      mov ah,09h
      int 21h
      jmp exit
jump2:mov dx,offset  NOEQUL
      mov ah,09h
      int 21h
exit: mov ah,4ch
      int 21h
code ends
     end start
2008-12-02 09:43
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
想一想,这个程序我修改的也不正确.
因为,REPZ CMPSB 总是在相等时重复,直到不相等为止.直到不相等才终止循环,那么最终还是要去执行 JNZ jump2指令~~
看来,这样简单地比较两个字符串是否完全相等是不行的~~
2008-12-02 10:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
77C17730 >  8B5424 04       MOV EDX,DWORD PTR SS:[ESP+4]
77C17734    8B4C24 08       MOV ECX,DWORD PTR SS:[ESP+8]
77C17738    F7C2 03000000   TEST EDX,3
77C1773E    75 3C           JNZ SHORT msvcrt.77C1777C
77C17740    8B02            MOV EAX,DWORD PTR DS:[EDX]
77C17742    3A01            CMP AL,BYTE PTR DS:[ECX]
77C17744    75 2E           JNZ SHORT msvcrt.77C17774
77C17746    0AC0            OR AL,AL
77C17748    74 26           JE SHORT msvcrt.77C17770
77C1774A    3A61 01         CMP AH,BYTE PTR DS:[ECX+1]
77C1774D    75 25           JNZ SHORT msvcrt.77C17774
77C1774F    0AE4            OR AH,AH
77C17751    74 1D           JE SHORT msvcrt.77C17770
77C17753    C1E8 10         SHR EAX,10
77C17756    3A41 02         CMP AL,BYTE PTR DS:[ECX+2]
77C17759    75 19           JNZ SHORT msvcrt.77C17774
77C1775B    0AC0            OR AL,AL
77C1775D    74 11           JE SHORT msvcrt.77C17770
77C1775F    3A61 03         CMP AH,BYTE PTR DS:[ECX+3]
77C17762    75 10           JNZ SHORT msvcrt.77C17774
77C17764    83C1 04         ADD ECX,4
77C17767    83C2 04         ADD EDX,4
77C1776A    0AE4            OR AH,AH
77C1776C  ^ 75 D2           JNZ SHORT msvcrt.77C17740
77C1776E    8BFF            MOV EDI,EDI
77C17770    33C0            XOR EAX,EAX
77C17772    C3              RETN
77C17773    90              NOP
77C17774    1BC0            SBB EAX,EAX
77C17776    D1E0            SHL EAX,1
77C17778    40              INC EAX
77C17779    C3              RETN
77C1777A    8BFF            MOV EDI,EDI
77C1777C    F7C2 01000000   TEST EDX,1
77C17782    74 14           JE SHORT msvcrt.77C17798
77C17784    8A02            MOV AL,BYTE PTR DS:[EDX]
77C17786    42              INC EDX
77C17787    3A01            CMP AL,BYTE PTR DS:[ECX]
77C17789  ^ 75 E9           JNZ SHORT msvcrt.77C17774
77C1778B    41              INC ECX
77C1778C    0AC0            OR AL,AL
77C1778E  ^ 74 E0           JE SHORT msvcrt.77C17770
77C17790    F7C2 02000000   TEST EDX,2
77C17796  ^ 74 A8           JE SHORT msvcrt.77C17740
77C17798    66:8B02         MOV AX,WORD PTR DS:[EDX]
77C1779B    83C2 02         ADD EDX,2
77C1779E    3A01            CMP AL,BYTE PTR DS:[ECX]
77C177A0  ^ 75 D2           JNZ SHORT msvcrt.77C17774
77C177A2    0AC0            OR AL,AL
77C177A4  ^ 74 CA           JE SHORT msvcrt.77C17770
77C177A6    3A61 01         CMP AH,BYTE PTR DS:[ECX+1]
77C177A9  ^ 75 C9           JNZ SHORT msvcrt.77C17774
77C177AB    0AE4            OR AH,AH
77C177AD  ^ 74 C1           JE SHORT msvcrt.77C17770
77C177AF    83C1 02         ADD ECX,2
77C177B2  ^ EB 8C           JMP SHORT msvcrt.77C17740
2008-12-02 17:46
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用zklhp在2008-12-2 17:46的发言:

77C17730 >  8B5424 04       MOV EDX,DWORD PTR SS:[ESP+4]
77C17734    8B4C24 08       MOV ECX,DWORD PTR SS:[ESP+8]
77C17738    F7C2 03000000   TEST EDX,3
77C1773E    75 3C           JNZ SHORT msvcrt ...


C的运行时库里的~~~
2008-12-02 17:48
a123750374
Rank: 1
来 自:福州
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-15
收藏
得分:0 
虽然是看不是很懂,但是还是谢谢写这些程序
2008-12-03 22:51
快速回复:字符串比较,显示结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018771 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved