アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
小生、現在CASIOのポケコンZ-1GRにて、
x86アセンブリを勉強中のアセンブリ初心者です。
今回、先輩方にご質問させて頂きたいのは、
JP命令についてです。

まず、以下のコードを見てください。
ORG 2000H
START:
MOV AX,08888H
XOR BX,BX
MOV DX,00888H
MAIN:
AND DX,AX
JP SETBX
JMP RETURN
SETBX:
MOV BX,0001H
RETURN:
IRET
END

と記述し、アセンブル→実行しますと、BXに1が格納されます。
JP命令というのは、演算後、1のビット数が偶数の時にセットされるもので、
上記のコードだと、DXは0888のままなので、1のビット数は奇数でRETURNにジャンプするはずだと思うのですが。。。

お忙しい中、大変申し訳ございませんが、先輩方、ご教授宜しくお願い致します。

A 回答 (1件)

Intel のドキュメントによると, PF は


「結果の最下位バイトに値 1 のビットが偶数個含まれている」場合
にセットされるらしいよ.

参考URL:http://download.intel.com/jp/developer/jpdoc/IA3 …

この回答への補足

Tacosanさん、いつもご回答頂き誠にありがとうございます。

IntelのIA-32デベロッパーズマニュアル、非常に助かりました。

>「結果の最下位バイトに値 1 のビットが偶数個含まれている」場合

という事は私の記述したコードに当てはめると、
DLに値1のビットが偶数個ある為、BXに値が入っていたんですね。

もう少し、検証コードを書いてから、実験してみたいと思います。

この度は、ご回答頂き、誠に感謝申し上げます。

補足日時:2010/11/18 08:42
    • good
    • 0
この回答へのお礼

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という値は格納されませんでした。
やっと、頭がスッキリしました。
本当に感謝申し上げます。
ありがとうございました。

お礼日時:2010/11/18 09:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!