4

以下は、RISC(vs CISC)についての本「アセンブリ言語入門」からの引用です。

MIPS では、スタックを使わずに手続きを書くことができました。ほとんどの通常の手順では、スタックを使用する必要はありません。多数のレジスターを使用できるため、レジスターベースのパラメーター受け渡しを使用できます。ただし、再帰的な手続きを書くときは、スタックを使わなければなりません。

スタックなしで作業する魔法について、私は非常に混乱しています。すべての標準プログラムにはチェーン呼び出しがあります: Main()-> Function1() -> Function2() -> ... ->

多くのレジスタ (128) があっても、方法は通常です。

  1. どのレジスタを使用するかを決定し、そのコンテキストを保存します (通常はスタックにプッシュします)。
  2. 操作を提供する
  3. レジスタの状態を返す (通常はスタックからポップする)

特に最近のプロセッサーでは、CISC でレジスターベースのパラメーター受け渡しを使用することを誰も止めません。では、スタックなしで RISC でプログラムを実行するにはどうすればよいでしょうか。

4

3 に答える 3

7

彼らが言及しているのは引数の受け渡しだと思います。ほとんどの RISC マシンでは、引数はレジスタで渡され、通常、この目的のために予約されている約 6 ~ 8 個のレジスタ (および戻り値用に 1 個) があります。これは義務付けられたものではなく、単なる規則です (ABI またはアプリケーション バイナリ インターフェイスと呼ばれます)。したがって、関数への引数がレジスタよりも少なく、それらの引数がレジスタに収まるほど単純である場合、それらの引数を渡すために追加のスタック スペースは必要ありません。CISC マシンでは、引数用のレジスタがそれほど多くないため、ABI はそれらの引数がスタックで渡されるように指定します。

また、RISC マシンでは、ローカル変数を格納するために使用できる一時レジスタ (特に呼び出し先の保存レジスタ) が多数あります。CISC マシンでは、通常、ローカル変数はスタックに割り当てられ、レジスタは通常、中間値用に予約されています。

于 2012-07-13T17:34:58.853 に答える
2

縮小命令セット コンピューター (RISC /「リスク」と発音) は、その名前が示すように、1 つのクロック サイクル内で低レベルの操作を実行する複数の命令に分割できる単純な命令のみを使用するコンピューターです。2 つの数値 A = A * B を乗算する例を考えてみましょう。<<<======これは C ステートメントです。この特定のタスクのために、CISC プロセッサには特定の命令が用意されています (これを「MULT」と呼びます)。実行されると、この命令は 2 つの値を別々のレジスタにロードします 実行ユニットでオペランドを乗算します そして最後に、適切なレジスタに積を格納します。したがって、2 つの数を乗算するタスク全体が 1 つの命令で完了することができます。 MULT A,B <<<======これはアセンブリ ステートメントです。

   MULT is what is known as a “complex instruction.” It operates directly  on the computer’s memory banks and does not require the programmer to  explicitly call any loading or storing functions.

RISC プロセッサは、1 クロック サイクル内で実行できる単純な命令のみを使用します。CISC アプローチで説明されている一連の手順を正確に実行するには、プログラマは 4 行のアセンブリをコーディングする必要があります。 LOAD R1, A <<<======これはアセンブリ ステートメントです LOAD R2,B <<< ======これはアセンブリ ステートメントです PROD A, B <<<======これはアセンブリ ステートメントです STORE R3, A <<<======これはアセンブリ ステートメントです 利点:- 各命令は実行するのに 1 クロック サイクルしかかからないため、プログラム全体が複数サイクルの「MULT」コマンドとほぼ同じ時間で実行されます。これらの RISC の「削減された命令」は、複雑な命令よりも必要なハードウェア スペースのトランジスタが少なくて済みます。汎用レジスタ用の余地を残します。すべての命令が均一な時間 (つまり 1 クロック) で実行されるためです。
**RISC と CISC の詳細については、次のリンクを参照してください。 - **

http://www.firmcodes.com/difference-risc-sics-architecture/

于 2015-12-02T16:43:29.310 に答える
-1

リスク

  1. 命令の NO が少ない
  2. 指導時間は固定です
  3. ロード/ストア命令を使用します。
  4. 例:ARM7、ARM9。
  5. プログラムの実行に必要なサイクル数は、たとえば、製品 2 を使用しない場合は、次のコードを使用します Load a, 12 load b, 14, prod a, b store (memory location), b

CISC:

  1. 命令の NO が多い
  2. 命令の長さは可変です
  3. メモリへのアクセスにロード/ストア命令を使用しない
  4. 例:ペンティアム
  5. プログラムの実行に必要なサイクル数は少なくなります。たとえば、使用されない 2 つの MULT (メモリ ロケーション 1)、メモリ ロケーション 2、およびメモリ ロケーション 1 の結果ストアの積の場合です。
于 2014-01-30T07:21:48.787 に答える