处理器架构2这一章我好像在内外全网都没有找到教程和答案,这里先放一波答案先

指令收取与解码(ps记得调计数器的步增值)

处理器部分

if 跳转部分
指令集部分
首先一行命令要包括一组4个 8bit 的数字因为指令是一次读取4个byte的数据,如果一行没有用到4个byte的话后面所有代码指代均会出错。
一下指令集均为第一个指明操作的byte的意义
所有byte在未作特殊说明的情况下
1. 指令
2. 输入1 位置
3. 输入2 位置
3. 输出 位置

立即数
立即数-1
在做其他操作时,将第一个输入(byte2)作为数值而不是寄存器地址
立即数-2
在做其他操作时,将第一个输入(byte3)作为数值而不是寄存器地址
需要注意的是,立即数的数值不能超过255。且其他操作均可以调用此立即数,但是若想直接存入寄存器请加入加法操作,加0,写入寄存器。

在执行完该行代码后,寄存器0内会存储值10 (10+0=>reg0)
Ram部分

ram部分
写入ram
1. 指令
2. 地址
3. 写入值
4. 禁用
在ram的(byte 2) 地址 写入(byte 3) 值
读取ram
1. 指令
2. 地址
3. 禁用
4. 输出位置
从ram的(byte 2)地址读取值,并写入(byte 4)指向的寄存器/输出


if 跳转
1.指令
2. 值1所在位置
3. 值2所在位置
4. 跳转到程序的第几行
在 值1和值2 之间满足if 指令内的逻辑判断(比大小时将所有值视为无符号的数值)时,计 数器跳转至(byte 4)本身指定的值(注意,这里不是指向的寄存器的值,而是自己的 值)。

在该段指令第5行时会跳转到第0个byte开始运行,而非第40个
逻辑操作


指令
值1所在位置
值2所在位置
输出位置
本类操作会按返回两个数间按位执行所选逻辑后的结果到(byte 4 所指定的位置)

指令
值1所在位置
值2所在位置
输出位置对指定的寄存器/输入 内的值运行加法运算并输出到指定的位置(byte 4)值得注意的时减法运行时是第一位减第二位并且两数绝对值均不能超过127,否则会造成数据溢出,导致结果错误

overview
延迟,占地,均不是最优解,仅仅是自己做出来的答案,大佬轻喷,目前还没通关,没出现的关卡有疑问的还请私信,同时放一张进度图,可能在近几天会继续。
