START: MOVE.L #31,D4 loop: ASL.L #1,number SCS D2 AND.L #1,D2 ROL.L #1,remainder ADD.L D2,remainder MOVE.L remainder,D3 SUB.L divisor,D3 BMI keep_going ADD.L #1,number MOVE.L D3,remainder keep_going: DBRA D4, loop move.l number,d4 ; 2 move.l remainder,d5 ; 500000 RTS number: dc.l 2500000 divisor: dc.l 1000000 remainder: dc.l 0