我正在考虑一个最小指令集CPU,比如十个或更少的操作码.我想找到仍然可以执行任何通用功能的最小数学运算代码集.
例如,在逻辑中,运算符AND,OR,NOT是冗余的.您可以使用其他两个函数计算任何函数,因此最小逻辑运算符集只需要两个.
对于算术函数,我可以使用两个操作码,可能是ADD和逐位反转吗?
(假设进位和进位执行指令).
使用ADD和BITINV,我可以在没有显式SUB运算符的情况下进行减法.乘法和除法是加法和减法的简单扩展. SHL乘以2,SHR除以2.
为了覆盖逻辑和算术,它看起来像AND,BITINV,ADD是一个完整的最小集合.我错过了什么吗?
最佳答案 您可能还需要包含控制指令(如条件和跳转)以使指令集图灵完成(或者您的指令集应该能够构建所有
computable functions).
例如,在你的问题中,
Multiplication and division are easy extensions from addition and
subtraction
没有循环和条件的概念,这是不正确的(考虑例如用于除法的欧几里德算法).你必须在某个地方进行循环才能进行划分.