Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #1

    [C, x86] Salvataggio registri

    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
    Ultima modifica di muletto99; 09-09-2016 a 10:15

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.