• ベストアンサー

Z80のフラグレジスタについて

Z80のフラグレジスタについてです。 3bit目と5bit目は使用しないということが本に書いてありますが、このbitに数値(1)が入る場合ってあるのでしょうか? もし入るならどのような時なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • siffon9
  • ベストアンサー率64% (136/211)
回答No.2

どのような意図からのご質問か計りかねるのですが…… これらのbitは未定義ですから1になる場合もありうると思います。またその条件が一定である場合もあるのかもしれません。 ただ、Z80には互換CPUが多いですから、あるCPUでその条件が判っても、他の互換CPUで同じ動作をするかは全く保証されません。 従って、そのbitを何かに利用しようとううのは止めた方が良いと思います。

kouhei1015
質問者

お礼

回答ありがとうございました。 Z80の本を読んでいてふと疑問に思っただけです。 そのbitを使って何かしようとは思っていません。

その他の回答 (1)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

> 3bit目と5bit目 故意に値を入れれば、1が入るでしょうが、フラグとしては使えないですね。

kouhei1015
質問者

お礼

有難う御座いました。

関連するQ&A

  • STATUSのZフラグについて

    STATUSのZフラグについてお聞きしたい事があります。 参考書を読んでみると、「Zフラグは、計算結果や代入結果が'0'となったことを表す指標のことをいう。数値の一致を知るには引き算をしてZフラグを見るプログラムを書く」とあります。 サンプルプログラムを見ても'0'か'1'しかZフラグには存在しない様に思われますが、現在私が組んでいるプログラムでは、プログラムが1行進むにつれてZフラグの数字が1ずつ増えていってしまい、計算結果を確認する事が出来ません。これは単に私のプログラムの設定が間違っているのでしょうか。もしソースがあれば判断出来るのであれば後ほどアップしますのでどなたか教えてもらえませんか。PICアセンブラで組んでいます。宜しくお願い致します。

  • 数値フラグの判定方法

    ビットフラグの方法ではなく 数値フラグの計算というか判定の方法の話なのですが、 C++でファイルから設定を読み込む時、 1つの整数にフラグをまとめ様としているのですが、 パターン1  :1の位 10の位 100の位 1000の位・・・ とわけて位毎に3~5種程のフラグを持たせている場合の、10・100の位の取り出し方 パターン2  :On/Offだけで、1・2・4・8・16・32・・・・・とわけている場合の、2・4・8・16の部分の取り出し/判定方法 ビットでの操作はシンプルだったので理解できたのですが、 数値としての場合、どう計算すれば任意の場所を取り出せるのでしょうか? 初歩的な事かもしれませんが、検索しても計算方法を見つけきれませんでした; どなたか教えて頂けると幸いです。 っ_ _)っ

  • PIC(MOVFで何故、STATUS Zフラグが変わるのか)

    こんにちは。 PICマイコンで割り込みをやる場合、 MOVFはSTATUSのZフラグに影響を与えるので、 使わない、とありますが、 何故、MOVFでZフラグに影響を与えるのか、 どういう影響を与えるのか分かりません。 割り込みを使わなくても、STATUS<Z>を 条件判断に使っている限り、 MOVFは使えないのでしょうか。 また、 本によっては、 (割り込みのはじめ) MOVWF W_TEMP MOVF STATUS,W(*) MOVWF ST_TEMP    ~割り込みの内容 MOVF ST_TEMP,W MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W (割り込み終わり) のように書いてあり、 この場合、*で、 STATUSのコピー前(同時)に、 MOVFを使っていますが、 これは、OKなのでしょうか。 何か分かる人がいましたら、 よろしくお願いします。

  • 空いているビットフラグの確認方法

    空いているビットフラグの中で最小のものを見つけたいのですが、 うまい方法がわからず、どのように作成したら良いか、ご教授お願いします。 たとえば、 int nFlg = 0xFF8F; //上位16ビット省略 というフラグの場合、空いている(ビットフラグの無い)箇所は int nFalse = ~nFlg; // = 0x0070 で求められますが、この中から、最小のフラグ位置(0x0010)を求めたいのです。 (未使用のフラグの中から、使えるビットひとつを選びたいのです・・) 総当りしかないでしょうか? よろしくお願いします。

  • フラグ

    MS-ACCESS97でフラグをたてるという表現を聞いたことが あります。Visual Basicでもフラグを用いるという表現を 聞きました。この場合のフラグとは一体どのような概念なのでしょうか。フラグとはまたコンピュータ全般に渡って 使用される概念なのか、ご教示下さい。

  • シフトレジスタ

    JK-FFを使用してカウンタの実験を行いました。そこで課題が出たのですがよかったら教えてください。 1.4ビットのシフトレジスタの動作原理 2.シフトレジスタのコンピュータを構成する周辺LSIのなかに使われている例 よろしくお願いします。

  • PIC18FのSTATUS

    PIC18FのSTATUSレジスタ(N,OV,Z,DC,C)の内Z,DC,Cは16Fと同じだと思いますがN,OVが部分的にわかりません OV:7ビット越えのオーバーフローフラグということですが8ビットオーバーすればC=1と思いますがなぜ7ビットなのでしょう? どういった時に使えるものなのでしょうか?(符号付とは?) N:演算の負フラグ 16Fの時はCで兼用だったのが分離したものだと思いますが、実際にマイナスになると=1になります。が足して7ビット越えした状態でも=1になっていますがそういうものなのでしょうか?

  • ATmega88のレジスタのビット操作

    ATmega88のプログラミングについて調べているのですが、 以前ATtiny2313の時にレジスタのビットの操作は 例えば、PORTBレジスタの3ビット目をHにする場合は PORTB |= (1<<PB3); このような書き方をしていたと思うのですが、ATmega88でプログラムされている方達のプログラムを見てみると、 PORTB = (1<<PB3); http://onechiplab.blogspot.com/2009/09/atmega88rtc-8564.html というような書き方をされているように見受けられるのですが、この2つの文は全く同じ意味でしょうか?

  • 汎用レジスタのワーキングビットテスト

    アセンブラ初心者です。 汎用レジスタR0からR15をワーキングビットテストするアセンブラソースを書いているのですが実行すると暴走します。 汎用レジスタR0からR15をワーキングビットテストする場合、レジスタデータを一旦どこかに保存してから行うものなのでしょうか? また、R0がインデックスレジスタ(意味が良く分かってません)、R15がスタックポインタが格納されていますがこれらのレジスタも値を一旦どこかに退避しておけばテストを行ってもよいものなのでしょうか?

  • アセンブラで質問があります。

    Aレジスタの値が0(ゼロ)BHのとき、0(ゼロ)AHを実行すると、Zフラグはどのように変化しますか? また、Aレジスタの値が0(ゼロAHのとき、CP 0(ゼロ)AHを実行すると、Zフラグはどう変化しますか?

専門家に質問してみよう