Easy68k でアセンブリ言語クラスの追加プログラムを作成していますが、同じ問題が引き続き発生します。プログラムを実行するたびに、最大 10 個の数値 (配列の割り当てサイズ) を入力できるようになり、計算中というメッセージが出力されますが、ウムラウト付きの y が無限に出力されます。これを行う原因となる私のプログラムですぐに見ることができる問題はありますか?
サブルーチンの構文を検索したのは、それが間違っていると確信しているためですが、何も見つかりません。
ORG $2000
ARRAY DS.W 10
ZDONE DC.W 'Enter values. Zero when done.'
FULL DC.W 'That is all the input allowed. Calculating sum now...'
OERROR DC.W 'The values you entered caused an overflow condition.'
REPEAT DC.W 'Do you want to repeat? [0=No, 1=Yes].'
START ORG $2800
MAIN LEA ZDONE,A1
MOVE.B #14,D0 ;
TRAP #15
LEA ARRAY,A0
MOVE.B #0,D3
INPUT MOVE.B #4,D0
TRAP #15
MOVE.W D1,(A0)+
BEQ SUB
ADD.B #1,D3
CMPA #$2012,A0
BNE INPUT
LEA FULL,A1
MOVE.B #14,D0 ; Outputs the FULL string
TRAP #15
SUB SUB.W A0,A0
BSR SUM ; Begins to calculate sum
CMP #1,D0
BNE NoV
LEA OERROR,A1
MOVE.B #14,D0
TRAP #15
BRA AGAIN
NoV LEA $D1,A1
MOVE.B #14,D0
TRAP #15
AGAIN LEA REPEAT,A1
MOVE.B #14,D0
TRAP #15
MOVE.B #4,D0
TRAP #15
MOVE.B #1,D0
CMP.B D0,D1
BEQ START
STOP #$3800
ORG $3800
SUM LEA ARRAY,A0
ADD.W #$A0,D1
BVC NoV
SUB.B #1,D3
BNE SUM
MOVE.B #1,D0
BRA RETURN
CLR.B D0
RETURN RTS
END START