;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する ;;; 0〜65535の範囲の数値を扱う DIVL START PUSH 0,GR1 AND GR2,GR2 ; (GR2 = 0)の場合、DYZへジャンプ JZE DYZ ; ↓ LAD GR0,0 ; GR0を初期化 LD GR3,GR1 ; GR3 <- GR1 DLOOP CPL GR3,GR2 ; ループ先頭。(GR3 < GR2)の場合、終了 JMI DFIN ; ↓ SUBL GR3,GR2 ; GR3 <- GR3 - GR2 ADDL GR0,DONE ; ↓ JUMP DLOOP ; ループ終端 DYZ LAD GR3,#FFFF ; 強制的にオーバーフローを発生させ、GR3 <- 0 ADDL GR3,=1 ; ↓ JUMP DFIN ; DFINへジャンプ DFIN POP GR1 RET DONE DC 1 END