Instructions[]
Basic Instructions[]
- nop (This instruction has no effect)
- mov R/I R (Copies the first operand into to the second operand)
- jmp L (Jumps to the instruction following the specified label)
- slp R/I (Sleeps for the number of time units specified by the operand)
- slx P (Sleeps until data is available to be read on the XBus Pin specified by the operand)
- gen P R/I R/I (Generates a pulse on the specified Pin for the number of time units specified by the first and second operand)
Arithmetic Instructions[]
- add R/I (Adds the value of the operand to the value in the acc register)
- sub R/I (Subtracts the value of the operand from the value in the acc register)
- mul R/I (Multiplies the operand by the value in the acc register, then overrides the acc register with the result)
- not (Inverts the acc register to 0 or 100 depending on if it is 100 or 0)
- dgt R/I (tbd)
- dst R/I R/I (tbd)
Test Instructions (works as if statements)[]
- teq R/I R/I (tbd)
- tgt R/I R/I (tbd)
- tlt R/I R/I (tbd)
- tcp R/I R/I (tbd)
Registers[]
- acc
- dat [1]
- p0, p1 [1]
- x0, x1, x2, x3 [1]
- null
Instruction Operands[]
Notation | Meaning |
---|---|
R | Register |
I | Integer [2] |
R/I | Register or integer [2] |
P | Pin register (p0, p1, etc) |
L | Label [3] |
[1] Not all register are available on all microprocessors. Refer to the parts datasheets for pin diagrams and register information.
[2] Integer values must be in the range -999 to 999.
[3] Labels used as operands must defined elsewhere in the program.