4

我相信我这样做是正确的,任何人都可以仔细检查这项工作。如果它是正确的,我应该去哪里验证它是否选择了正确的数字。所以我试图给出数组,看看哪一个是该数组中最小的数字。

    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
4

1 回答 1

0

这看起来很可疑:

   Loadi   Loc
    Store   Min 

你在零地址有什么?

[编辑] 嗯,没错,但另一件事:它不是跳过第 9 个数组元素吗?

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

然后是循环中的第一件事——在检查循环计数器之后,它会在检查“下一个”元素之前再次递减指针。

还是我理解错了?

[编辑#2]

啊哈,我给出的链接背后的玛丽不明白间接说明。这样做。http://computerscience.jbpub.com/ecoa/3e/simulators.aspx

看起来还有其他问题:

这没有意义:

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

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

于 2013-12-16T18:32:20.260 回答