單項選擇題

以下是C語言賦值語句“x=a*b+c;”對應(yīng)的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對應(yīng)寬度的寄存器中,根據(jù)上述匯編指令序列,推測x、a、b和c的數(shù)據(jù)類型分別為()。

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


您可能感興趣的試卷

你可能感興趣的試題

1.單項選擇題假定變量x的類型為long,對于變量y的初始化聲明“int y=(int)x;”,其對應(yīng)的匯編指令不可能是()。

A.movsql %rdx,%eax
B.movzlq %edx,%rax
C.movl %edx,%eax
D.movslq %edx,%rax

2.單項選擇題假定變量x的類型為int,對于變量y的初始化聲明“l(fā)ong y=(long)x;”,其對應(yīng)的匯編指令是()。

A.movzlq %edx,%rax
B.movq %rdx,%rax
C.movl %edx,%eax
D.movslq %edx,%rax