Вы можете прочитать о 64-битном соглашении о вызовах здесь . Предполагается, что функции x64 убираются после себя, но когда я вызываю malloc из .asm, он перезаписывает значение в RSP и RSP + 8. Это кажется очень неправильным. Есть предложения?
public TestMalloc
extern malloc : near
.CODE
align 8
TestMalloc proc
mov rcx, 100h
000000018000BDB8 48 C7 C1 00 01 00 00 mov rcx,100h
call malloc
000000018000BDBF E8 CC AC 06 00 call malloc (180076A90h)
ret
000000018000BDC4 C3 ret
000000018000BDC5 66 66 90 xchg ax,ax
TestMalloc endp
END