题目内容

下列代码的输出为哪个?() #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的堆栈;

rintf("%d=%d+%d\n",z,x,y);的汇编代码中,参数入栈的顺序是如下哪一个?()

A. . z,x,y,常量字符串地址;
B. . 常量字符串地址,x,z,y;
C. . 常量字符串地址,y,x,z;
D. . y,x,z,常量字符串地址;

答案查题题库