2016-05-11 2 views
1

В любом случае, чтобы избежать необходимости копировать в корпус код pushad/popad?gcc, встроенная сборка - pushad/popad отсутствует?

Потому что НКУ (текущие флаги: -Wall -m32) жалуется, что

__asm__("pushad;"); 

Error: no such instruction: `pushad'

__asm__("popad;"); 

Error: no such instruction: `popad'

+0

Просто FYI, это почти все ays лучше позволить компилятору сохранять/восстанавливать регистры, если захочет. Используйте ограничения, чтобы сказать, какие регионы вы хотите сжать или лучше: позволить вам выбирать временные рег для вас. См. Ссылки inline asm в [вики-странице x86] (http://stackoverflow.com/tags/x86/info) –

ответ

2

использование GCC AT/синтаксис T сборки, в то время как pushad/popad являются Intel условность, попробуйте следующее:

__asm__("pushal;"); 
__asm__("popal;"); 
Смежные вопросы