游戏康威生命游戏是如何搭建计算机的?( 六 )
“俄罗斯方块处理器”指令集的设计特点包括:
没有寄存器 , 指令使用RAM中存储的数值作为操作数 。
程序计数器占用RAM地址00 , 跳转指令直接使用地址00作为操作数 。
所有指令预先保存在ROM中 , 初始数据则保存在RAM中 。
数据和地址都是16位的 。
支持的最大指令条数是65536 。
所有指令的编码大小都相同 , 都拥有1个操作码(opcode)和3个操作数(operand) 。
没有系统主时钟 , 数据在并行传输时有一个伴行的“时钟信号” , 以方便同步 。
算术逻辑单元支持条件移动指令、算术运算指令、位逻辑运算指令、位移指令等 。
整个指令集包括11条RISC指令:
MNZ [test] [value] [dest] – [test] 非0则设置 [dest] 为 [value]MLZ [test] [value] [dest] – [test] 小于0则设置 [dest] 为 [value]ADD [val1] [val2] [dest] – 加法 。 将 [val1] + [val2] 的结果存入 [dest]SUB [val1] [val2] [dest] – 减法 。 将 [val1] - [val2] 的结果存入 [dest]AND [val1] [val2] [dest] – 与 。 将 [val1] & [val2] 的结果存入 [dest]OR [val1] [val2] [dest] – 或 。 将 [val1] | [val2] 的结果存入 [dest]XOR [val1] [val2] [dest] – 异或 。 将 [val1] ^ [val2] 的结果存入 [dest]ANT [val1] [val2] [dest] – 与非 。 将 [val1] & (![val2]) 的结果存入 [dest]SL [val1] [val2] [dest] - 左移 。 将 [val1] << [val2] 的结果存入 [dest]SRL [val1] [val2] [dest] - 无符号右移 。 将 [val1] >> [val2] 的结果存入 [dest] , 不保留符号位SRA [val1] [val2] [dest] - 有符号右移 。 将 [val1] >> [val2] 的结果存入 [dest] , 保留符号位
指令支持4种寻址方式 , 在汇编语言中用特定前缀区分:
立即寻址:无前缀
直接寻址:前缀A
间接寻址:前缀B
双重间接寻址:前缀C
这个指令集使用了延迟(Delay slot)技术 , 每条指令的写操作是在下一条指令加载后才生效的 。 下面这段只有5行的汇编语言可以生成斐波那契数列:
0. MLZ -1 1 1; 初始值1存入数据地址011. MLZ -1 A2 3; 将数据地址02中的值存入数据地址032. MLZ -1 A1 2; 将数据地址01中的值存入数据地址023. MLZ -1 0 0; 延迟一个指令周期后 , 跳转到指令地址014. ADD A2 A3 1; 分支延迟(branch delay slot)指令 将数据地址02和03中的值相加后存入数据地址01
极客们甚至还基于这个指令集 , 创建了一种比汇编语言稍高级的 , 类似COBOL的编程语言Cogol 。
最终 , 用“俄罗斯方块处理器”指令集编写的俄罗斯方块程序一共有291行 。 程序运行时 , 内存地址03到32直接对应于游戏的显示输出 。 内存地址03显示得分 , 地址05-08显示下一个方块的预览 , 地址10到32显示游戏的主场景 。 内存地址01用于接收用户的操作指令 。 将1直接写入内存地址01 , 表示逆时针旋转方块 , 写入2 表示左移 , 4表示下移 , 8表示右移 , 16表示顺时针旋转方块 。
在多规则生命游戏这个抽象层运行俄罗斯方块时 , 我们可以直接从内存细胞中读出当前的游戏进程 。 内存中每个二进制位都是拥有4个输入和4个输出的有状态结构(类似一个较复杂的触发器) 。 可以通过中央的两个红色细胞的状态 , 读出这个二进制位的值:红色表示0 , 橙色表示1 。 如下图:
图片
编译和运行——大功告成
有了多规则生命游戏中实现的通用计算机 , 最后一步就相当容易了:自动把多规则生命游戏计算机转换成康威生命游戏 。
推荐阅读
- 小墨看科技|手机游戏蓝牙耳机哪款好?618游戏蓝牙耳机购买清单
- |以生命力,舒缓焦躁:Find X2 Pro 竹青开售
- |120Hz丝滑流畅体验!索尼发布真游戏电视X9100H系列
- 游戏本|十代i7+RTX 2070+4K OLED,有了这台轻薄游戏本才能在游戏中所向披靡
- PS索尼宣布PS5游戏网络发布会延期 新日期尚未确定
- 外设天下TB|微星Interceptor DS102 RGB游戏鼠标评测
- 碧波贝贝|多专多能多模式掌控,单双柄自由切换,游戏我是专业的
- 懒猫说数码|各型号显卡对应游戏分辨率:NVIDIA 篇
- 未来科技圈|618不知道怎么选购笔记本电脑 主流轻薄高性能游戏本推荐
- 韩博士装机大师|玩游戏卡顿?只要简单2步,开启电脑最大性能,速度提升10倍!