8085 で SP=0000H の場合、PUSH B 命令を実行すると、どのレジスタのどのメモリ位置に格納されますか?
レジスタ B の内容が FFFF に格納され、C が FFFE に格納されるということでしょうか?
8085 で SP=0000H の場合、PUSH B 命令を実行すると、どのレジスタのどのメモリ位置に格納されますか?
レジスタ B の内容が FFFF に格納され、C が FFFE に格納されるということでしょうか?
(編集済み)
ああ、私は今質問を見ました。
もちろん、これは通常、実際のコードで発生する状況ではありません。このアーキテクチャでは、コードは通常、データとスタックが上にある低いメモリから読み込まれるため、この状況が発生する前にプログラムが上書きされます。
Intel の公式データ シートや、私が見つけた他のドキュメントには、スタック ポインターのアンダーフローで割り込みがトリガーされるという記述はありません。
したがって、オーバーフローをチェックすることなく、命令がSPレジスタをインクリメント/デクリメントすることを実際に期待しているため、メモリアドレス指定は実際に0000からFFFFになります。動作が規定されていないため、メーカーがこのケースのゲート テストを無駄にし、他の方法で処理する理由はありません。
ただし、公式の回答は、これは未指定の動作である可能性があります。それを突き止めるには、このアーキテクチャを最初に設計した Intel の声明を見つける必要があります。(上記のように)少し検索しましたが、絶対的なものは何も表示されません。
これが通常の状況で発生する理由や、それを誘発するための用途が見当たらないので、上記のすべてを「無」の禅総和に還元したいと思います。