<div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">Anthony Walter <<a href="mailto:sysrpl@gmail.com">sysrpl@gmail.com</a>> schrieb am Fr., 8. März 2019, 22:34:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>What registers are used by default calling convention and where can I find more information about Free Pascal asm details?</div><div><br></div>When writing code using the asm block on Delphi in Windows, the default calling convention (fastcall) would pass arguments in registers EAX, EDX, ECX then the stack in that order.<div><br></div><div>Checking registers in Lazarus on 64 bit Linux, I see the default calling convention is using RSI and RDI, the source and destination index registers.</div><div><br></div><div>Also is it possible to get the Lazarus assembler to show instructions in Intel mode rather than AT&T?</div></div></blockquote></div><div dir="auto"><br></div><div dir="auto">For the "register" calling convention on i386 (aka the default calling convention there) you can also look at packages/rtl-objpas/src/i386/invoke.inc which contains the function call manager for i386 (and the x86_64 contains the one for that platform though currently only the Win64 one is supported). </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div class="gmail_quote" dir="auto"></div></div>