【问题标题】:Does this MARIE code find the lowest number in an array?这个 MARIE 代码能找到数组中的最小数字吗?
【发布时间】:2014-01-02 15:51:46
【问题描述】:

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

    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

【问题讨论】:

标签: arrays assembly marie


【解决方案1】:

这看起来很可疑:

   Loadi   Loc
    Store   Min 

你在零地址有什么?

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

我理解它的初始化方式是: 将第 10 个元素存储为(当前)min,将 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

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

【讨论】:

  • 加载I X | D |间接加载:使用 X 处的值作为 | |要加载的值的地址。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
  • 2018-12-12
  • 2010-12-16
  • 2011-10-31
  • 2021-09-27
  • 1970-01-01
  • 2013-06-04
相关资源
最近更新 更多