execve执行静态链接程序时,通过修改内核堆栈中保存的eip的值作为新进程的起点。
查看答案
execve系统调用加载需要动态链接的可执行文件前要先加载其依赖的动态链接库(共享库)。
下列代码的输出为哪个?() 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;