print ends with a ret instruction, which implies that it is something that you should call. So jg print should be jng skip / call print / skip: (or just call print, because the > 0 check seems unnecessary). call places the return address on the stack, jg does not.