Salve a tutti, mi è venuto un dubbio riguardo il salvataggio dei registri quando chiamo una funzione x86 da un programma C:
Sintassi AT&T (GAS)
codice:.section .text .globl foo foo: pushl %ebp movl %esp, %ebp # e fino a qui ci siamo, ma ora sorge il dubbio: pushl %ebx pushl %edi pushl %esi #..... end: popl %esi pool %edi popl %ebx movl %ebp, %esp popl %ebp ret
Le push di %ebx %edi ed %esi vanno fatte per salvare qualcosa?Per evitare Problemi con ai registri?E gli altri registri? Non vanno fatte?
Nel caso in cui la funzione chiamante fosse stata un'altra funzione assembly avrei fatto le push e le pop nella chiamante.
Spero in un vostro aiuto :3
Ciaoooo