For X86 assembly, of course, it's really, really easy:
Code:
Dividend Dividend size Quotient Remainder
-------- ------------- -------- ---------
AX 16 bits AL AH
DX:AX 32-bits AX DX
EDX:EAX 64-bits EAX EDX
The "modulus" (C/C++ "%" operator) would just be the remainder of integer division (in X86 assembler!).
As far as your microcode (without a real "divide" operation): Randyding's suggestion sounds reasonable.