Arrays 这个MARIE代码是否找到数组中的最小数?

Arrays 这个MARIE代码是否找到数组中的最小数?,arrays,assembly,marie,Arrays,Assembly,Marie,我相信我做得对,有人能再检查一下工作吗。如果它是正确的,我应该去哪里验证它选择了正确的号码。所以我试着给出一个数组,看看哪一个是数组中最小的数 Org 100 /Find minimum Load Start Add Num Subt One Store Loc Loadi Loc Store Min Load Num Subt One Store J Loop,

我相信我做得对,有人能再检查一下工作吗。如果它是正确的,我应该去哪里验证它选择了正确的号码。所以我试着给出一个数组,看看哪一个是数组中最小的数

    Org 100     /Find minimum
    Load    Start
    Add Num
    Subt    One
    Store   Loc
    Loadi   Loc
    Store   Min 
    Load    Num
    Subt    One
    Store   J
Loop,   Load    J
    Skipcond 00
    Jump    After
    Jump    Done
After,  Load    Loc
    Subt    One
    Store   Loc
    Subt    Min
    Skipcond 00
    Jump    After2
    Loadi   Loc
    Store   Min
After2, Load    J
    Subt    One
    Store   J
    Jump    Loop
Done,   Load    Min
    Halt

Min,    Dec 0  /where we save the min
Num,    Dec 10 /Numbers of value in array
One,    Dec 1 
J,  Dec 0  /Loop variable
Loc,    Dec 0
Start,  Hex 121 /Be sure to start off values in array
Array,  Dec 5
    Dec 20
    Dec 11
    Dec 15
    Dec 83
    Dec 2
    Dec 7
    Dec 1
    Dec 13
    Dec 15
这看起来很可疑:

   Loadi   Loc
    Store   Min 
你在零地址有什么

[编辑] 啊,没错,但还有一件事:它不跳过第9个数组元素吗

我理解它是通过以下方式初始化的: 将第10个元素存储为(当前)最小值,将ptr设置为第9个元素,并将循环计数设置为9

然后循环中的第一件事-在检查循环计数器之后,它在检查“next”元素之前再次递减指针

还是我理解错了什么

[编辑#2]

啊哈,我给的链接后面的玛丽不明白间接的指示。 确实如此

看起来还有其他问题:

这没有道理:

After,  Load    Loc
    Subt    One
    Store   Loc
    Subt    Min / here 'Min' is subtracted from the element's address
    Skipcond 00

我想程序应该找到最小值,但它根本不起作用。

为什么不使用模拟器来找到呢?就像从这里开始:对我来说似乎不太合适。您看到它有什么具体问题吗?LoadI X | D | Load indirect:使用X处的值作为要加载的值的|地址。