Author Topic: where is .data? segment?  (Read 1694 times)

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 5427
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: where is .data? segment?
« Reply #15 on: November 09, 2017, 10:01:20 AM »
Mark,

You may share my humour here in that ML64 is to put it kindly, rather rudimentary as well as badly documented and grossly intolerant to minor variations in notation. Where 32 bit ML had all sorts of redundancies to make it (ab)user friendly, ML64 has not and this is primarily because it is an industrial software tool rather than consumer software. You either use it the right way or it explodes in your face.

Under the old notation you would use something like ".MODEL FLAT, FASTCALL" but as there is no other option in Win64, that notation is redundant and it is not supported. As far as directives like PUBLIC, always put directives OUTSIDE of other sections as the parsing code in ML64 does nothing more than what it has to when you build an object module.

The setting that IS important is in the linker settings, if you specify /LARGEADDRESSAWARE and do not use some of the older 32 bit style constructions that tell you to turn it off, you get the 64 bit address range rather than a badly warmed over 32 bit address range and this is important.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :biggrin:

AW

  • Member
  • *****
  • Posts: 1300
  • Let's Make ASM Great Again!
Re: where is .data? segment?
« Reply #16 on: November 09, 2017, 02:02:49 PM »
what I'm missing?
You are not missing anything, it is Microsoft that is losing parts and pieces like an old jalopy  :lol: without anyone inside the organization noticing.
What I posted builds perfectly with JWASM and UASM.
jwasm -c -Zp8 -win64 foo.asm