Yo personalmente prefiero a MASM por que su sintaxis de macro lo hace mas comprensible especialmente: invoke, .if, .while, .else, .elseif.-
Pero igual los dos son muy potentes y se puede llegar lejos con cualquiera de los dos, el acceso a las apis de windows es muy simple; siempre y cuando tengas tiempo para escribir mas lineas de codigo que en otros lenguajes
Describo un ejenplo de por que prefiero MASM a TASM llamando a una api de win:
-----------------------------------------------------------------------------------------------
MASM:
invoke MessageBox, NULL, addr MsgBoxTexto, addr MsgBoxTitulo, MB_OK
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
TASM:
PUSH MB_OK
PUSH offset MsgBoxTitulo
PUSH offset MsgBoxText
PUSH NULL
CALL MessageBox
-----------------------------------------------------------------------------------------------
estas seria unas de las diferencias entra los dos