qiunx

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

Qiunx (pronounced chunks, styled as qiunx) is a stack-based programming language created in 2024 by squandle. It was designed to be similar to assembly languages.

Language Overview

qiunx operates on two different data structures: an infinitely long stack, which can hold only integer values; and 26 registers (ax through zx), which can hold string, boolean, and integer values. These registers can be accessed with the mfs (move from stack), mts (move to stack), and mov (move) opcodes, which are explained further in depth in the opcodes section.

Opcodes

! NOTE ! not all opcodes are implemented right now.

Opcode Stack state Description Usage example
Arithmetic
add a b -- a + b pops the top two values off the stack, adds them together, and pushes the result to the stack :100 :4 add (* 104 *)
sub a b -- a - b pops the top two values off the stack, subtracts the second value from the first, and pushes the result to the stack :32 :12 sub (* 20 *)
mul a b -- a * b pops the top two values off the stack, multiplies them together, and pushes the result to the stack :10 :10 mul (* 100 *)
div a b -- a / b pops the top two values off the stack, divides the first value by the second value, and pushes the result to the stack :100 :20 div (* 5 *)
Stack manipulation
pop a b -- a removes the top value from the stack and prints it to STDOUT as an ascii character :111 pop (* prints "e" *)
dup a b -- b b duplicates the top value from the stack :10 dup mul (* 100 *)
:n N/A when n is a number, it is pushed to the stack :104 (* pushes 104 to the stack *)
mts r a b -- b c pushes the value at register r to the stack mov 78 cx mts cx
Register manipulation
mov n r a b -- a b pushes n to register r mov 104 ax (* moves 104 to the ax register *)
mfs r a b -- a moves the top value of the stack to register r :68 mfs gx (* pushes 68 to the stack, then moves it to the gx register *)

Example Programs

Hello, world!

:10 :33 :100 :108 :114 :111 :119 :32 :44 :111 :108 :108 :101 :72 pop pop pop pop pop pop pop pop pop pop pop pop pop pop

as the language evolves, this will as well, but as of now strings and loops do not exist.