我正在开发一个业余爱好项目,围绕它设计一个小型CPU和一个微型计算机系统.我有一个基本的数据流,并做了一些关于单词大小和ISA中的指令数量的决定.我决定使用一个带有4位操作码字段的16位字.这允许16条指令.
编辑:一些额外的信息
指令字16位格式如下:OOOOPPPPPPPPPPPP
O位是操作码,P位是有效载荷,地址/数据.这允许4096千字节的地址空间和16个操作码.对16个操作码的限制是一个设计决策,使硬件实现更容易.
该架构有一个累加器(A寄存器),一个B寄存器和一个堆栈指针.
/ EndEdit中
ISA具有移动和加载指令(加载/存储),基本算术和逻辑(添加,子,NAND),基本堆栈功能(推送和弹出).还有一个子程序(无条件)跳转/返回指令对.尽管如此,仍然缺少一件:条件跳跃.
返回函数可以与无条件跳转相同,所以我需要的是某种测试和测试条件下的跳转.
所以,这是我的问题:什么是最有用的测试/条件对?
在操作码表中有一个测试和一个条件跳转的空间,或者如果你以某种方式在其他操作中包括条件测试,如ADD或SUB,则有两个条件跳转.
跳过溢出,而不是零,零,携带,不携带是我的一些想法,但我不确定哪一个会更有用.任何建议表示赞赏.