Z80、8080、8085、および8086プロセッサのフラグレジスタでは、ビット1,3,5の目的は "予約済み"または "未定義"として文書化されていますか?フラグレジスタの予約/未定義ビットの目的は何ですか?
答えて
これらのビットは未使用です。つまり、命令によって明示的に値が設定されることはありません。設計者は5/6フラグで十分だと判断し、フラグレジスタの残りのビットを未使用のままにしました。
これらの命令は、命令が実行された後にどの値が残っているかを事前に知ることができないため、「未定義」と記載されています。プロセッサ設計は、明示的に0に設定するのではなく、または1
厳密に言えば、これらのフラグdoは実際には予測可能な値を得ます。結局のところ、プロセッサは常に同じ出力を生成し、同じ組み合わせで与えられた内部状態に変化します入力と前の内部状態の
フラグ3,5は次のように設定されている:最後(HL)を減算し、Hフラグが設定された場合 次いで(1とそれを減少、テイク/たとえば、this document about undocumented Z80 instructions CPIについて以下言いますアフター/ CP)。この値のビット1 は、ビット3は、しかし、ポイントフラグ3
で、フラグ5であるこの現象は意図しない側-JUST効果、およびでないことである将来の反復中に存在することが保証プロセッサの数。そういうわけで、彼らは単に「未定義」であると文書化されています。「あなたには役に立たないので、無視するだけです」。
Z-80の "POP AF"は、フラグレジスタのすべてのビットを設定します。そのため、フラグレジスタの未定義ビットを副作用で設定する命令はありませんが、すべてのビットをセットする命令があります。プログラムは、 "POP AF; PUSH AF"がスタックの一番上を変えずに残すことを安全に想定できます。 –
@GeorgePhillips:現在のスタックポインタよりも一時的に下にあるメモリを割り込みハンドラが非同期的にクローバすることができないように、割り込みが無効になっている場合。 –
さて、はい、しかし、ポイントの横にビット。それでは、これを言いましょう。 PUSH HL、POP AF、PUSH AF、POP HLはHLの内容を変更しません。 –
- 1. Amazon EC2の「予約」の目的は何ですか
- 2. (typeofの窓!==「未定義」)の場合の目的は何ですか
- 3. jQueryのは、未定義の予期せ
- 4. 未登録の予約語ですか?
- 5. 約束事で未定義の返答
- 6. ビット/ stl_tree.hの_Rb_tree_incrementの定義は何ですか?
- 7. ブルーバードの約束は未定義ですか?
- 8. JQueryオブジェクトの約束の目的は何ですか?
- 9. C++の静的関数ポインタメンバーへの未定義の参照は何ですか?
- 10. Windows XPでのネームスペース予約の設定64ビット
- 11. 制約ネーミングの目的は何ですか
- 12. 畳んだラケット契約の目的は何ですか?
- 13. JS約束未定義の動作
- 14. javascriptの約束<value>未定義
- 15. 未初期化定数予約
- 16. このような関数を定義する目的は何ですか?
- 17. なぜ@記号がJavaScriptで予約されていて、その目的は何ですか?
- 18. NetBeansとCygwinで32ビットのWinMainへの未定義の参照
- 19. Reactjs ajax未定(約束しています)ReferenceError:$は未定義です
- 20. 未定義とnullの違いは何ですか?
- 21. $が未定義の原因は何ですか? (JQuery)
- 22. 未定義のシンボルとは何ですか:X509_EXTENSION_free?
- 23. 予約語の処理はレキシカル定義に依存します
- 24. 予期しない "未定義オフセット"
- 25. erreur with pgモジュール:未定義約束
- 26. 認定は予約語ですか?
- 27. 未処理の約束拒否未定義
- 28. 予約目的の日付オーバーラップのためのmysqlの使用
- 29. ローカルストレージの約束からの未定義の値。 Ionic 2+/Angular 4.3
- 30. node.js console - ノードコンソールで「未定義」とは何ですか?
Z-80のビット1は、最後の命令が加算または減算であったかどうかを示すNフラグとして定義され、DAA命令によって使用されます。 –