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
몇 가지 시도를 한 후에 답변을 업데이트했습니다. –