Znwm和ZdlPv在组装中是什么意思?

use*_*870 4 c++ assembly dynamic dispatch

我是汇编程序的新手,我试图弄清楚C ++如何处理汇编程序中的动态调度。

查看汇编代码时,我发现有2个异常调用:

call _Znwm
call _ZdlPv
Run Code Online (Sandbox Code Playgroud)

这些没有我可以追踪到的子程序。通过检查代码,Znwm似乎在调用其构造函数时返回对象的地址,但是我不确定。ZdlPv处于无法访问的代码块中(它被跳过了)。C ++:

Fruit * f;
f = new Apple();
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

任何意见,将不胜感激。谢谢。

Man*_*ans 6

_Znwm是运算符新的。
_ZdlPv是运算符删除。