--- /dev/null
+;;; 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