アカウント名:
パスワード:
インデックスレジスタで代用できるように思えるのだけど. 現に多くの RISC 系 CPU では,CPU アーキテクチャのレベルではスタックと言う概念は無くて,コンパイラ側の方で汎用レジスタのどれか1つを「こいつはスタックポインタとして使うぞ」と勝手に決めて使っているだけだし.
というわけで,コンパイラ(と OS)の実装レベルで,例えば EAX ~ EDX の
現に多くの RISC 系 CPU では,CPU アーキテクチャのレベルではスタックと言う概念は無くて
別にRISCに限らず、アーキテクチャにスタックなんて関係ありません。そもそもスタックは手続き呼び出し(再帰を含む)を実現するために用いられるアクティ
現存のCISC CPUの多くは、「スタックポインタ」と名付けられた レジスタを持ち、また暗黙のうちにスタックポインタを インクリメント/デクリメントするJSRとかRETとかの命令を持っている。 一方RISCは、汎用レジスタのどれか
一方、言語系からは、スタックポインタ用に統一したレジスタの使い方が互換性や外部プログラムの再利用のために必要(ほぼ必須と言ってもいい)なので、CPUが「スタックポインタレジスタ」というのを用意してくれれば(あるいはMIPSのように「汎用レジスタ29番はスタックポインタ$spとして使う」、というしきたりを設定してくれれば)便利 なことこの上ない、というわけです。
だから「RISCならスタックポインタレジスタはどうこう」というのはまったく勘違いもいいところで、重要なのは、現在の言語系ではせいぜいアクティベーションレコードかディスプレイくらいしか実用的な手続き呼出し機構の選択肢がなく、そのどちらもスタックを必要とするという事実なのであって、それはCPUのアーキテクチャとは無関係なのです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
スタックと言っても (スコア:1, 参考になる)
インデックスレジスタで代用できるように思えるのだけど. 現に多くの RISC 系 CPU では,CPU アーキテクチャのレベルではスタックと言う概念は無くて,コンパイラ側の方で汎用レジスタのどれか1つを「こいつはスタックポインタとして使うぞ」と勝手に決めて使っているだけだし.
というわけで,コンパイラ(と OS)の実装レベルで,例えば EAX ~ EDX の
Re:スタックと言っても (スコア:0)
別にRISCに限らず、アーキテクチャにスタックなんて関係ありません。そもそもスタックは手続き呼び出し(再帰を含む)を実現するために用いられるアクティ
Re:スタックと言っても (スコア:2, 参考になる)
現存のCISC CPUの多くは、「スタックポインタ」と名付けられた レジスタを持ち、また暗黙のうちにスタックポインタを インクリメント/デクリメントするJSRとかRETとかの命令を持っている。
一方RISCは、汎用レジスタのどれか
Re:スタックと言っても (スコア:1, 参考になる)
一方、言語系からは、スタックポインタ用に統一したレジスタの使い方が互換性や外部プログラムの再利用のために必要(ほぼ必須と言ってもいい)なので、CPUが「スタックポインタレジスタ」というのを用意してくれれば(あるいはMIPSのように「汎用レジスタ29番はスタックポインタ$spとして使う」、というしきたりを設定してくれれば)便利 なことこの上ない、というわけです。
だから「RISCならスタックポインタレジスタはどうこう」というのはまったく勘違いもいいところで、重要なのは、現在の言語系ではせいぜいアクティベーションレコードかディスプレイくらいしか実用的な手続き呼出し機構の選択肢がなく、そのどちらもスタックを必要とするという事実なのであって、それはCPUのアーキテクチャとは無関係なのです。
Re:スタックと言っても (スコア:0)
>としてスタックなりスタックポインタなりが必須の要素ではない、
>ということです。CISC/RISCに関係なく、スタック用designated
>レジスタがあるのはプログラム実行を支援するためにあるだけです。
そーゆー要素を構成してデザインされたもんがアーキテクチャだと
思ってました。