2016-05-11 2 views
1

N'importe quel moyen pour éviter d'avoir à copier-coller le corps d'instruction pushad/popad dans mon code?gcc, assemblage en ligne - pushad/popad manquant?

car gcc (drapeaux actuels: -Wall -m32) se plaint que

__asm__("pushad;"); 

Error: no such instruction: `pushad'

__asm__("popad;"); 

Error: no such instruction: `popad'

+0

Juste pour info, c'est presque toujours Ays mieux de laisser les registres de sauvegarde/restauration du compilateur si elle le veut. Utilisez des contraintes pour lui dire quels regs vous voulez clober, ou mieux: pour le laisser choisir les regs temporaires pour vous. Voir les liens en ligne asm dans [le wiki du tag x86] (http://stackoverflow.com/tags/x86/info) –

Répondre

2

utilisation GCC AT/T syntaxe d'assemblage, tout en pushad/popad sont convention Intel, essayez ceci:

__asm__("pushal;"); 
__asm__("popal;");