So no Inline Assembler in 64bit Delphi? Get over it!

Honestly. I’m seeing people go on and on about that issue, while I can’t help noticing other much bigger issues with Delphi all the time. No PDB support strikes me as a pretty big issue for one, or getting a 64bit compiler at all

Can anyone give me a good reason why it is a problem that you can’t write the assembly code inline and instead have to use an external file? Microsoft did that as well when they switched to x64 compilers. What’s the issue?

There are only some corner case when assembly is of value nowadays and just about every single line of current inline assembly would have to be changed anyways when porting to x64. I for one welcome that it raises the bar for people who shouldn’t be using assembly in the first place. 😆

// Oliver

This entry was posted in Delphi, EN, Programming, Software. Bookmark the permalink.

6 Responses to So no Inline Assembler in 64bit Delphi? Get over it!

  1. Remko says:

    You won’t be able to use variables like you can do now in Delphi, eg mov eax, myvar;
    Also I don’t see the real reason as it doesn’t seem very difficult to implement.

    I do agree that actually having an x64 version is important but it being so late is no excuse to drop functionality and the fact that Visual Studio can’t do it should be a very good reason to implement it.

  2. Oliver says:

    Of course can you use variable names in NASM (which is purportedly going to be used). Besides, each single assembler function, pure or not, would require an x86 and x64 implementation – which makes it less readable and frankly, quite pointless to inline the assembly.

    Besides: plenty of people seem to be using assembly without having the faintest clue. Another reason to welcome the change. It’ll raise the bar for them.

  3. JPascoa says:

    I made an article about Delphi and BASM, both 64-bit and 32-bit, which I posted at http://www.atelierweb.com/articles/64bitbasm.htm . It includes a demo program.

  4. Oliver says:

    @Jose: So they did it. I for one don’t welcome this change. I’d rather they’d scrapped it in favor for an external assembler or left it out altogether. Most Delphi programmers these days are anyway at most going to copy snippets of assembly. Only very few could and would make use of it in any sensible way.

    @Remko: btw: one can always use variables and mix them, this is what the linker step is for, even if Delphi goes to great lengths to hide the different stages from you. Especially if you’ve ever linked in external OBJs it will have bled through, though.

  5. JPascoa says:

    @Oliver: Embarcadero did not came up with any extension of the OMF specification to 64-bits (Thanks God!). So, we can use ML64 or any other Assembler, it will compile to COFF64 and will link. 😉
    Note: TASM was a great Assembler, I miss it. 😥

  6. Oliver says:

    That is great news indeed. Still I dare say that most people have no knowledge in assembler beyond copying and pasting snippets from somewhere. So it would be best if they left it untouched and optimized the compiler a lot more.

Leave a Reply

Your email address will not be published. Required fields are marked *