OISC

OISC (One-Instruction Set Computer) is a RISC (Reduced Instruction Set Computer), which number of instructions is reduced to one, obviating the need for a processor opcode. It has been shown that such computer has the same computational power as any other computer.

In some implementations the instruction is subtract and branch unless positive, abbreviated subleq (subtract and branch if less or equal to zero), or sometimes subtract and branch if negative, which only differ by zero-inclusion. Some languages use a memory mapped instruction pointer. Branching is done by writing to IP in these implementations. More advanced memory mapping allows complex functionality such as arithmetic, but with the benefit of having a simple copy operation.

The subtract-and-branch-unless-positive operation usually has three parameters. subleq(a,b,c) (Subleq) subtracts a from b, stores the result in b, and then transfers control to the address in c if the result was non-positive. The simplest OISC is BitBitJump. Its instruction has 3 operands as in Subleq, but the meaning is: copy bit addressed by a to the bit addressed by b and jump to the address c. Neither Subleq nor BitBitJump have memory mapped registers for complex operations. The complexity is achieved by extensive code self-modification.