Hab mal vor Ewigkeiten etwas geschrieben .. weiß nicht mehr, ob das so optimal ist, aber egal, vlt hilfts dir
Delphi-Quellcode:
type TIntArr =
Array of Integer;
// --
procedure FindMinMax(
const IntArr: TIntArr;
var Min, Max: Integer );
asm
// eax -> arr
// ecx -> min -> ebx -(xchg)> ecx = length
// edx -> max
// edi -> vergleichs-buffer
push edi
xchg ebx, ecx
mov ecx, [eax-4]
dec ecx
@Search:
mov edi, [eax+ecx*4]
cmp edi, [ebx]
jg @SetMin
cmp edi, [edx]
jl @SetMax
jmp @Next
@SetMin:
mov [ebx], edi
jmp @Next
@SetMax:
mov [edx], edi
@Next:
loop @Search
pop edi
end;
MfG