Jumpback

Jumpback is an esoteric programming language with no forward jumps.

Instructions
MOV dst, src			Copy src to dst ADD dst, src			Add src to dst SUB dst, src			Subtract src from dst ADDEQ dst, src, cmp		Add src to dst if src == cmp ADDNE dst, src, cmp		Add src to dst if src != cmp SUBEQ dst, src, cmp		Subtract src from dst if src == cmp SUBNE dst, src, cmp		Subtract src from dst if src != cmp NEG dst				dst = (-1) * dst PSH	src			Push source to value stack POP dst				Pop to dst from value stack LBL				Push IP to address stack JEQ	a, b			Jump if a == b JNE a, b			Jump if a != b JLE a, b			Jump if a < b JGE a, b			Jump if a > g SHOW a				Display a

Jumps pop the target from the address stack.

Addressing modes
$ - Immediate @ - Memory indirect
 * 1) - Memory

i.e.

MOV #0, 1		Writes the number 1 to memory[0] MOV #0, #1		memory[0] = memory[1] MOV #0, @1		memory[0] = memory[memory[1]] MOV @0, @1		memory[memory[0]] = memory[memory[1]]

Examples
MOV #0, 10 MOV #1, 0 LBL SHOW #0 SUB #0, 1 JNE #0, #1

is a countdown from 10 to 0.