.MODEL SMALL .CODE .STARTUP MOV AX, 2 MOV BX, 3 CALL MUL_AX_BX CALL DIV_AX_BX .EXIT MUL_AX_BX PROC NEAR PUSH DX ; the content of DX will be overwritten ; save DX on the stack IMUL BX POP DX ; restore DX RET ; result is in AX MUL_AX_BX ENDP DIV_AX_BX PROC FAR USES DX CWD ; sign-extend AX IDIV BX RET DIV_AX_BX ENDP END