Te explico: el comando call (también disponible como gosub) va a un offset, como el goto, con la diferencia de que permite usar un return luego para volver a la parte anterior.
Para como lo estás usando, deberías poner goto.
Ejemplo:
#org @main
lockall
compare 0x4050 0x4
if 0x5 call @compare2...