Я не понимаю, как это должно работать.
Встроенный ассемблер GCC очень сложно сделать правильно,но очень конкретно о маркировке затирающей информации, чтобы компилятор знал, что вы делаете.
Встроенный ассемблер Microsoft Visual C++ действительно прост в использовании (он всегда кажется Просто Работающим ), но я понятия не имею, какие гарантии или предположения он делает в отношении вашего кода.
Пытается ли VC++ "автоматически -определить", какие регистры затерты? Откуда он знает, как будут изменены регистры и указатель стека? Делает ли он какие-либо предположения? Если да, то как обойти эти предположения?