【发布时间】:2013-10-19 17:01:49
【问题描述】:
我如何实现这样的目标:
abc db "abc",0
def db "def",0
textnotequal db "strings are not equal",0
textequal db "strings are equal",0
.if abc != def
invoke MessageBox, NULL, addr textnotequal, addr textnotequal, MB_OK
.elseif abc == def
invoke MessageBox, NULL, addr textequal, addr textequal, MB_OK
.endif
我是否需要先将 abc & def 移入某些东西,或者这通常是不可能的?
【问题讨论】:
-
abc和def是指向字符串的指针,而不是字符串本身。通过比较它们,您可以比较不同的内存地址,除非它们指向同一个地方,否则它们是不同的,即使它们指向的字符串是相等的。为了比较字符串,您必须访问这些地址并在每个地址之间逐字节进行更深入的比较,以便了解字符串是否相等。您可能需要为此编写一个函数。 -
没错,我在下面使用简单的 repe cmpsb 行编写了这样一个函数的示例,以进行更深入的比较。