关于x86-64汇编语言中的局部变量寄存器的问题

问题描述 投票:1回答:1

我的任务是将x86-64汇编代码转换回简单的C函数。我正在使用的C函数采用4个参数(长a,长b,长c,长d)。如预期的那样,汇编代码的开头以

开头
movq   %rdi, -32(%rbp)
movq   %rsi, -40(%rbp)
movq   %rdx, -48(%rbp)
movq   %rcx, -56(%rbp)

例如,稍后在代码中再次使用这些寄存器

movq   -40(%rbp), %rax
imulq  -48(%rbp), %rax
movq   %rax, %rdx
movq   -32(%rbp), %rax
addq   %rdx, %rax
movq   %rax, -24(%rbp)

我的问题是上面的代码在第三行上是否正在为(长c)分配一个值,或者该寄存器是否在第一个代码段中被清空,并且在这种情况下仅用作通用寄存器。 >

我的任务是将x86-64汇编代码转换回简单的C函数。我正在使用的C函数采用4个参数(长a,长b,长c,长d)。如预期的那样...

c assembly x86-64
1个回答
1
投票

否,它没有为c分配值。

© www.soinside.com 2019 - 2024. All rights reserved.