Что означает Znwm и ZdlPv в сборке?
Я новичок в сборке и пытаюсь понять, как 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
Любой совет будет принят во внимание. Благодарю.