請怎麼會這樣C++函數轉換爲德爾福:轉換一個C++內聯彙編函數的德爾福內聯彙編函數
int To_Asm_Fnc(dword Amem, dword Al, dword Ac) {
int b = 0;
asm ("push %%ecx; \
call %%eax; \
pop %%ecx;"
: "=Al" (b) /* output value */
: "Al" (mem), "Ac" (Al), "d" (Ac) /* input value */
);
return b;
}
,這是我的德爾福嘗試
Function To_Asm_Fnc(Amem,Al,Ac:dword):Integer;
var
b:Integer;
begin
Result:=0;
b:=0;
//*******
{ i really didn't get it as in the c++ code }
//*******
Result:=b;
end;
千恩萬謝
這不是C++,這是程序集。 –
什麼是您的C++編譯器。您需要了解調用約定並註冊該約定的維護規則才能瞭解這一點。 –
在Delphi中,你也可以使用'asm'關鍵字,http://docwiki.embarcadero.com/RADStudio/en/Using_Inline_Assembly_Code。 – Pol