我是汇编的新手,我想弄清楚 C++ 如何处理汇编中的动态调度。
在查看汇编代码时,我看到有 2 个异常调用:
call _Znwm
call _ZdlPv
这些没有我可以追踪到的子程序。通过检查代码,Znwm 似乎在调用其构造函数时返回对象的地址,但我对此不确定。 ZdlPv 在一段永远无法到达的代码块中(它被跳过了)。 C++:
Fruit * f;
f = new Apple();
x86:
# BB#1:
mov eax, 8
mov edi, eax
call _Znwm
mov rdi, rax
mov rcx, rax
.Ltmp6:
mov qword ptr [rbp - 48], rdi # 8-byte Spill
mov rdi, rax
mov qword ptr [rbp - 56], rcx # 8-byte Spill
call _ZN5AppleC2Ev
如有任何建议,我们将不胜感激。 谢谢。
最佳答案
_Znwm 是新的运营商。
_ZdlPv 是运算符删除。
关于c++ - Znwm和ZdlPv在汇编中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337760/