Guys, Нужен совет по Assembly 6800. код я написала , он не не работает так как надо. Задание било такое - в матрице можно передвигаться только по нулям, записивать в каком ряду и месте наиден ноль ,а затем переписать етот ноль на 9 и спринтовать всю матрицу уже с девятками вместо нулеи. Помогите кто сможет в чем ошибка данного кода?
ORG $400
MOVE.W #m,D2 8 rows
MOVE.W #n,D3 13 colomns
LEA ROW1,A0
SUBQ.L #1,D2
MULU #n,D2
SUBQ.L #1,D3
ADD.L D3,D2
ADDA.L D2,A0
MOVE.B (A0),D4
MOVE.L #0,D5
MOVE.L #0,D6
MOVE.L #1,D7
CMP.B #0,D4
BEQ NEXT
NEXT BSR LOOP1
LOOP1 LEA str1A,A1
MOVE.W #1,D1
MOVE.B #1,D0
TRAP #15
MOVE.W D5,D1
MOVE.B #3,D0
TRAP #15
LEA str2A,A1
MOVE.W #1,D1
MOVE.B #1,D0
TRAP #15
MOVE.W D6,D1
MOVE.B #3,D0
TRAP #15
LEA str3A,A1
MOVE.W #1,D1
MOVE.B #1,D0
TRAP #15
CMP.B #104,D7
BNE PRINT
PRINT LEA str4A,A1
MOVE.W #2,D1
MOVE.B #1,D0
TRAP #15
ADD.L #1,D6
MOVE.B #9,D4
MOVE.B (A0)+,D4
CMP.B #0,D4
BEQ LOOP1
LOOP2 ADD.L #1,D5
MOVE.B #0,D6
MOVE.W 13(A0),D4
CMP.B #0,D4
BEQ LOOP1
MOVE.W 14(A0),D0
ADD.L #1,D6
CMP.B #0,D4
BEQ LOOP1
MOVE.W -(A0),D4
SUB.L #1,D6
CMP.B #0,D4
BEQ LOOP2
ORG $1000
ROW1 DC.B 0,1,1,1,1,1,1,1,1,1,1,1,1
ROW2 DC.B 1,0,0,1,1,0,1,1,0,1,1,1,1
ROW3 DC.B 1,1,0,0,0,1,0,1,1,0,0,0,1
ROW4 DC.B 1,1,1,0,1,1,1,1,1,1,1,1,1
R0W5 DC.B 1,1,1,1,0,1,1,1,1,1,1,1,1
ROW6 DC.B 1,1,1,1,1,0,0,0,0,0,0,1,1
ROW7 DC.B 1,1,1,1,1,1,1,1,1,1,1,0,1
ROW8 DC.B 1,1,1,1,1,1,1,1,1,1,1,1,0
str1A DC.B '('
str2A DC.B ','
str3A DC.B ')'
str4A DC.B '->'
END $400