Author Topic: Passing a structure  (Read 5113 times)

AW

  • Member
  • *****
  • Posts: 2583
  • Let's Make ASM Great Again!
Re: Passing a structure
« Reply #45 on: April 08, 2019, 11:58:09 AM »
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--

  • Administrator
  • Member
  • ******
  • Posts: 7541
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: Passing a structure
« Reply #46 on: April 08, 2019, 04:03:25 PM »
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.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :skrewy:

jj2007

  • Member
  • *****
  • Posts: 10544
  • Assembler is fun ;-)
    • MasmBasic
Re: Passing a structure
« Reply #47 on: April 08, 2019, 06:04:29 PM »
... they are in fact assembler code.

Thanks for the clarification :icon_mrgreen:

johnsa

  • Member
  • ****
  • Posts: 807
    • Uasm
Re: Passing a structure
« Reply #48 on: April 16, 2019, 03:15:23 AM »
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.