- くだすれDelphi(超初心者用)その56
569 :デフォルトの名無しさん[sage]:2015/09/30(水) 01:15:19.02 ID:OLzxb5Eh - http://stackoverflow.com/questions/25353684/delphi-inline-assembler-and-class-properties
function TList.IndexOf(item: Pointer): Integer; const FItems = 4; //data offset of FItems FCount = 8; //data offset of FCount asm mov ecx, [eax].FItems //ecx = @FItems mov eax, [eax].FCount //eax = FCount dec eax //test zero count! js @Exit //if count was 0 then exit as -1 @Loop: //repeat cmp Item, [ecx + eax * 4] jz @Exit dec eax jns @Loop //until eax < 0 (actually -1) @Exit: end; もう知ってると思うがこれやって見たら 3割早くなった 改造は自己責任で
|