7.3. Оператор IN

Бывают случаи, когда в условии присутствует слишком много EQ:

macro mov a,b

{

 if (a eq cs) | (a eq ds) | (a eq es) | (a eq fs) |

    (a eq gs) | (a eq ss)

  push b

  pop a

 else

  mov a, b

 end if

}

Вместо применения множества логических операторов ИЛИ — |, можно использовать специальный оператор IN. Он проверяет, присутствует ли идентификатор слева, в списке идентификаторов справа. Список должен быть заключён в скобочки < и >, а идентификаторы в нём разделяются запятыми,

macro mov a,b

{

 if a in <cs,ds,es,fs,gs,ss>

  push b

  pop a

 else

  mov a, b

 end if

}

Это так же работает для нескольких идентификаторов (как и EQ):

if dword [eax] in <[eax], dword [eax], ptr eax, dword ptr eax>