Do you know if a similar unrestricted MASM/license comes with Visual C++ 2005 (Express), off-hand???


I'm not too sure about the Express version, but ML.EXE is included in VS2K5 Standard Edition. So having a copy of that, the EULA which is included states no restrictions on use (as far as what you can create with it, etc). Also, the EULA.TXT in 2K5SE states that the 2K5SE EULA superseeds the license of all microsoft applications included with the installation. This makes since because you can't very well have people buy the software, then tell them they must obey the freeware license. I kinda lucked out on that, as I didn't haven't to pay for my copy, it was given to me for participating in a microsoft promotion.
Posted on 2006-09-25 02:49:54 by Synfire
Thank you guys for your answers!
Just about the offsets: What I meant is, if I have a code like
.code
db 65536 DUP (?)
Init: ...
END

Will the Label Init be zero again? (I don't do 32-Bit Stuff).
Posted on 2006-09-25 04:39:18 by Firefall
vid: since masm doesn't output PE executables, it doesn't build the final relocations, the linker does. The MS linker puts relocations in .reloc, which is located after .data. No, not a lot of flexibility there, but you don't need it for "standard stuff", which is what Microsoft's tools were made for :). Same goes for relocation type, I've only ever seen one reloc type.

If you need more flexibility, you either use a more flexible linker (GNU ld comes to mind), or output PE directly with something like fasm (which is what I do for my loader stub for my PE packer/protector).

Firefall:
The address of your label will depend on base address and a couple of other things - but because of the data declaration (which *will* go in the .code section), it will be at least 64k.
Posted on 2006-09-25 04:58:28 by f0dder
It may seem like MASM does all that stuff, but it actually passes information to the linker inside the object file and triggers the linker to execute.

Try removing link.exe from the bin directory when you don't pass MASM the "/c" option, and see what happens ;)
Posted on 2006-09-25 13:50:42 by SpooK