IFIDN and IFDIF Directives 

The syntax of IFIDN (if identical) and IFDIF (if different) directives is

     IFIDN < argument1 >, < argument2 >
     IFDIF < argument1 >, < argument2 >

The angle brackets are required. The condition block of statements are assembled if the arguments are identical (IFIDN) or different (IFDIF) character strings.

These two directives are case sensitive (i.e., AX and Ax are not identical). The case insensitive versions of these directives are IFIDNI and IFDIFI (i.e., with these directives, AX and Ax are treated as identical).

Example: Write a macro to compute the square of an unsigned byte operand and store the result in the operand itself assuming that it can fit in a byte. The operand can be a register or memory operand.
  SQUAREB  MACRO  operand
             IFDIFI <AL>,<operand> 
               PUSH AX
               MOV  AL, operand
             ENDIF
             MUL operand        
             IFDIFI <AL>,<operand> 
               MOV  operand, AL 
               POP  AX
             ENDIF
           ENDM
 

The above example cannot be coded to meet the requirements of the macro without using the IFDIFI directive.

 Directives Overhead