Hi, I'm a tasm-coder that has finally decided to switch to masm. Unfortunately, I can't find a clear and complete explanation of the masm syntax. I've already deduced that Tasm's "EXTRN procname: proc" can be replaced by "procname STDCALL PROTO", but it's a real drag to learn such things by try-an-error. Is there some helpfile/website/whatever that explains the directives, addressing modes, and command-line parameters of masm?


Posted on 2002-04-29 15:24:55 by james
try this site :
and thank mrasface for it ....
Posted on 2002-04-29 15:36:29 by code1101
thanks code1101. It's a bit more than I was searching for but it will no doubt be very useful in the future :)
Posted on 2002-04-29 16:04:19 by james

The differences are not all that big, MASM mainly uses libraries and prototypes for API function definitions so you use the INCLUDE for include files which are lists of prototypes and INCLUDELIB for the libraries you need. With the inc and lib files you use them symetrically,

INCLUDE drv:\path\mylib.inc
INCLUDELIB drv:\path\mylib.lib

There is a difference between TASM's CALL syntax and MASM's invoke syntax. MASM uses an operator ADDR (address) which handles offsets from the .DATA section and the address of local variables created on the stack in a procedure.

If you use the INVOKE syntax in MASM, it is more reliable to use ADDR than OFFSET. The rest you will already know as mnemonics are the same.


Posted on 2002-04-29 17:55:03 by hutch--