Почему встроенный ассемблер GCC требует затирания информации, а MSVC не требует #39;t

Я не понимаю, как это должно работать.

Встроенный ассемблер GCC очень сложно сделать правильно,но очень конкретно о маркировке затирающей информации, чтобы компилятор знал, что вы делаете.

Встроенный ассемблер Microsoft Visual C++ действительно прост в использовании (он всегда кажется Просто Работающим ), но я понятия не имею, какие гарантии или предположения он делает в отношении вашего кода.

Пытается ли VC++ "автоматически -определить", какие регистры затерты? Откуда он знает, как будут изменены регистры и указатель стека? Делает ли он какие-либо предположения? Если да, то как обойти эти предположения?

9
задан Mat 8 May 2012 в 19:23
поделиться