我试图将内联asm代码格式VS转换为GCC(AT& T)..原始代码是这样的:
char mystr[] = "Hello world";
_asm mov eax,0
_asm lea ebx, [mystr]
以下是我尝试使用& t语法在gcc中转换代码:
char mystr[] = "Hello world";
asm("mov $0,%%eax\n"
"leal (%0),%%ebx\n"
: : "r"(mystr));
这段代码似乎不起作用,任何想法为什么? 非常感谢你
答案 0 :(得分:1)
此代码似乎有效:
char* mystr = "Hello world";
asm("mov $0,%%eax\n"
"leal (%0),%%ebx"
::"b"(mystr));
我已将char mystr []更改为char * mystr,将“r”更改为“b”.. 如果有人知道“b”究竟是什么,请告诉我...... 非常感谢