当我用 Ghidra 反汇编它们时,我试图弄清楚我的简单示例程序发生了什么。我不确定这是一些奇怪的 Ghidra 行为还是在编译时默认设置的会产生大量汇编代码的东西,但我积极地只编写了很少的 LOC。
这是我使用 VS Studio 2017 创建的示例 C 程序:
void main()
{
int x = 1;
int y = 2;
x = x + y;
}
这就是我尝试用 Ghidra 拆卸它时得到的结果:
上面的屏幕截图来自程序的假定“入口”点。但为什么这么复杂?我做了一个简单的程序来测试局部变量在Assembly 中的显示方式,并得到了这样的输出。然而,它应该是一些简单的汇编命令。
我不确定我在这里错过了什么,所以如果有人能帮助我尝试理解这一点,我将不胜感激。