.ORG
ディレクティブが正しく表示されません。プロセッサはアドレス0の命令の実行を開始しますが、そこにデータを配置しています。同様に、10バイトのデータがありますが、データを入れるのに8バイトしかありません。データが何であるかはわかりません。なぜなら、ラベルを付けなかったからです。それは命令であるはずですか? LCDディスプレイの数字は?
プログラムに何をしようとしているのかを記述するためにコードにコメントを追加した場合に役立ちます。私は、スタックポインタを設定し、ポートの方向を設定する部分を見ることができますが、私はループを分析しようとしたくないです。あなたがやるべきことを教えてください。
まず、.ORG
の場所を変更しようとするとよいでしょう。多くの場合、プログラムには「main:」というラベルの付いた部分があり、最初の指示は.ORG $0
でメインにジャンプします。こうすることで、プログラムの先頭にデータを置くことができます。例えば、.ORG $08
でコード内で見つけやすくなりますが、誤って実行されることはありません。
.INCLUDE "M32DEF.INC"
.ORG $00
jmp main
.ORG $08
digits: .DB $FC,$30,$6E,$7A,$B2,$DA,$DE,$70,$FE,$FA
main:
LDI R16,$01 ; set stack pointer
OUT SPH,R16
LDI R16,$00
OUT SPL,R16
and so on
私はこの質問はこの質問はアルドゥイーノとは何の関係もありません – zx485
をhttp://arduino.stackexchange.com/に属しているため、オフトピックとして、この質問を閉じるために投票しています。タグが言うように、AVR上のアセンブリです。 – UncleO