Divide Overflow and Sign Extension 

The CBW and CWD instructions:

CBW and CWD are two instructions used to facilitate division of 8 and 16 bit signed numbers. Since division requires a double-width dividend, CBW converts an 8-bit signed number (in AL) to a word. The MSB of the AL register is duplicated into AH register.
Similarly, CWD converts a 16-bit signed number to a 32-bit signed number (DX,AX). Here the MSB of the AX register is duplicated into AX register.

Divide Overflow:

Overfow occurs when the result of a division does not fit in a byte if the dividend is a word, and in a word if the dividend is a double word. Such an oberflow terminates the program with "Divide Overflow" message! This needs to be anticipated and hence can be avoided.

Overflow occurs if:
	Byte form: AH>=divisor
	Word form: DX>=divisor
Preparing Dividend

To avoid overflow, the dividend has to be prepared as follows.
To divide a word in AX by a word, AX must be converted to a doubleword in DX:AX.

If signed: 
	CWD  (called sign-extension)
If unsigned: 
	MOV DX,0

To divide a word in AL by a byte, AL must be converted to a word in AX.

If signed: 
	CBW (these do not affect Flags)
If unsigned: 
	MOV AH,0