17 个版本

0.1.17 2024 年 4 月 21 日
0.1.16 2024 年 4 月 20 日

#51 in 模拟器

每月 30 次下载

MIT 许可证

59KB
686

Osiris/Set:Standard

此软件包为使用 osiris-dataosiris-process 软件包构建的虚拟机提供指令集。

在我的工作区中的示例实现。

警告

在 v1.0.0 之前,API 可能会发生变化很多 :

  • 此集合不完整。计划了很多,但还需要定义更多,
  • 将添加操作,
  • 参数方案可能会改变,
  • 操作可能会被移动或删除。

操作

  • 0x0000 无操作

流程控制

  • 0x0101 跳转:地址
  • 0x0102 调用:地址
  • 0x0103 返回
  • 0x0104 goto direct:32
  • 0x0105 gosub direct:32
  • 0x0108 loop:counter_init
  • 0x0109 next direct:32
  • 0x010A goto-if:CMP direct:32
  • 0x010B gosub-if:CMP direct:32
  • 0x010C goto-check:checked direct:32
  • 0x010D gosub-check:checked direct:32
  • 0x010E skip-if:CMP
  • 0x010F skip-check:checked
  • 0x01FF 停止

寄存器控制

  • 0x0201 设置顶部:target top:32
  • 0x0202 设置底部:target bottom:32
  • 0x0203 清除范围
  • 0x0204 移动到浮点数:float unsigned:16
  • 0x0205 从浮点数移动:unsigned float:16
  • 0x0210 入栈:unsigned
  • 0x0211 出栈:unsigned
  • 0x0220 获取比较:target

内存控制

  • 0x0301 存储单词:target [start:end]
  • 0x0302 加载单词:target [start:end]
  • 0x0303 获取内存大小:target
  • 0x0304 存储浮点数:target [start:end]
  • 0x0305 加载浮点数:target [start:end]

逻辑运算

  • 0x0400 是:CMP target:16:compare:16
  • 0x0401 非:target 0:origin:16
  • 0x0402 或:target [start:end]
  • 0x0403 与:target [start:end]
  • 0x0404 异或:target [start:end]
  • 0x0405 按位非:target [start:end]
  • 0x0406 按位与非:target [start:end]
  • 0x0407 按位异或非: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

许可证

依赖项

~75KB