Update design.md with all operands
This commit is contained in:
29
design.md
29
design.md
@@ -13,6 +13,7 @@
|
|||||||
- `$[value]` for using literals/immediate values
|
- `$[value]` for using literals/immediate values
|
||||||
- `;` for end of statement (mandatory)
|
- `;` for end of statement (mandatory)
|
||||||
- `[label]:` for labels
|
- `[label]:` for labels
|
||||||
|
- `#[text]` for comments: any text is ignored till a newline (`\n`) is found
|
||||||
- Elements must be separated by whitespace character
|
- Elements must be separated by whitespace character
|
||||||
- Good: `add $2 $5 %A;`
|
- Good: `add $2 $5 %A;`
|
||||||
- Bad: `add $2$5%A;`
|
- Bad: `add $2$5%A;`
|
||||||
@@ -25,16 +26,26 @@ Divide register A by 5 and store the result in register A:
|
|||||||
## Reserved symbols
|
## Reserved symbols
|
||||||
|
|
||||||
The following whitespace characters are used to separate symbols:
|
The following whitespace characters are used to separate symbols:
|
||||||
- space (' ')
|
- space (` `)
|
||||||
- tab ('\t')
|
- tab (`\t`)
|
||||||
- return carriage ('\r')
|
- return carriage (`\r`)
|
||||||
- newline ('\n')
|
- newline (`\n`)
|
||||||
|
|
||||||
The following characters are used as identifiers:
|
The following characters are used as identifiers:
|
||||||
- dollar ('$')
|
- dollar (`$`)
|
||||||
- percentage ('%')
|
- percentage (`%`)
|
||||||
- colon (':')
|
- colon (`:`)
|
||||||
- semicolon (';')
|
- semicolon (`;`)
|
||||||
- hash ('#')
|
- hash (`#`)
|
||||||
|
|
||||||
All operands are reserved keywords and can therefore NOT be used as labels.
|
All operands are reserved keywords and can therefore NOT be used as labels.
|
||||||
|
|
||||||
|
## Operands
|
||||||
|
|
||||||
|
- `addi` add the first to the second argument and store the result in the third argument
|
||||||
|
- `subi` subtract the first from the second argument and store the result in the third argument
|
||||||
|
- `divi` divide the first by the second argument and store the result in the third argument
|
||||||
|
- `muli` multiply the first by the second argument and store the result in the third argument
|
||||||
|
- `shli` shift left the first argument by the number of positions given by the second argument and store the result in the third argument
|
||||||
|
- `shri` shift right the first argument by the number of positions given by the second argument and store the result in the third argument
|
||||||
|
- `jmp` jump to the label given by the first argument
|
||||||
|
|||||||
Reference in New Issue
Block a user