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: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
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
[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
0x0402
logic::or:target
[start:end]
0x0403
logic::and: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§
- 0x01 Control operations (branch, thread, future, message, configuration)
- 0x04
- 0x03 Memory operations (store/load, stack, allocation)
- 0x02 Register operations (set, move, stack)
- 0x10 Integral arithmetic (+, -, /, *, rnd(), <=>)
Functions§
- Returns the standard operation set.