-1

可能重复:从 C# 代码中
检索 JIT 输出生成程序集?

我开始学习汇编了!

我想知道是否可以看到我的代码的汇编c#代码?

例如,如果我有:

int i;

我怎样才能:

  1. 看汇编代码?
  2. 在汇编代码中准确识别它的作用是什么?
4

2 回答 2

2

使用调试器查看抖动生成的机器代码。开始调试并单步执行或设置断点。右键单击编辑器窗口,选择 Go To Disassembly。或者使用调试 + Windows + 反汇编。您要使用的其他调试窗口是寄存器和内存,它们显示原始 cpu 寄存器和内存视图。右键单击寄存器窗口以将寄存器添加到视图中。

您在那里看到的汇编代码有一些怪癖。所有代码都从地址 0 开始,它不显示实际地址,因为由于抖动,这是完全不可预测的。但这也会导致一个错误,CALL 指令的目标地址是错误的。而且您通常希望看到优化的代码,因为那是用户机器上实际运行的代码。切换到 Release 构建并使用 Tools + Options,Debugging,General,取消选中“Suppress JIT optimization on module load”选项。

于 2012-10-15T23:00:35.807 回答
1

汇编代码通常只在 JIT 时编写,因此查看它的最佳位置,特别是如果您想了解它,是查看 VS 调试器。

http://msdn.microsoft.com/en-us/library/a3cwf295.aspx

如果您指的是 IL(中间语言),这不是汇编语言,而是存储在您的 EXE 或 DLL 中。一个很好的查看工具是 ILSpy。

http://ilspy.net/

于 2012-10-15T21:45:24.310 回答