汇编语言IFIDN和IFIDNI伪指令:对两个参数进行比较
IFIDNI 伪指令在两个符号(包括宏参数名)之间进行不区分大小写的比较,如果它们相等,则返回真。IFIDN 伪指令执行的是区分大小写的比较。
如果想要确认宏主调者使用的寄存器参数不会与宏内使用的寄存器发生冲突,那么可以使用这两个伪指令中的前者。IFIDNI 的语法如下:
在如下修改过的宏代码中,如果这个条件不满足,就会显示一条警告消息:
如果想要确认宏主调者使用的寄存器参数不会与宏内使用的寄存器发生冲突,那么可以使用这两个伪指令中的前者。IFIDNI 的语法如下:
IFIDNI <symbol>, <symbol>
statements
ENDIF
在如下修改过的宏代码中,如果这个条件不满足,就会显示一条警告消息:
;------------------------------------- mReadBuf MACRO bufferPtr, maxChars ;将键盘输入读到缓冲区。 ;接收:缓冲区偏移量,最多可输入字符的数量。第二个参数不能用 edx 或EDX。 ;------------------------------------- IFIDNI <maxChars>,<EDX> ECHO Warning: Second argument to mReadBuf cannot be EDX ECHO ************************************************** EXITM ENDIF push ecx push edx mov edx,bufferPtr mov ecx,maxChars call Readstring pop edx pop ecx ENDM下面的语句将会导致宏产生警告消息,因为 EDX 是其第二个参数:
mReadBuf OFFSET buffer,edx