Thank you for reply - I didn't receive any notification email, so I am reading your post now...
Too bad NASM works this way...
at least, I was able to use following construction:
%macro is32bitreg 1
%ifdef res
%undef res
%endif
%ifidni %1, eax
%define res
%elifidni %1, ebx
%define res
%elifidni %1, ecx
%define res
%elifidni %1, ecx
%define res
%elifidni %1, edx
%define res
%elifidni %1, esi
%define res
%elifidni %1, edi
%define res
%elifidni %1, ebp
%define res
%elifidni %1, esp
%define res
%endif
%endmacro
%macro imovzx 2
is32bitreg %1
%ifdef res
movzx %1,%2
%else
mov %1,%2
%endif
%endmacro