it doesn't like OPTION CSTACK:0
Option ASMC and CSTACK now use ON/OFF. The default for CSTACK is OFF, so no needs to turn it OFF. The option ASMC may however be used for testing the HLL parsing.
Btw is there any consensus on the use of round vs square brackets here? My checks show that ML and AsmC use the same encoding for both; but for me the round brackets look a bit wrong
Yes, that’s indeed a problem as addressed here:
http://masm32.com/board/index.php?topic=902.msg57244#msg57244Other related issues on labels:
plabel proto
extern elabel:dword
.data
dlabel label dword
.code
clabel:
call ax
call eax
call dword ptr [eax]
call plabel
call elabel
call dlabel
call clabel
call xlabel
ax()
eax()
;dword ptr [eax]() ; TODO
plabel()
elabel()
dlabel()
clabel()
xlabel()
xlabel:
So use square brackets for accessing data and round brackets to execute. An error will be issued if OPTION ASMC:OFF is set and labels are accessed using round brackets, but this is not implemented yet.
Empty brackets () will be given special (or loose) handling if the token in front is not a macro.
I’m currently writing a manual, using the updated JWasm.chm file, to provide more details on all the new (and old) changes. It’s tiresome stuff but rather useful to tie some of the loose ends to a document.