这个程序哪里有问题?麻烦看下
本帖最后由 loop 于 2011-5-29 23:35 编辑我的目的是 编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能
代码如下assume cs:code ,ds:data
data segment
String1 db 'I Love you!'
String2 db 'I Love you!'
Yes db 'Match',0dh,0ah,'$'
No db 'No Match',0dh,0ah,'$'
data ends
code segment
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov es,ax
lea si,String1
lea di,String2
cld
mov cx,String2-String1
repe cmpsb
jne DispNo
lea dx,Yes
jmp Disp
DispNo :
lea dx,No
Disp :
mov ah,9
int 21h
ret
code ends
end start怎么我运行后是这样的
为什么会有这么多行????
还有mov cx,String2-String1
这个语句 String2 和String1不是相当于内存单元吗??怎么能相减后得到字符串的长??麻烦高手指教下
谢谢先 本帖最后由 china0008 于 2011-5-14 09:58 编辑
还有mov cx,String2-String1
这个语句 String2 和String1不是相当于内存单元吗??怎么能相减后得到字符串的长??
关于这个问题,string12代表的是各自 字符串第一个字符的 物理地址那用 2-1自然得到的就是 1的长度啦。把这个长度复制给cx,程序就知道该进行多少次的比较了。
页:
[1]