Expand description
This crate defines a standard set for a future osiris-machine.
Each module has its own operation prefix which is one byte long.
§Operations
0x0000
noop
§Control
0x0101
control::jump:address
0x0102
control::call:address
0x0103
control::call_return0x0104
control::gotodirect:32
0x0105
control::gosubdirect:32
0x0108
control::loop_init:counter_init
0x0109
control::nextdirect:32
0x010A
control::goto_if:CMP
direct:32
0x010B
control::gosub_if:CMP
direct:32
0x010C
control::goto_check:checked
direct:32
0x010D
control::gosub_check:checked
direct:32
0x010E
control::skip_if:CMP
0x010F
control::skip_check:checked
0x01FF
control::halt
§Registers control
0x0201
registers::set_top:target top:320x0202
registers::set_bottom:target bottom:320x0203
registers::clear_range0x0204
registers::move_to_float:float unsigned:160x0205
registers::move_from_float:unsigned float:160x0210
registers::push:unsigned0x0211
registers::pop:unsigned0x0220
registers::get_compare:target
§Memory management
0x0301
memory::store_words:target
[start:end]
0x0302
memory::load_words:target
[start:end]
0x0303
memory::get_memory_size:target
0x0304
memory::store_floats:target
[start:end]
0x0305
memory::load_floats:target
[start:end]
§Logic operations
0x0400
logic::is:CMP
target:16
:compare:16
0x0401
logic::not:target
0:origin:16
0x0402
logic::or:target
[start:end]
0x0403
logic::and:target
[start:end]
0x0404
logic::xor:target
[start:end]
0x0405
logic::nor:target
[start:end]
0x0406
logic::nand:target
[start:end]
0x0407
logic::nxor:target
[start:end]
§Integral arithmetic
0x1001
unsigned_arithmetic::sum_unsigned:target
[start:end]
0x1002
unsigned_arithmetic::product_unsigned:target
[start:end]
0x1003
unsigned_arithmetic::difference_unsigned:target
[start:end]
0x1004
unsigned_arithmetic::quotient_unsigned:target
[start:end]
0x100F
unsigned_arithmetic::compare_unsignedr1:r2
Modules§
- control
- 0x01 Control operations (branch, thread, future, message, configuration)
- logic
- 0x04
- memory
- 0x03 Memory operations (store/load, stack, allocation)
- range_
applications - registers
- 0x02 Register operations (set, move, stack)
- unsigned_
arithmetic - 0x10 Integral arithmetic (+, -, /, *, rnd(), <=>)
Functions§
- get_
standard_ set - Returns the standard operation set.