0039yamaguti
2019/07/04(木) 21:52:36.43ID:rS60wicC77 dm_b1 Z; Z dm_b1; Z
78 dm_i1 Z; Z dm_i1; Z
79 t1; dm_b1 t1
80 dm_a t1 dm_next
81
82 dm_bp dm_a
83 dm_ip Z; Z dm_z; Z Z dm_start
84
85 . dm_a:0 dm_b:0 dm_z:0
86 . dm_m:0 dm_b1:0 dm_ip:0
87 . dm_i1:0 dm_bp:0 t1:0
88
89 #divMod
90
91 . N1L:-N1 N3L:-N3 t2:0
92 . C1:1 C2:2 0
3行目と4行目は、上記のCの例で変数を定義する方法と同様の変数を定義 。 >>36 >>37 >>38 >>36-38
Aは二重階乗が計算される数を定義 。 Bは開始番号です - 私たちの場合は1ですが、一般的には任意の数にすることができます。
タスクが並列プロセッサ間で分散されると、範囲BからAはより小さな範囲に分割され、独立してプロセッサに提出される。
完了すると、結果は収集され、さらに処理されます。
MODはアルゴリズムのモジュラスです。
ZはSubleqゼロレジスタです。
KはAから1までの中間値
? X ry 。
そして Xは累積された結果
7行目がKを初期化 。 >>36-37
10行目と11行目は、14行目と35行目の間に書かれた乗算アルゴリズムの仮引数を準備 。
乗算アルゴリズムのこのコードは、前のサブセクションで記述された関数Multにほぼ1対1に相当 。