SM213 Assembly has a simplified instruction set compared to most other machine languages containing the following instructions:
where is some constant indicates that must be a multiple of , for example , indicates that must be a multiple of .
Load and Store Instructions
| Operation |
Assembly |
RTL Equivalent |
| load immediate |
|
|
| load base+offset |
|
|
| load indexed |
|
|
| store base+offset |
|
|
| store indexed |
|
|
Arithmetic Instructions
| Operation |
Assembly |
RTL Equivalent |
| rr move |
|
|
| add |
|
|
| and |
|
|
| inc |
|
|
| inc addr |
|
|
| dec |
|
|
| dec addr |
|
|
| not |
|
|
| shift (ss > 0) |
|
|
| shift (ss < 0) |
|
|
Flow and Logic Instructions
| Operation |
Assembly |
RTL Equivalent |
| branch |
|
|
| branch if equal |
|
|
| branch if greater |
|
|
| jump |
|
|
| get program counter |
|
|
| jump indirect |
|
|
| jump double ind, b+off |
|
|
| jump double ind, index |
|
|
| halt |
|
(stop execution) |
| nop |
|
(do nothing) |