下列代码的输出为哪个?() int main(void) { int input,output,temp; input=1; __asm__ __volatile__ ( "movl $0,%%eax;\n\t" "movl %%eax,%1;\n\t" "movl %2,%%eax;\n\t" "movl %%eax,%0;\n\t" :"=m"(output),"=m"(temp) :"r"(input) :"eax" ); printf("%d %d\n",temp,output); return 0; }
A. . 0 1;
B. . 0 0;
C. . 1 0;
D. . 1 1;
查看答案
下列代码的输出为哪个?() #include int main() { /* val1+val2=val3 */ unsigned int val1=2; unsigned int val2=3; unsigned int val3=0; asm volatile( "movl $0,%%eax\n\t" "addl %1,%%eax\n\t" "addl %2,%%eax\n\t" "movl %%eax,%0\n\t" :"=m"(val3) :"c"(val1),"d"(val2) ); printf("%d\n",,val3); return 0; }
A. . 3;
B. . 4;
C. . 5;
D. . 0;
C代码中内嵌汇编代码表示eax寄存器清零操作,如下哪一句没有语法错误?()
A. . movl $0,%%eax;
B. . movl $0,%eax;
C. . movl 0,%%eax;
D. . movl 0,%eax;
C代码中嵌入汇编代码的方法是插入()?
A. . __init;
B. . __asm__(...);
C. . static;
D. . void;
函数调用时,入栈顺序及入栈元素以下哪个是正确的?()以调用b(x,y)函数为例
A. . y,x,eip,b的堆栈;
B. . x,y,eip,b的堆栈;
C. . eip,y,x,b的堆栈;
D. . eip,x,y,b的堆栈;