divxu.wの計算結果は余りと商でありその二つを割り算しようとしている。
mov.l #100000,er0
mov.w #123,r1
divxu.w r1,er0 ;100000/123=813 余り 1 e0=1 r0=813 er0=66349
正解はここでr0をer0に符号拡張してください。extu.l er0
divxu.w r1,er0 ;66349/123=539 余り 52(符号拡張した場合は6 余り 75である)
ただし、1回目の割り算で余りが出ない場合は正常に動きます。
divxu.w 命令は32bit÷16bit=商 16bit 余り 16bit ちなみに商が16bitに収まるように範囲は考えてください。