Update design.md with all operands

This commit is contained in:
2019-11-17 21:12:43 +01:00
parent b84557b3e1
commit 1bac553f4b

View File

@@ -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