| Crates.io | osiris-set-std |
| lib.rs | osiris-set-std |
| version | 0.1.17 |
| created_at | 2024-04-13 23:58:14.173162+00 |
| updated_at | 2024-04-21 00:28:40.096079+00 |
| description | A standard operation set. |
| homepage | |
| repository | https://asgard.trehinos.eu/osiris/set-std |
| max_upload_size | |
| id | 1207916 |
| size | 61,222 |
This crate provides an instruction set for a virtual machine built with pieces from crates osiris-data and osiris-process.
An exemple implementation in my forge.
Before v1.0.0, the API may change a lot :
0x0000 noop0x0101 jump:address0x0102 call:address0x0103 return0x0104 goto direct:320x0105 gosub direct:320x0108 loop:counter_init0x0109 next direct:320x010A goto-if:CMP direct:320x010B gosub-if:CMP direct:320x010C goto-check:checked direct:320x010D gosub-check:checked direct:320x010E skip-if:CMP0x010F skip-check:checked0x01FF halt0x0201 set-top:target top:320x0202 set-bottom:target bottom:320x0203 clear-range0x0204 move-to-float:float unsigned:160x0205 move-from-float:unsigned float:160x0210 push:unsigned0x0211 pop:unsigned0x0220 get-compare:target0x0301 store-words:target [start:end]0x0302 load-words:target [start:end]0x0303 get-memory-size:target0x0304 store-floats:target [start:end]0x0305 load-floats:target [start:end]0x0400 is:CMP target:16:compare:160x0401 not:target 0:origin:160x0402 or:target [start:end]0x0403 and:target [start:end]0x0404 xor:target [start:end]0x0405 nor:target [start:end]0x0406 nand:target [start:end]0x0407 nxor:target [start:end]0x1001 sum-unsigned:target [start:end]0x1002 product-unsigned:target [start:end]0x1003 difference-unsigned:target [start:end]0x1004 quotient-unsigned:target [start:end]0x100F compare-unsigned r1:16:r2:16