2026.7.29
前へ
次へ
ホームページトップへ戻る


[新連載開始]W65C02マイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第27回]



●BRA(5)ラベル機能(後方へのジャンプ)

今回は後方にジャンプするBRA命令をラベルを使ってプログラムします。
[第25回]で作ったw65c02test7をラベルを使うように書き換えたものです。
        ;w65c02testa 26.7.25
        ;
        org $8000
;
        lda #$00
        bra jp2
jp1:
        dec
        dec
        sta $10
        stp
jp2:
        bra jp1
;end

前回も書きましたが特に相対ジャンプ命令ではラベルは威力を発揮します。
もうラベル無しのプログラムはとても書く気になりません。
そのことは相対ジャンプ命令だけではなくて絶対アドレスを指定するJMP命令やJSR命令(80系CPUでのCALL命令)でも同じです。
そういえばいきなり相対ジャンプ命令について書いてしまいましたが本来ならばJMPから書くのが順序でした。
いずれJMPやJSRについても検証するつもりです。
今は相対ジャンプについて書き始めてしまいましたからしばらくこのまま続けます。
W65C02アセンブラでアセンブルしました。


下はアセンブルした結果生成されたリストファイルです。
0000            ;w65c02testa 26.7.25
0000            ;
8000            org $8000
8000        ;
8000 A900       lda #$00
8002 8005       bra jp2
8004        jp1:
8004 3A         dec
8005 3A         dec
8006 8510       sta $10
8008 DB         stp
8009        jp2:
8009 80F9       bra jp1
800B        ;end

前回と同じマシン語コードに翻訳されました。
同じコードですから実行しなくてもよいようなものですが念のために実行して確認をしてみます。

65c02testa.binファイルをロードして/RUNで実行した後で0010の値がFEになったことを確認しました。

W65C02マイコンボードの製作[第27回]
2026.7.29 upload

前へ
次へ
ホームページトップへ戻る