首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

比较两字符串是否相同,该怎么处理

2012-03-04 
比较两字符串是否相同在编程时遇到要比较两字符串大小,但两字符串中,一个是我在预先.data中定义的字符串st

比较两字符串是否相同
在编程时遇到要比较两字符串大小,但两字符串中,一个是我在预先.data中定义的字符串str1,一个是在.code 中自己的local变量str2.
请问如何比较前n个字符是否相等
我定的代码如下:

Assembly code
lea si,str1lea di,str2mov ecx,5cld             repz cmpsbjz    same


但一直出错,请问哪位大侠能指点迷津。
Ps: 发觉可能是es与ds段地址不对,但不知怎么改:(


[解决办法]
在做比较之前先改变ES的值 让ES指向Code 段
push cs
pop es
lea si,str1
lea di,str2
mov ecx,5
cld
repz cmpsb
jz same
这样试试看呢
[解决办法]
对cmpsb理解了没有啊?

.model small
.data
str1 db "mystring",0
.fardata
str2 db 100 dup(?)
.code
START:
mov ax,@data
mov ds,ax
mov ax,@fardata
mov es,ax

lea di,str2
lea si, str1

mov cx,5
cld
repz cmpsb

jz over

mov dl,'N'
mov ah,2
int 21h

over:
MOV AH,4CH
INT 21H

END START

热点排行