У меня есть следующий код asm:
; int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
[email protected] proc near
var_8= dword ptr -8
var_4= dword ptr -4
hInstance= dword ptr 8
hPrevInstance= dword ptr 0Ch
lpCmdLine= dword ptr 10h
nShowCmd= dword ptr 14h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 5
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_8], eax
xor eax, eax
mov esp, ebp
pop ebp
retn 10h
Из того, что я прочитал, у вас есть 3 типа команды возврата: ret, retn и retf, что означает return, return near and return far. Они разрешают необязательный аргумент nBytes, что я думаю, это количество байтов, которые нужно поп, из определенных переменных. Когда следует использовать retn или retf вместо ret? Как рассчитать необязательный параметр nBytes?