3 PUSH 0,GR3 ; 結果 Z の格納領域の先頭番地を退避
5 AND GR4,=#00FF ; Ex: X の指数
7 AND GR5,=#00FF ; Ey: Y の指数
8 LD GR6,1,GR1 ; Mx: X の仮数
9 LD GR7,1,GR2 ; My: Y の仮数
11 ; GR4 ← max(Ex,Ey) , GR6 ← 調整済 Mx , GR7 ← 調整済 My
14 JZE MADD ; Ex = Ey の場合
15 JMI BIGEY ; Ex < Ey の場合
17 SRL GR7,0,GR3 ; My を調整
21 SRL GR6,0,GR5 ; Mx を調整
23 ; Sz: Z の符号 , Ez: Z の指数 , Mz: Z の仮数
24 ; GR4 ← (Sz,Ez) , GR5 ← Mz
25 MADD LD GR1,0,GR1 ; X の符号の検査
27 LD GR2,0,GR2 ; Y の符号の検査
29 LD GR5,GR6 ; X ≧ 0 , Y ≦ 0 の場合
30 SUBL GR5,GR7 ; Mz ← 調整済 Mx − 調整済 My
37 YMINUS OR GR4,=#8000 ; Z に負符号を設定
39 ADDL GR5,GR7 ; Mz ← 調整済 Mx + 調整済 My
40 JOV ADJST ; けた上がりがある場合の正規化
42 SCHECK JOV NEGMZ ; Mz の符号を検査
44 NEGMZ OR GR4,=#8000 ; Sz に負符号を設定
45 XOR GR5,=#FFFF ; Mz ← −Mz
48 NORM LD GR5,GR5 ; ゼロチェック
52 LOOP LD GR5,GR5 ; 正規化完了?
58 OR GR5,=#8000 ; Mz の最上位ビットを 1 に設定
61 ST GR4,0,GR3 ; 結果 Z の格納