- This is still a work in progress. It may be changed in the future.
BF-ASM:8 is an esolang made to be translated to Brainfuck, manually or by a compiler. Made by the user: DmilkaSTD.
Every program should start with: ->>>>
The compilter should allow you to change the maximum number that every cell can store (8 bits, 16 bits, 32 bits, 64 bits, signed numbers)
The x of every instruction, can't be equal to the maximum number that a cell can store (Example, if a cell can only store 8 bits, then the x value can't be 255)
The x of every instruction should be a number
Also, there are five special registers (5 cells), which can be modified directly by code.
If in some part of this wiki there is something that starts with 'r' and have a number next to it, it means that refers to a register. r1=Register1, r2=Register2,r3=Register3...
|Instruction||Description||Note||Translated to Brainfuck|
|halt||Halts the program||Even the halt program uses flow control.||WIP|
|add x||Increments by x the current cell's value||+...|
|sub x||Decrements by x the current cell's value||-...||-...|
|set x||Sets the current cell's value to x||[-]+...||[-]+...|
|mov x||Increments by x the pointer's value||I originally wanted to put the name of the instruction set as mov||>...|
|ret x||Decrements by x the pointer's value||<...||<...|
Every program should starts executing in the tag 0, if not exists in the code, then it halts.
Is the same rule that I said before in the rule 3 but applied to tags.
Tic tac toe
There are two types of interpreter, the Expected interpreter and the Senseless interpreter
The expected interpter, is an interpreter which reads directly the assembly code.
The senseless itnerpreter, translates the code to Brainfuck code, and the executes the code.
The sensemore interpreter, translates the code to Brainfuck, and shows you, but with comments.
Why this language?
I really don't know, because if you use this language instead of Brainfuck, that would not be a challenge.