AssemblerFuck
Jump to navigation
Jump to search
AssemblerFuck is a language made by User:Sesshomariu and is a version of brainfuck that uses assembler-like words instead of symbols.
Specification and instructions
There are 5 instructions:
ADD <VALUE> Adds a value to the current cell. SUB <VALUE> Subtracts a value from the current cell. MOV <TARGET>, <OBJECT> Moves the object to the target. This does only work with cells and not with values. UNTIL 0 Jumps to the matching END if the current byte is equal to 0. Else, it executes the code between UNTIL 0 and END. END Jumps to the past matching UNTIL 0 if the current byte is equal to 0.
Valid targets and objects
Targets:
P The pointer itself. LEFT The cell left of the pointer. RIGHT The cell right of the pointer. OUT The output.
Objects:
P The pointer itself. LEFT The cell left of the pointer. RIGHT The cell right of the pointer. IN The input.
Examples
Hello World
ADD 8
UNTIL 0
MOV RIGHT, P
ADD 4
UNTIL 0
MOV RIGHT, P
ADD 2
MOV RIGHT, P
ADD 3
MOV RIGHT, P
ADD 3
MOV RIGHT, P
ADD 1
MOV LEFT, P
MOV LEFT, P
MOV LEFT, P
MOV LEFT, P
SUB 1
END
MOV RIGHT, P
ADD 1
MOV RIGHT, P
ADD 1
MOV RIGHT, P
SUB 1
MOV RIGHT, P
MOV RIGHT, P
ADD 1
UNTIL 0
MOV LEFT, P
END
MOV LEFT, P
SUB 1
END
MOV RIGHT, P
MOV RIGHT, P
MOV OUT, P
MOV RIGHT, P
SUB 3
MOV OUT, P
ADD 7
MOV OUT, P
MOV OUT, P
ADD 3
MOV OUT, P
MOV RIGHT, P
MOV RIGHT, P
MOV OUT, P
MOV LEFT, P
SUB 1
MOV OUT, P
MOV LEFT, P
MOV OUT, P
ADD 3
MOV OUT, P
SUB 6
MOV OUT, P
SUB 8
MOV OUT, P
MOV RIGHT, P
MOV RIGHT, P
ADD 1
MOV OUT, P
MOV RIGHT, P
ADD 2
MOV OUT, P
Cat Program
MOV P, IN UNTIL 0 MOV OUT, P MOV P, IN END
Truth-machine
A truth-machine is implemented in the following:
MOV P, IN
MOV OUT, P
UNTIL 0
SUB 2
MOV RIGHT, P
ADD 1
UNTIL 0
MOV RIGHT, P
MOV RIGHT, P
END
MOV LEFT, P
UNTIL 0
MOV OUT, P
END
MOV LEFT, P
MOV LEFT, P
END
See Also:
Interpreter
- Common Lisp implementation of the AssemblerFuck programming language.