<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Salut<BR><BR>Ma confrunt cu o problema si nu reusesc sa o rezolv. Vreau sa specific compilatorului g++ ca stiva creste de la adrese mari la adrese mici, sa-mi puna parametrii pe stiva in ordinea in care apar in antetul functiei, iar in momentul cand imi cedeaza lucrul (cand sunt in functie) esp/rsp sa fie actualizat sa faca referire la ultima variabila din declaratie.<BR>Am vazut ca gcc e mai rau (pentru ca in std C/C++ nu se specifica nici macar sa transmita parametrii prin stiva si multe alte probleme):<BR>_Z7funcPvS_S_x:<BR>.LFB2:<BR> push %rbp<BR>.LCFI0:<BR> mov %rbp, %rsp<BR>.LCFI1:<BR> mov QWORD PTR [%rbp-8], %rdi<BR> mov QWORD PTR [%rbp-16], %rsi<BR> mov QWORD PTR [%rbp-24], %rdx<BR> mov QWORD PTR [%rbp-32], %rcx<BR> cmp QWORD PTR [%rbp-32], 0<BR> jne .L2<BR> jmp .L1<BR>.L2:<BR>#APP<BR> .intel_syntax noprefix<BR> sub rsp, 32<BR> push rbp<BR>Pe penultima linie trebuie sa fac eu explicit sub rsp, 32 pentru ca g++ nu e nici macar atat de dragut. Poate e si din cauza ca eu am invatat assembly din cartea<BR>lui Lungu, iar acolo se spunea ca parametrii se transmit prin stiva, in ordinea inversa a aparitiei lor, etc.<BR>Alin Popescu,<BR>332 CB<BR><BR><BR><br /><hr />What can you do with the new Windows Live? <a href='http://www.microsoft.com/windows/windowslive/default.aspx' target='_new'>Find out</a></body>
</html>