ok here is a simple asm convertion :
Code:
apptype console
Dim %v
v= &H01020304
? v
? Hex(v)
swapEndian(@v)
? Hex(v)
Pause
Asm swapEndian(buffer As Integer)
#Define buffer dword ptr[ebp + 8] ' Buffer pointer
enter 0, 0
mov edx, buffer ' Point edx to buffer
mov ebx, 4
'first swap R and A
mov al,[edx] ' Load value at edx into al
mov ah,[edx+3] ' Load value at edx+3 into ah
mov [edx+3],al ' Store value in al at edx+3
mov [edx],ah ' Store value in ah at edx
'then Swap G and B
mov al,[edx+1] ' Load value at edx+1 into al
mov ah,[edx+2] ' Load value at edx+2 into ah
mov [edx+2],al ' Store value in al at edx+2
mov [edx+1],ah ' Store value in ah at edx+1
#Undef buffer
leave
ret
End Asm