Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gcc生成的程序集注释中的batmp和%fsp是什么?_Gcc_Assembly - Fatal编程技术网

gcc生成的程序集注释中的batmp和%fsp是什么?

gcc生成的程序集注释中的batmp和%fsp是什么?,gcc,assembly,Gcc,Assembly,我有一些由gcc生成的代码,在Core i7 930上有选项-march=native-mtune=native-mfpmath=sse-O3-ffast math-masm=intel-S-fverbose asm。下面是代码的摘录: mov esi, DWORD PTR [ebp-52] # batmp.271, %sfp mov eax, DWORD PTR [ebp-28] #, %sfp add esi, edi # batmp.271, add eax, edi #, m

我有一些由gcc生成的代码,在Core i7 930上有选项
-march=native-mtune=native-mfpmath=sse-O3-ffast math-masm=intel-S-fverbose asm
。下面是代码的摘录:

mov esi, DWORD PTR [ebp-52] # batmp.271, %sfp
mov eax, DWORD PTR [ebp-28] #, %sfp
add esi, edi    # batmp.271,
add eax, edi    #,
mov ecx, DWORD PTR [ebp-108]    #, %sfp
...
cmp DWORD PTR [ebp-100], eax    # %sfp, D.48541

什么是
batmp.XXX
%sfp
D.XXXXX
?这些名称是如何定义的?这些术语是什么意思?

如果您提供了C源代码以供参考,则更容易判断。 显然,
batmp
是用于数组访问的“临时基址”<代码>%sfp用作溢出到堆栈的寄存器的基址。不幸的是,根据我的测试,编译器没有告诉我们它溢出了什么,即使它是一个命名的局部变量
D.x
只是一种通用的表示法,意思是“使用uid x进行声明”。如果它没有名称,那么它可能是编译器生成的辅助变量