[pso] [tema1][win] syscall gresit

Maximilian Machedon maximilian.machedon at gmail.com
Sun Apr 1 12:02:29 EEST 2007


        Compilatorul foloseste registrii pentru a stoca temporar variabile
(chiar daca acestea sunt de fapt retinute pe stiva), pentru viteza. De 
asemenea, multe operatii de pe x86 se pot face doar trecand prin eax.
        E preferabil sa nu ai cod executabil inainte de a folosi acel eax,
si initializarea unei variabile este cod executabil.

----- Original Message ----- 
From: omar Chouydary
To: Proiectarea Sistemelor de Operare
Sent: Saturday, March 31, 2007 8:21 PM
Subject: Re: [pso] [tema1][win] syscall gresit


What??? Ce treaba au variabilele initializate cu registrul eax? Variabilele
sunt pe stiva... mult dupa parametrii si n-au treaba cu registrii actuali.

Catalin Morosan <cercetasu2003 at yahoo.com> wrote:
Nu trebuie sa ai nicio variabila initializata inainte de a face "_asm mov
syscall, eax" pentru ca s-ar putea sa iti modifice registrul eax.
De preferat e ca instructiunea "_asm mov syscall, eax" sa fie prima ta
instructiune din functie.



----- Original Message ----
From: Luis Cazacu <lewisparma at gmail.com>
To: Proiectarea Sistemelor de Operare <pso at cursuri.cs.pub.ro>
Sent: Saturday, March 31, 2007 1:29:44 AM
Subject: [pso] [tema1][win] syscall gresit

Cand incerc sa aflu id-ul apelului de sistem in functia interceptor

cu urm secventa de cod:
   "_asm mov syscall, eax
     DbgPrint("syscall=%d",syscall);"

imi afiseaza syscall=1 indiferent de apelul pe care incerc sa il
interceptez.

Any ideas?



More information about the pso mailing list