【发布时间】:2011-09-23 13:55:23
【问题描述】:
调用构造函数后有一小段反汇编,没有任何意义。在这里,
.text:011A18F0 loc_11A18F0: ; CODE XREF: main+5Bj
.text:011A18F0 mov [ebp+again_obj], 0
.text:011A18FA
.text:011A18FA loc_11A18FA: ; CODE XREF: main+6Ej
.text:011A18FA mov eax, [ebp+again_obj]
.text:011A1900 mov [ebp+var_104], eax
.text:011A1906 mov [ebp+var_4], 0FFFFFFFFh
.text:011A190D mov ecx, [ebp+var_104]
.text:011A1913 mov [ebp+var_14], ecx
.text:011A1916 mov eax, [ebp+var_14]
.text:011A1919 mov [ebp+var_E0], eax
.text:011A191F mov ecx, [ebp+var_E0]
.text:011A1925 mov [ebp+var_EC], ecx
.text:011A192B cmp [ebp+var_EC], 0
.text:011A1932 jz short loc_11A1949
我不明白为什么0FFFFFFFFh被移入var_4,为什么很多值被移入和移出变量,这里的做法。已经关闭优化,我在VS2010平台编译源码。
【问题讨论】:
-
我可能错了,但这看起来像是在调试模式下对某些变量和寄存器进行了一些默认初始化,以帮助发现未初始化的变量。
标签: c++ class reverse-engineering disassembly