ここにいくつかのOAMコードがあり、すべての命令、それらがどのように動作するかを調べ、すべて疑似的に書き直しましたが、見つけるのに問題があります(数を数えることができます)ループはプログラムにあります。目が離せない気がしますし、C / Javaなどで千の階乗プログラムをやっていますが、ここでは見えません。
したがって、== 0の場合はユーザーエントリを取り込み、[brz]をスキップする場合は[brp]をスキップします。abs値の値を否定するために使用されるneg
スキップルーチンは乗算と除算を実行し、その後にさらに条件を実行して、再度呼び出す必要があるかどうか、またはプログラムが完了したかどうかを確認します。
私は本質的にこのプログラムのループを見つける必要があります。私が言ったように、それはおそらく私を正面から見つめていますが、それは譲渡人の側で大まかに尋ねられた質問です。
明確にするために編集:プログラムは1つの数値の階乗を取りませんが、入力された各数値の階乗を乗算します。
したがって、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