这里给出使用x86汇编语言的判断字符串相等的程序使用示意。
函数已经在Irvine32.inc链接库中得以实现,其原型和定义如下。
INCLUDE Irvine32.inc
Str_compare PROTO,
string1:PTR BYTE,
string2:PTR BYTE
.data
string_1 BYTE "ABCDEFG",0
string_2 BYTE "ABCDEFG",0
string_3 BYTE 0
string_4 BYTE 0
.code
main PROC
call Clrscr
INVOKE Str_compare, ;
ADDR string_4, ;
ADDR string_3 ;
Call DumpRegs ;
call WaitMsg ;
exit
main ENDP
END main
下面给出了这个函数的一个简单应用,可以依据ZF标志位寄存器来判断两个字符串是否相等,这个做法类似于使用CMP指令。
INCLUDE Irvine32.inc
Str_compare PROTO,
string1:PTR BYTE,
string2:PTR BYTE
.data
string_1 BYTE "ABCDEFG",0
string_2 BYTE "ABCDEFG",0
string_3 BYTE 0
string_4 BYTE 0
.code
main PROC
call Clrscr
INVOKE Str_compare, ;
ADDR string_4, ;
ADDR string_3 ;
Call DumpRegs ;
call WaitMsg ;
exit
main ENDP
END main