单项选择题
以下关于x86-64过程调用的叙述中,错误的是()。
A.前6个参数采用通用寄存器传递,其余参数通过栈传递
B.在通用寄存器中传递的参数,都存放在64位寄存器中
C.在栈中的参数若是基本类型,则被分配8个字节空间
D.返回参数存放在RAX相应宽度的寄存器中
点击查看答案
相关考题
-
单项选择题
假定long型变量t、int型变量x和short型变量y分别在RAX、RDI和RSI对应宽度寄存器中,C语言赋值语句“t=(long)(x+y);”对应的x86-64汇编指令序列不可能是()。
A.A
B.B
C.C
D.D -
单项选择题
以下是C语言赋值语句“x=a*b+c;”对应的x86-64汇编代码:movslq %edx,%rdx movsbl %sil,%esi imull %edi,%esi movslq %esi,%rsi leaq (%rdx,%rsi),%rax已知x、a、b和c分别在RAX、RDI、RSI和RDX对应宽度的寄存器中,根据上述汇编指令序列,推测x、a、b和c的数据类型分别为()。
A.x—long,a—long,b—char,c—long
B.x—long,a—int,b—char,c—int
C.x—long,a—long,b—char,c—int
D.x—long,a—int,b—char,c—long -
单项选择题
假定变量x的类型为long,对于变量y的初始化声明“int y=(int)x;”,其对应的汇编指令不可能是()。
A.movsql %rdx,%eax
B.movzlq %edx,%rax
C.movl %edx,%eax
D.movslq %edx,%rax
