欢迎光临散文网 会员登陆 & 注册

OVERTURE架构指令集及汇编器

2023-07-16 00:02 作者:_cocca  | 我要投稿

概述

OVERTURE指令集是游戏图灵完备(Turing Complete)中的第一款虚拟计算机所使用的指令集。这里将描述OVERTURE指令集,为实际的CPU设计做参考。该指令集共有16条指令、2条可选的拓展指令。

指令集描述

OVERTURE指令集如上图所示,分为4部分,分别为:

- 立即数模式。低6位数据作为立即数写入Reg0. 通过立即数可以写入0~63的字面值。

- 计算模式。通过低3位选择运算类型。从Reg1和Reg2中读取数值并将计算结果保存在Reg3. 可能的运算有OR, NAND, NOR, AND, ADD, SUB.

- 复制模式。将源寄存器(Source Reg)的值复制到目的寄存器(Dest Reg)。

- 比较模式。也称跳转模式。读取Reg3中的值并和指定的条件比较。条件满足时跳转到Reg0的位置。Reg0内的值不能为0. (用作指示器)

寄存器

OVERTURE指令集架构可以最多控制8个寄存器/设备。在图灵完备游戏中,Reg0~Reg5为通用寄存器,Reg6为IO设备。

计算命令

| Type Code | Don't Care | Opcode | Operation |

| :-------: | :--------: | :----: | :-------: |

|    01     |    000     |  000   |    OR     |

|    01     |    000     |  001   |   NAND    |

|    01     |    000     |  010   |    NOR    |

|    01     |    000     |  011   |    AND    |

|    01     |    000     |  100   |    ADD    |

|    01     |    000     |  101   |    SUB    |


比较命令

| Type Code | Don't Care | Opcode | Operation |

| :-------: | :--------: | :----: | :-------: |

|    11     |    000     |  000   |   Never   |

|    11     |    000     |  001   |    =0     |

|    11     |    000     |  010   |    <0     |

|    11     |    000     |  011   |    <=0    |

|    11     |    000     |  100   |  Always   |

|    11     |    000     |  101   |    !=0    |

|    11     |    000     |  110   |    >=0    |

|    11     |    000     |  111   |    >0     |


拓展寻址空间

目前PC的寻址空间为255byte. 为了增加实用性,增加一条规定:

- 程序跳转时,如果Reg0中的值为0,那么选择跳转到Reg1(低8位)和Reg2(高8位)指示的位置。

通过增加地址位数,可以获得65kbyte的寻址空间。


拓展指令

这部分是在OVERTURE指令集基础上拓展的指令,增加了对RAM的读写操作,使得整个系统更加实用。

- 计算模式下的内存指令。把Reg3处的值存储在RAM中Reg0所指示的位置。或者把Reg0所指示的位置的RAM值读取到Reg3处。

| Type Code | Don't Care | Opcode | Operation  |

| :-------: | :--------: | :----: | :--------: |

|    01     |    000     |  110   | Store Word |

|    01     |    000     |  111   | Load Word  |

- 如果Reg0中的值为0,那么选择Reg1(低8位)和Reg2(高8位)作为RAM的地址。


汇编器




OVERTURE架构指令集及汇编器的评论 (共 条)

分享到微博请遵守国家法律