ARMには除算命令がないので, 前のブログCalの時はdivmodという簡単な除算サブルーチンを用意した. 通常はライブラリの除算ルーチンが組込まれるらしいが, 私としては除算サブルーチンを書くのが趣味の内だ. 2008年10月28日のブログに書いた「個人用電卓」の除算もそうだが, 私は剰余を除数と符号を合せる除算が好きなので, 今回も当然そういう設計にした. 400を15で割ると, 商は26, 剰余は10になる. では-15で割るときはどうするか. 商は-27, 剰余は-5とするのである. 通常割切れるときは剰余は0だが, これは正なので, 負数, 例えば-15で割ったときにはそういう剰余はでない. 剰余は-15になる. 400割る-20は商が-21, 剰余が-20とする. -21× -20=420, それに剰余が-20だから, 被除数は400というわけだ. 引き放し除算の方法はこうだ.