我正在寻找一些“模拟”最常用的数学指令(加法,减法,乘法,除法)的示例代码,并将涵盖基于硬件的cpu处理器遵循的所有步骤。
我做的第一件事是使用谷歌并得到这个: https://bochs.svn.sourceforge.net/svnroot/bochs/trunk/bochs/cpu/
但它不是我想要的。这是一个指令包装器/模拟器,而我想看看cpu如何将所有内容降低到位级别......
...
答案 0 :(得分:2)
TTL是了解数字逻辑的好方法。如果您在Google上搜索类似“TTL算术”的内容,您可能会获得许多指向如何创建加法器和乘数之类的教程的链接。
(当然知道要搜索什么是问题的一半。)
答案 1 :(得分:1)
你应该谷歌二进制补码。
此Computer Arithmetic Algorithms Simulator可能会让您感兴趣。
答案 2 :(得分:1)
如果你真的想要“代码”模仿“,”(用文字表示)你需要一个布尔代数语法的解析器:
S ::= E;
E ::= (E)
E ::= T AND T
E ::= T OR T
E ::= T NOR T
T ::= NOT T
T ::= IDENTIFIER # Set of named bits
...
Include grammar for STATEMENTs.
简单地说,为上面的语法编写一个解析器,以便您可以开始在布尔代数中编写代码。
# Half Adder
SUM = A NOR B;
CARRY = A AND B;
编辑:我意识到这个问题已经定义了一个解决方案。 Boolean expression (grammar) parser in c++
从这里开始,您可以在冯·诺依曼架构中构建一个能够处理上述算法的算术逻辑单元(ALU):http://en.wikibooks.org/wiki/Microprocessor_Design/ALU
答案 3 :(得分:1)
Wikipedia article on the arithmetic logic unit (ALU)有许多可能对您有用的链接。其中有关于addition,multiplication和division的文章。