Я создал пример кода, потому что я пытаюсь начать сборку. Я объявляю и инициализирую целое число в стеке, а также делаю то же самое для того, что находится в куче. При взгляде на ассемблерный код они оба выдают довольно похожий код:
mov dword ptr [ebp-8],0 ; this is on the stack
mov dword ptr [ebp-14h],0 ; this is on the stack
mov eax,dword ptr [ebp-20h] ; this is on the heap
mov dword ptr [eax],0 ; this is on the heap
Не могли бы вы пролить свет на то, что я пропускаю?
Можно найти соответствующую часть разборки. внизу:
int x = 0;
00111848 mov dword ptr [ebp-8],0
int y = 0;
0011184F mov dword ptr [ebp-14h],0
int* z = new int;
00111856 push 4
00111858 call 00111325
0011185D add esp,4
00111860 mov dword ptr [ebp+FFFFFF14h],eax
00111866 mov eax,dword ptr [ebp+FFFFFF14h]
0011186C mov dword ptr [ebp-20h],eax
*z = 0;
0011186F mov eax,dword ptr [ebp-20h]
00111872 mov dword ptr [eax],0