【发布时间】:2010-10-19 01:46:49
【问题描述】:
我在这里有一些 OAM 代码,我查看了所有的指令,它们的行为方式,并且我已经全部重写为伪代码,但是我在定位时遇到了问题(所以我可以数数程序中有多少)循环。我觉得它应该盯着我的眼睛,我已经用 C/Java 等做了一千个阶乘程序。但我在这里看不到。
所以它需要用户输入 if == 0 它会中断完成 [brz] if > 0 break 跳过 [brp] neg 用于对 abs 值取反
跳过例程执行乘法和减法, 后跟更多条件,看是否需要再次调用或程序是否完成。
我基本上需要在这个程序中找到循环。就像我说的那样,它可能正盯着我看,但对于分配者来说,这是一个松散的问题..
编辑澄清: 该程序不采用一个数字的阶乘,而是将输入的每个数字的阶乘相乘。
所以我可以输入 3、-4、2、0,结果将是 288。 (3*2*1)(4*3*2*1)(2*1)
为 BRI 编辑:
read: noop
lda stdin
brp return
neg
return: bri read
【问题讨论】:
-
在这种情况下
BRI似乎不是跳转操作码,因为read仅用作存储。将代码贴在return:之后。