CompareMemの大小比較版が欲しくて、SysUtilsのソースを参考に書いて使っている…のではありますが
自分でも何か非効率な気がします。アセンブラ詳しい人添削して…。

仕様: 長さが異なる場合、"ABC" < "B" < "BA" < "BB" < "BBB"
( CompareStrを文字列では無く任意のメモリに適用しているイメージ )

function CompareBinary(S1: Pointer; L1: Integer; S2: Pointer; L2: Integer): Integer;
asm
 PUSH ESI ; PUSH EDI
 MOV ESI, EAX; MOV EDI, ECX
 MOV EAX,EDX
 MOV EDX, L2
 MOV ECX,EAX
 CMP ECX,EDX
 JBE @@3
 MOV ECX,EDX
@@3: CMP ECX,ECX
 REPE CMPSB
 JE @@4
 MOVZX EAX,BYTE PTR [ESI-1]
 MOVZX EDX,BYTE PTR [EDI-1]
@@4: SUB EAX,EDX
 POP EDI; POP ESI
end;