.function Sgn 1

# if $0 > 0
ldloc 0
ldconst 0
gt
brf LBL1
ldconst 1
goto END

# else if $0 < 0
LBL1: ldloc 0
ldconst 0
lt
brf LBL2
ldconst -1
goto END

#else
LBL2: ldconst 0

END: ret


.function Main 0

ldconst 42
call Sgn
out
pop

ldconst -5
call Sgn
out
pop

ldconst 0
call Sgn
out
pop

ldconst 0
ret