編寫一個LC-3 彙編代碼,用於查找內存中正數列表的最大值。 R0 包含列表開始的內存中的位置,並且 數字列表的末尾由零或負數表示。代碼應將列表中值最大的 放入寄存器R5中。如果列表的第一個數字爲零或 爲負數,則R5應該包含零。 例如,如果R0內容爲X4000,存儲包含以下 值: X4000:10 x4001:20 x4002:15 x4003:-1如何編寫LC-3彙編代碼來查找列表的最大值?
的問題說,有書中的例子但我發現沒有什麼幫助,我寫了一些代碼之前,
.orig x3000
LD R1, NUMBER1 ;load NUMBER1 into R1
LD R2, NUMBER2 ;load NUMBER2 into R2
BRz Equals ;we jump to Equals if NUMBER1 = NUMBER2 (we can just jump directly to END)
BRn GreaterR2 ;we jump to GreaterR2 if NUMBER1 < NUMBER2
BRp GreaterR1 ;we jump to GreaterR1 if NUMBER1 > NUMBER2
Equals BRnzp End ;
GreaterR2 ADD R5, R5, #2 ;R0 = -1
BRnzp End
GreaterR1 ADD R5, R5, #6 ;R0 = 1
BRnzp End
End HALT ;THE END
NUMBER1 .FILL #2 ;
NUMBER2 .FILL #6 ;
.END
所以我有這個,但我不知道如何做一個列表後。我可以得到一些幫助嗎?