4

最も頻繁に使用される数学命令(加算、減算、乗算、除算)を「エミュレート」し、ハードウェアベースのCPUプロセッサが実行するすべてのステップをカバーするサンプルコードを探しています。

私が最初にしたことは、グーグルを使用してこれを取得することでした: https ://bochs.svn.sourceforge.net/svnroot/bochs/trunk/bochs/cpu/

しかし、それは私が望むものではありません。これは、CPUがビットレベルまですべてをどのように実行するかを確認したいのですが、命令ラッパー/エミュレーターです...

..

4

4 に答える 4

2

TTLは、デジタル ロジックを理解するのに最適な方法です。Google で「TTL 演算」などを検索すると、加算器や乗算器などの作成方法に関するチュートリアルへのリンクが多数表示されるでしょう。

(もちろん、何を検索するかを知ることは問題の半分です。)

于 2012-07-29T21:05:37.027 に答える
1

2 の補数演算については Google で検索する必要があります。

このComputer Arithmetic Algorithms Simulatorに興味があるかもしれません。

于 2012-07-29T21:22:31.667 に答える
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;

編集:このSOの質問はすでに解決策を定義していることを認識しています。C++ のブール式 (文法) パーサー


ここから、前述の算術演算を処理できるフォン ノイマン アーキテクチャで算術論理演算ユニット (ALU) を構築できます: http://en.wikibooks.org/wiki/Microprocessor_Design/ALU

于 2012-07-29T21:25:13.823 に答える
1

算術論理演算装置 (ALU)に関するウィキペディアの記事には、役立つリンクがいくつかあります。足し算掛け算割り算についての記事。

于 2012-07-29T21:27:50.107 に答える