Crate osiris_set_std
source ·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
:320x0105
control::gosubdirect
:320x0108
control::loop_init:counter_init
0x0109
control::nextdirect
:320x01FF
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:unsigned
§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]
§Integral arithmetic
0x1001
[integral_arithmetic::sum_integers]:target
[start:end]
0x1002
[integral_arithmetic::product_integers]:target
[start:end]
0x1003
[integral_arithmetic::difference_integers]:target
[start:end]
0x1004
[integral_arithmetic::quotient_integers]:target
[start:end]
Modules§
- 0x01 Control operations (branch, thread, future, message, configuration)
- 0x11 Floating point arithmetic (+, -, /, *, rnd(), <=>)
- 0x10 Integral arithmetic (+, -, /, *, rnd(), <=>)
- 0x04
- 0x03 Memory operations (store/load, stack, allocation)
- 0x02 Register operations (set, move, stack)
Functions§
- Returns the standard operation set.