ALL

From Esolang
Jump to navigation Jump to search

ALL is esoteric programming language by User:IQBigBang. It's Assembly Like Language (ALL). It's based on a lot of instructions with hexadecimal and readable value.

Memory

Memory is cell-based. Cells are saved in 2 dimensional array 256x256. Every cell can store number from 0 to 16 777 216. Cells can be accessed using pointer. Pointer starts on 0x0 cell.

Instructions

Basic instructions

Here's list of all basic instructions:

Hexadecimal value Instruction Description Shortcut
00 NUL Nullating instruction. Does nothing. NULlate
01 REG [registry name] Calls registry from current source code or from system registry directory (SRD) REGistry

Memory instructions

Here's list of instructions working with memory:

Hexadecimal value Instruction Description Shortcut
10 SVM [decimal number] Saves decimal number to current cell Save Value to Memory
11 REV Sets current cell to zero REmove Value
12 MVX Moves current cell value to cell next to it in x direction Move Value X
13 MVY Moves current cell value to cell next to it in y direction Move Value Y
14 ADD Saves sum of current cell and cell next to it in x direction to cell next to current in y direction ADD
15 SUB Saves difference of current cell and cell next to it in x direction to cell next to current in y direction SUBtract

Pointer instructions

Here's list of pointer instructions:

Hexadecimal value Instruction Description Shortcut
20 NPO Moves pointer to 0x0 Nullate POinter
21 MOX [decimal x coordinates] Moves pointer in x direction to entered value. MOve X
22 MOY [decimal y coordinates] Moves pointer in y direction to entered value. MOve Y
23 ADX [decimal x coordinates] Adds entered value to x coordinate of pointer. ADd X
24 ADY [decimal y coordinates] Adds entered value to y coordinate of pointer. ADd Y

Expression instructions

Here's list of all expression instructions:

Hexadecimal value Instruction Description Shortcut
30 IFE Express code between this and next END instruction only if current cell and cell next to it in x direction are equal. IF Equal
31 IFN Express code between this and next END instruction only if current cell and cell next to it in x direction are not equal. IF Not equal
32 LOP Loops code between this and next END instructions (current cell value) times. LOoP
33 END End of expression. END