News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Passing a structure

Started by Biterider, March 22, 2019, 05:36:44 AM

Previous topic - Next topic

aw27

In x86/x64, there are 2 major syntax branches for Assemblers, the GAS and the Intel syntax.  However, most assemblers contain high-level features.
LoadLibrary("msvcrt") is a high-level feature.
If we integrate too many high-level features into the Assembler it may become a compiler, though. That is nice but there are so many compilers out there, why another one?

hutch--

As I understand, nidud has a different design criterion which is demonstrated in his project's name, ASMC and from the bits and pieces of it I have seen it intends to use a hybrid of C and assembler. This is different of course from what I understand of UASM or in fact MASM which intend to remain assemblers only. If an assembler is a MACRO assembler, then it will have multiple ways of constructing macros in its pre-processor to automate a whole range of things but as they must be constructed (written) by assembler programmers, they are in fact assembler code.

jj2007

Quote from: hutch-- on April 08, 2019, 04:03:25 PM... they are in fact assembler code.

Thanks for the clarification :icon_mrgreen:

johnsa

LoadLibrary("xyz") is indeed not "pure" assembler syntax in the traditional sense. ASMC and UASM support this C-Style of calling.

One could argue, what is pure assembler syntax? INVOKE certainly isn't.. it hides implementation details, can obscure register usage etc.. but I for one wouldn't like to go back to an x86 assembler without it.

So for me, adding a small sprinkling of a high level features where it makes coding in asm easier/more enjoyable or more maintainable for larger projects is probably a good thing.