Un byte son 8 bits.
Un word son 16 bits.
Un dword son 32 bits.
Un qword son 64 bits.
Un tword son 80 bits.
Un oword son 128 bits.
Cuando necesites sólo un byte usas al, ah, bl, bh, cl, ch, dl o dh.
Si, por ejemplo, vas a dividir 426 entre 8 no te interesa nada usar cx, porque si usas cx la división que estás haciendo es otra. Te interesa usar cl, y pones el 8 en cl, no en cx, y haces un div cl.
Con 2 bits sólo tienes valores entre 0 y 3, con lo que no te da para un dígito. En bcd se usan para cada dígito 4. 4 bits dan un rango entre 0 y 15, lo que da para representar cada dígito en decimal.
1234h es un word. Ocupa 16 bits. La h no cuenta, es sólo para indicarle al ensamblador que 1234 es hexadecimal, no decimal. Con 16 bits tienes entre 0h y FFFFh en hexadecimal, que es 65535 en decimal.
Tipos de datos hay de todos los tamaños. Un char ocupa un byte en codificación ascii. Si lo que usas es unicode ocupa 16, cada letra son 16 bits. Si vas guardar días del año, como son 365, con un word tienes bastante, pues llega a 65535. No te vale un byte pues sólo llega a 255. Si vas a guardar kilómetros entre capitales del mundo necesitas también un valor que al menos llegue a 20.000, un word. Si vas a guardarlos con decimales ya no te vale un word, necesitas un float, que son 32 bits, o un double, que son 64. Si quieres guardar kilómetros entre estrellas igual necesitas un long double, que pueden ser 80 o 128 bits, dependiendo de la plataforma.
El tamaño de los datos, excepto el char y el unicode o word, depende de la plataforma.