Brief notes for me which registers are used when passing function arguments on x86_64:
%rdi - 1st argument (%rdi:64, %edi:32, %di:16, %dl:8) %rsi - 2nd argument (%rsi:64, %esi:32, %si:16, %sl:8) %rdx - 3rd argument (%rdx:64, %edx:32, %dx:16, %dl:8) %rcx - 4th argument (%rcx:64, %ecx:32, %cx:16, %cl:8) %r8 - 5th argument (%r8:64, %r8d:32, %r8w:16, %r8b:8) %r9 - 6th argument (%r9:64, %r9d:32, %r9w:16, %r9b:8) %rsp - Stack pointer %rax - Return value
http://pagead2.googlesyndication.com/pagead/show_ads.js
More detailed information about x86_64 registers and other useful instructions can be found here:
http://www.cs.cmu.edu/~fp/courses/15213-s06/misc/asm64-handout.pdf
Leave a Reply