プロが教える店舗&オフィスのセキュリティ対策術

現在65816アセンブラを独学で勉強しています。
そこで皆様にお聞きしたいのですが…
例えば
AD E0 11 LDA
で11E0の値を読み込んで
その値が260以上だった場合「Xにジャンプ」、
260以下だった場合「Yにジャンプ」
という命令はどのようにしたら宜しいですか?

A 回答 (2件)

cmpでAレジスタからメモリのないようをひいて、その差によってキャリーフラグが変化すると思います。


なので、beq(F0)ではなく、bsc(B0)やbcc(90)に変えてやって見て下さい。

詳しい資料がないので間違えているかもしれません。

参考URL:http://www.oxyron.de/html/opcodes816.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考資料など見て無事出来ました。

お礼日時:2007/02/24 15:16

65816は詳しくないのですが、


cmpなどで比較して、キャリーフラグで判断して、
bscやbccでジャンプするればいいと思います。

260だと、8bitを超えてしまうので、65816に16bitの比較演算があるのか、私にはわかりませんが、8bitづつ上位・下位にわけて比較して
ジャンプすることもできると思います。

参考になりそうなリンク貼っておきます。

http://www.apple2world.jp/apple2/COL/MapItems/65 …

http://aqube.kir.jp/dsoft/famicom/6502.html

この回答への補足

AD E0 11 LDA $11E0
CD 60 02 CMP $0260
F0 04 BEQ
5C XX XX XX JML $XXXXXX
5C YY YY YY JML $YYYYYY
と、してみたのですが
これは260だったとき$YYYYYYにロングジャンプするだけで
260以上、260以下での方法が思いつきませんでした。
出来る方法をご教授お願いします。

補足日時:2007/02/22 22:22
    • good
    • 0
この回答へのお礼

アドバイスと参考資料ありがとうございました。
全然知識がなかったのでちゃんと勉強してきます。

お礼日時:2007/02/22 11:46

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