单项选择题
假定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 -
单项选择题
假定变量x的类型为int,对于变量y的初始化声明“long y=(long)x;”,其对应的汇编指令是()。
A.movzlq %edx,%rax
B.movq %rdx,%rax
C.movl %edx,%eax
D.movslq %edx,%rax
