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处的值作为要加载的值的|地址。