亲爱的了解汇编程序的德尔福人——
我有一个很棒的例程,在 Unicode 之前的世界中运行良好。
function StringRefCount(const Src: String): Integer;
asm
test eax, eax
je @Exit
mov edx, eax
mov eax, [edx - 8]
@Exit:
end;
鉴于我的 ASM 技能充其量只是初级,如何在 D2009+ 中做到这一点?
添加:此测试失败:
procedure TestStringStuff.TestStringRefCount;
var
TempString: string;
TempResult: Integer;
SecondString: string;
begin
TempString := 'this is a temp string';
TempResult := StringRefCount(TempString);
CheckEquals(1, TempResult);
SecondString := TempString;
TempResult := StringRefCount(TempString);
CheckEquals(2, TempResult);
end;
谢谢——我很高兴承认自己犯了一个大脑袋放屁。:-)
缺口