flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3 |
Author |
|
Inagawa 23 May 2012, 11:13
Hi there folks,
I've been working on the Iczelion's tutorials in my spare time (up to tut10, now) and I've been wondering if I should maybe divert my attention to learning 64 bit. I have searched this forum (painfully) and found this topic - where MazeGen kindly posted some links. This happened way back in 2006 though, so I'd just like to know if you guys think it's clever to start with 64bit with my skillset, and if you think I should, if the links there are still viable for learning 64bit, or if you've got some better ones. Thanks a lot Edit: I've been reading the links from the topic and I've come across this. Example of argument passing 3 – mixed ints and floats func3(int a, double b, int c, float d); // a in RCX, b in XMM1, c in R8, d in XMM3 This got me confused, shouldn't it be // a in RCX, b in XMM0,c in RDX, d in XMM1? Or is it just decided by position? Meaning that ONLY the first four arguments are passed in registers and the rest by stack even if the function takes 4 ints and 4 floats and there would be enough registers to hold them without a problem? ![]() |
|||
![]() |
|
Xorpd! 23 May 2012, 20:35
Yes, just by position. All further arguments are passed on the stack.
You might as well go x64; it's easier than 32-bit because there is only one calling convention. Intel's manuals are good, but I can't find a link to anything current on their complicated web site. Agner Fog's manuals have calling conventions and instruction latencies and throughputs. Jeremy Gordon's documentation is very useful IMO. |
|||
![]() |
|
Inagawa 23 May 2012, 20:50
Thanks a lot for the encouragement! I'll check these things out
|
|||
![]() |
|
Goto page Previous 1, 2, 3 < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.