# sola > `sola` means `16` in Indo-Aryan languages. > > `So-la` means `perpetually` in Solresol. sola is a virtual stack machine inspired by [Uxn](https://wiki.xxiivv.com/site/uxn.html). It uses an instruction format similar to the [WISC CPU/16](https://users.ece.cmu.edu/~koopman/stack_computers/sec4_2.html), with 16-bit addressing and 258 instructions (32 standard opcodes, 3 modes) as well as two circular stacks. It is meant to be a personnal one-day computer in the idea of [Chifir](https://tinlizzie.org/VPRIPapers/tr2015004_cuneiform.pdf), a one-page, one-afternoon virtual machine. ## Opcodes, Instructions and Modes Literal values can be represented in decimal form (`42`, `1000`, `51966`), hexadecimal form (`0x2A`, `0x3e8`, `0xcafe`) or binary form (`0b101010`, `0b1111101000`, `0b1100101011111110`). There are 25 opcodes, represented in the sola language by 25 different ASCII characters. ``` | Opcode | Char | Instruction | Definition | |----------|------|-----------------|--------------------------| | `0xff00` | `#` | Literal | `( -- )` | | `0xff01` | `+` | Add | `( a b -- a+b )` | | `0xff02` | `-` | Subtract | `( a b -- a-b )` | | `0xff03` | `*` | Multiply | `( a b -- a*b )` | | `0xff04` | `/` | Divide | `( a b -- a/b )` | | `0xff05` | `%` | Modulo | `( a b -- a%b )` | | `0xff06` | `^` | Increment | `( a -- a+1 )` | | `0xff07` | `=` | Equal | `( a b -- a==b )` | | `0xff08` | `~` | NotEqual | `( a b -- a!=b )` | | `0xff09` | `>` | GreaterThan | `( a b -- a>b )` | | `0xff0a` | `<` | LessThan | `( a b -- a>b8l<