我試圖陣列A
複製到陣列N
然後打印陣列(以測試它一直),但它的所有輸出是-1
存儲陣列到另一個陣列
這裏是我的代碼:
ORG $1000
START: ; first instruction of program
clr.w d1
movea.w #A,a0
movea.w #N,a2
move.w #6,d2
for move.w (a0)+,(a2)+
DBRA d2,for
move.w #6,d2
loop
move.l (a2,D2),D1 ; get number from array at index D2
move.b #3,D0 ; display number in D1.L
trap #15
dbra d2,loop
SIMHALT ; halt simulator
A dc.w 2,2,3,4,5,6
N dc.l 6
END START ; last line of source
爲什麼只輸出-1
?如果對於這一點,將是非常有益
幾件事看起來很可疑:'N dc.l 6' - 我很確定這隻會分配一個長單詞的存儲空間(值爲6),而不是分配長達6分鐘的存儲空間我想你想要)。 'move.l(a2,D2),D1;從索引D0處的數組中獲取數字< - 代碼或註釋都是錯誤的。它看起來像你沒有正確使用'dbra'(見例如[這裏](http://moss.csc.ncsu.edu/~mueller/codeopt/codeopt00/notes/constructs)) – user786653 2013-03-11 17:01:31
@ user786653你是它應該是'(a2,D2),D1;從索引D2處的數組中獲取數字。我不知道如何正確使用dbra,我想遞減d2直到達到0,否則循環。我將如何分配6次存儲空間?謝謝 – emanyalpsid 2013-03-11 17:10:43
鏈接的頁面顯示正確和不正確的'dbra'用法的例子,找到一個匹配您的需求的例子。你如何分配存儲取決於你使用的彙編程序,但通常是'ds.l'。 – user786653 2013-03-11 17:23:42