【图灵完备 Turing Complete】游戏经验攻略分享 Part.6 处理器架构2 & 函数

新的架构来了,本游戏的最后一个攻略分享,最后汇编部分无非是对于操作码的熟练,硬件没有问题,那么也就无关痛痒了。


汇编实现,两数相或和两数相与非一起相与即可。

八位异或器,整就完事了。

有手就行。

利用相等相减全零的原理。

从高位到低位去判断,如果高位小于第二个直接输结果,如果不大于,就打开下面一位的检测通路再进行判断。

这个和上面无符号小于差不多,多判断了一下符号位。

判断PC的奇偶,加个3-8译码器,判断奇偶,奇数一定是最后一位是1的,所以激活选通输出。

这关的话。就是一个新的架构了,一次读4条机器码,分别是OP s1 s2 addr,addr相当于结果送到哪。这关由于之后关卡也会复用,所以我已经加了很多东西进去了。然后就是控制存储。写入的时候,加一个常数与地址总线上过来的数字进行比较,相等就激活并打开输入输出。

操作码也相当的简洁,共八位,前两位分别控制s1是立即数还是s2是立即数,第三位判断是否选择是进行比较,然后跳转到指定的行数(此时,前面说的第四个addr就会作为下一个地址传入PC的寄存器)。后五位在第三位没有激活的情况下是用于选择计算(包含简单的MOV),第三位激活之后,就进行判断了,例如大于小于。

RAM部分:另外存在一个RAM寻址寄存器,外加了一个自动加一的计数器,这样的话,设置好基地址,就可以自动的一个一个扫描RAM(这个是后面其中某关的要求)。RAM选定读取写入的操作类似于寄存器。

堆栈部分:

寄存器组:(6个,实则可以拓展,包括栈和ram在内的,存储器件个数只要不超过2的八次方的寻址空间)

运算:(条件选择和这个相同,都是判断OP和指定数字是否相同,相同就激活计算结果,送结果总线,蓝色的那条)

除法器的除零特殊处理。

机器外的输入输出(这里把他们都挂载到7号了,和寄存器等内存器件的选择方法一致):

PC:这里青色即执行比较和JMP指令通过的命令,准备进行跳转,浅蓝色是新传入的地址(如果前面青色线传1,即跳转,那么直接吧addr线,也就是深蓝色线的数字传进PC),如果不是进行比较,而指令中的addr是6,那么直接把之前运算结果传,也就是浅蓝色(结果总线的内容)传入PC作为新的地址。平常情况下不会把那个自动计数器状态设置为置数状态。

另外,此游戏右键特别灵敏,点住就会很快的删除一根导线,就很容易误触缺线,谨慎操作。


FIN

相关推荐
yunteng5214 小时前
通用架构(同城双活)(单点接入)
架构·同城双活·单点接入
麦聪聊数据4 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
程序员侠客行5 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
子春一5 小时前
Flutter for OpenHarmony:构建一个 Flutter 四色猜谜游戏,深入解析密码逻辑、反馈算法与经典益智游戏重构
算法·flutter·游戏
前端不太难6 小时前
HarmonyOS 游戏上线前必做的 7 类极端场景测试
游戏·状态模式·harmonyos
bobuddy7 小时前
射频收发机架构简介
架构·射频工程
桌面运维家7 小时前
vDisk考试环境IO性能怎么优化?VOI架构实战指南
架构
微祎_7 小时前
Flutter for OpenHarmony:构建一个 Flutter 重力弹球游戏,2D 物理引擎、手势交互与关卡设计的工程实现
flutter·游戏·交互
一个骇客8 小时前
让你的数据成为“操作日志”和“模型饲料”:事件溯源、CQRS与DataFrame漫谈
架构
鹏北海-RemHusband9 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构