the problem with using string instructions is that you want to compare the high dword's first
so, you'd have to use STD and CLD, which adds about 200 cycles
here is a brute-force compare using 2 dword registers :P
OwordA OWORD ?
OwordB OWORD ?
mov eax,dword ptr OwordA[12]
mov edx,dword ptr OwordA[8]
cmp eax,dword ptr OwordB[12]
jnz FlagsSet
cmp edx,dword ptr OwordB[8]
mov eax,dword ptr OwordA[4]
jnz FlagsSet
cmp eax,dword ptr OwordB[4]
mov edx,dword ptr OwordA[0]
jnz FlagsSet
cmp edx,dword ptr OwordB[0]
FlagsSet:
;flags are set as though you had executed CMP OwordA,OwordB