DIV命令
アセンブリ表記
code:assembler
DIV
<除数>
機能
ACレジスタを上位18ビット・MQレジスタを下位18ビットにした値を、この命令自身の次のアドレスの値で除算する
商をMQレジスタに、剰余をACレジスタに設定する
Lレジスタは予め0でなければならない
1になっていると、商が1の補数による負の数(ビット反転)になる
機械語
機械語(IR) = 0o640323 = 0b110 100 000 011 010 011
IR<0:4> = 0b11 010 = 0o32
IR<0:4> == 0o32の場合のcaseはこの行以降
IR<4> = 0なので、この行は実行されない
IR<5> = 0なので、この行は実行されない
IR<6> = 0なので、この行は実行されない
そして、変数eae_ac_signに0が設定される
IR<7> = 0なので、この行は実行されない
IR<8> = 0なので、この行は実行されない
もしLレジスタに1が設定されていたら、変数link_initに0でない値(0o1 000 000)が設定される
IR<9:11> = 0b011 = 3なので、この辺りが実行される
次のアドレスの値を変数MBへ設定
AC >= MBの場合、AC - MBをACレジスタへ、1をLレジスタへ設定し計算を終了
→ 被除数の上位18ビットは、除数の値未満でなければならない
変数eae_ac_signと変数link_initのXOR結果が0でないなら、MQレジスタへMQレジスタと0o0 777 777のXOR結果を設定
商が1の補数による負の数(ビット反転)になる