2016-05-11 28 views
1

Jeder Weg, um zu vermeiden, die pushad/popad Anweisung Körper in meinen Code kopieren-einfügen müssen?gcc, Inline-Montage - pushad/popad fehlt?

Da gcc (aktuelle Fahnen: -Wall -m32) beklagt, dass

__asm__("pushad;"); 

Error: no such instruction: `pushad'

__asm__("popad;"); 

Error: no such instruction: `popad'

+0

Nur zur Info, es ist fast immer Es ist besser, wenn der Compiler Register speichert/wiederherstellt, wenn er es möchte. Benutze Constraints, um zu sagen, welche Regs du umwerfen willst, oder besser: um Temp-Regs für dich auszuwählen. Sehen Sie sich die Inline-asm-Links im [x86-Tag-Wiki] an (http://stackoverflow.com/tags/x86/info). –

Antwort

2

GCC Verwendung AT/T Montage Syntax, während pushad/popad sind Intel-Konvention, versuchen Sie dies:

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