我相信我这样做是正确的,任何人都可以仔细检查工作。如果它是正确的,我应该在哪里验证它是否正在选择正确的数字。所以我试图给出数组,看看哪一个是该数组中最小的数字。
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
答案 0 :(得分:0)
这看起来很可疑:
Loadi Loc
Store Min
零地址你有什么?
[编辑] 啊,这是对的,但另一件事:它不跳过第9个数组元素吗?
我理解它初始化: 将第10个元素存储为(当前)min,将ptr设置为第9个元素并将循环计数设置为9。
然后循环中的第一件事 - 在检查循环计数器之后,它会在检查“next”元素之前再次递减指针。
或者我理解错了什么?
[编辑#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
我想程序应该找到最小值,但它根本不起作用。