我试图用C
转换某些东西int div
div = div/2;
使用右移(SAR)进入内联ATT x86装配
asm("sar %0" : "=r"(div));
但我无法让它发挥作用。 任何见解将不胜感激
答案 0 :(得分:3)
通过使用=r
,您告诉编译器div中的现有值被asm覆盖。要告诉它你在asm中读取和写入div的值,请使用+r
(参见https://gcc.gnu.org/onlinedocs/gcc/Modifiers.html):
asm("sar %0" : "+r"(div));