我设计了一个假设的指令集,我认为它是图灵完备的。我想不出该指令集无法完成的任何计算操作。我只想验证这个假设的指令集确实是图灵完备的。
寄存器
IP = 指令指针
FL = 标志
记忆
冯诺依曼
其他信息
指令有两种形式(条件/立即跳转是异常值):
- 使用标量作用于内存
- 使用其他内存作用于内存
所有指令都作用于固定大小的无符号整数
每条指令由一个一字节操作码和三个尾随一字节参数组成(并非所有参数都必须使用)。
假设一个字节能够保存任何内存地址
指示
移动 = MOV
基本算术 = ADD、SUB、MUL、DIV、REM
二进制逻辑 = AND、NOT、OR、NOR、XOR、XNOR、NAND、SHR、SHL
比较 = CMP(该指令通过比较两个值来设置标志(不包括无符号整数溢出标志))
Conditional Jumps = JMP,基于标志的各种条件跳转
标志
- “无符号整数溢出”
- ">"
- “<”
- ">="
- "<="
- “=/=”
- “=”