Le code asm generé pour appeler une fonction est :General notes:
- Only the registers 'eax', 'edx' and 'ecx' can be destroyed, all other must be preserved.
- A PureFunction name declaration begin always by 'PB_' (ex: PB_Right, PB_Left...)
- The first parameter is passed via the 'eax' register all other are on the stack.
- If Float is used on the first paramater, it's not passed on 'eax' but on 'ST0'
(first FPU register).
- Float or Double result must be put on ST0.
- Quad result has to be put in 'eax' (low word) and 'edx' (high word)
Code : Tout sélectionner
; Plot(i,j,iter)
PUSH qword [v_iter]
MOVZX rax,word [v_j]
MOV rax,rax
PUSH rax
MOVZX rax,word [v_i]
MOV rax,rax
PUSH rax
POP rcx
POP rdx
POP r8
CALL PB_Plot2
Alors au final, c'est quoi la convention d'appel de fonction PB_ ?
Et quel sont les registres preservés au final ? (en particulier les xmm ? )
merci.