Я пишу дополнительную программу для моего класса языка ассемблера в 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