CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
OBJ
tv : "tv_text"
PUB main | Num1
Num1 := $AABBCCDD
tv.start(13)
tv.hex(Num1,8)
cognew(@rev_bytes,@Num1)
tv.str(string(" Reversed "))
tv.hex(Num1,8)
DAT
org 'Reverse bytes in long
rev_bytes
rdlong edx,par 'AABBCCDD
ror edx,#8 'DDAABBCC
mov eax,edx 'DDAABBCC
ror edx,#16 'BBCCDDAA
and eax,ebx 'DD00BB00 'FF00FF00
and edx,ecx '00CC00AA '00FF00FF
or eax,edx 'DDCCBBAA 'Reversed
CogId ebx
wrlong eax,par 'Return result
CogStop ebx
eax long 0
ebx long $FF00FF00
ecx long $00FF00FF
edx long 0