Diana- Posted March 13, 2004 Report Share Posted March 13, 2004 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 Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.