• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:x86のJP命令について。)

x86のJP命令について

このQ&Aのポイント
  • JP命令は、演算後の1のビット数が偶数の時にセットされる特殊な命令です。
  • 質問者はZ-1GRでx86アセンブリを勉強中で、以下のコードを実行した際にJP命令の動作に疑問を持っています。
  • コードを見ると、JP命令によってBXレジスタに1が格納されるはずですが、なぜ格納されないのか疑問です。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Intel のドキュメントによると, PF は 「結果の最下位バイトに値 1 のビットが偶数個含まれている」場合 にセットされるらしいよ.

参考URL:
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol1_Online_i.pdf
HackHack
質問者

お礼

Tacosanさん、本当にいつもご回答頂き誠にありがとうございます。 先程、Tacosanさんから頂いたご教示のもと、 以下のコードを記述し、実験してみました。 ORG 2000H START: MOV AX,08888H XOR BX,BX MOV DX,08808H MAIN: AND DX,AX JP BXSET JMP RETURN BXSET: MOV BL,01H RETURN: IRET END と記述し→実行すると、見事!!!!BXには1という値は格納されませんでした。 やっと、頭がスッキリしました。 本当に感謝申し上げます。 ありがとうございました。

HackHack
質問者

補足

Tacosanさん、いつもご回答頂き誠にありがとうございます。 IntelのIA-32デベロッパーズマニュアル、非常に助かりました。 >「結果の最下位バイトに値 1 のビットが偶数個含まれている」場合 という事は私の記述したコードに当てはめると、 DLに値1のビットが偶数個ある為、BXに値が入っていたんですね。 もう少し、検証コードを書いてから、実験してみたいと思います。 この度は、ご回答頂き、誠に感謝申し上げます。