|
ste182 |
.arcimaestro.
Registered: Oct 2004
Posts: 258 (0.04 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 5:06:07: [...]
Status: Offline
Edit | Report | IP: Logged |
stack pointer
ragazzi non capisco una cosa:
in x86 assembler le istruzioni sono del tipo: destinazione, sorgente.
quindi se faccio: mov eax,10 metto il valore 10 in eax.
il problema è:
code: unsigned long sp(void) {
__asm__("movl %esp, %eax"); }
void main(void) {
printf("0x%x\n", sp());
}
questo serve per ottenere lo stack pointer(ESP), ma come mai l'istruzione è "movl %esp, %eax" ??? se la sintassi è destinazione, sorgente non dovrebbe essere "movl %eax, %esp" così da mettere il valore di esp in eax??(eax non è mica il registro dove vengono depositati anche i valori da ritornare??)
__________________
Live Fast, Die Fun
|