-1

8085 で SP=0000H の場合、PUSH B 命令を実行すると、どのレジスタのどのメモリ位置に格納されますか?

レジスタ B の内容が FFFF に格納され、C が FFFE に格納されるということでしょうか?

4

2 に答える 2

1

(編集済み)

ああ、私は今質問を見ました。

もちろん、これは通常、実際のコードで発生する状況ではありません。このアーキテクチャでは、コードは通常、データとスタックが上にある低いメモリから読み込まれるため、この状況が発生する前にプログラムが上書きされます。

Intel の公式データ シートや、私が見つけた他のドキュメントには、スタック ポインターのアンダーフローで割り込みがトリガーされるという記述はありません。

したがって、オーバーフローをチェックすることなく、命令がSPレジスタをインクリメント/デクリメントすることを実際に期待しているため、メモリアドレス指定は実際に0000からFFFFになります。動作規定されていないため、メーカーがこのケースのゲート テストを無駄にし、他の方法で処理する理由はありません。

ただし、公式の回答は、これは未指定の動作である可能性があります。それを突き止めるには、このアーキテクチャを最初に設計した Intel の声明を見つける必要があります。(上記のように)少し検索しましたが、絶対的なものは何も表示されません。

これが通常の状況で発生する理由や、それを誘発するための用途が見当たらないので、上記のすべてを「無」の禅総和に還元したいと思います。

于 2014-03-16T14:15:40.890 に答える