DIV is for integer division. 10/20 is 0, and the remainder is 10.
8-bit divide uses AH:AL (or AX) as the source register, placing the result in AL and the remainder in AH. (You seem to have left AH uninitialized).
Fixed point representation of 0.5 is possible with integer arithmetic by first multiplying the source '10' by number of fractions.
e.g.
Base 10:
10 * 1000 = 10,000 = "10000 / 1000" = "ten"
10000 / 20 = 500 = " 500 / 1000" = "zero point five"
Base 16:
10 * 256 = 10 << 8 = 0x0A00 = 10*256 / 256 = "ten"
0x0A00 / 20 = 0x0080 = 128 / 256 = "zero point five"