AssemblerFuck++
Jump to navigation
Jump to search
Creator and Name
AssemblerFuck++ is an esoteric language created by User:Esolang1. This language is AssemblerFuck, with few more features containing if statements, more loops, and an accumulator. (E1-0003)
Code
Syntax
The syntax is simply
INSTRUCTION PARAMETER(S)
Instructions
ADD <VALUE> Adds <VALUE> to current cell SUB <VALUE> Subtracts <VALUE> from current cell SET <VALUE> Sets the current cell value to <VALUE> MOV <TARGET>, <OBJECT> Moves <OBJECT> to <TARGET> UNTIL <VALUE> Executes code until cell value is equal to <VALUE> DO <VALUE> Executes code <VALUE> times IF <VALUE> Executes code if current cell value is equal to <VALUE> END Marks the end of the code of a loop, or an if statement
<VALUE> can be any non-negative integer. 0 is used to create infinite do loops.
Valid <OBJECT> Content and usage
P Pointer, move pointer IN Input, save input
Valid <TARGET> Content and usage
P Pointer, save input LEFT Left, move pointer RIGHT Right, move poiner OUT Output, print value
Variables
This language is cell-based and no instructions related to declaring variables exist.
I/O
Inputs and outputs are controlable with the MOV instruction. Getting a single characer input and saving to current cell:
MOV P, IN
Printing the current cell value:
MOV OUT, P
Printing the input immediately won't save the input to the cell:
MOV OUT, IN
Examples
Truth-machine
MOV P, IN IF 48 MOV OUT, P END IF 49 DO 0 MOV OUT, P END END
Infinite cat
DO 0 MOV OUT, IN END
Interpreter
- Common Lisp implementation of the AssemblerFuck++ programming language.