编写一个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
所以我有这个,但我不知道如何做一个列表后。我可以得到一些帮助吗?