Agustín,
Tenes que utilizar WORD PTR o BYTE PTR cuando un parámetro accede a memoria, hay más de una variante de la instrucción con el mismo mnemónico (una que trabaja con la palabra de 16 bits y otra con el byte) y si hubiera otro parámetro en la instrucción el mismo no permite determinar cual de las variantes de la instrucción hay que utilizar. Es decir, se deben usar cuando hay ambigüedad respecto a cual variante de la instrucción se debe usar.
Por ejemplo supongamos que queres incrementar el contenido de cierta posición de memoria apuntada por la dirección segmentada DS:BX. Hay 2 variantes de esa instrucción, una que incrementa el byte apuntado por la dirección y otra la palabra. Si quisieras incrementar el byte usarias por ejemplo INC byte ptr [BX].
Otro ejemplo, suponete que queres cargar la constante 5 en la palabra ubicada en la dirección segmentada DS:BX. Ahí usarías MOV word ptr [BX], 5. En cambio si la palabara que queres cargar está en el registro AX no tendrías que indicar la variante porque el parámetro AX en MOV [BX], AX no tiene ambigüedad.
No es un error descalificante pero abolla el ejercicio.
Sobre tu otra pregunta, los cálculos que tenés que hacer dependen del código assembler que hayas implementado al hacer el programa. Si preservás más contexto o menos contexto seguramente algunos cálculos varíen.
Saludos,
Gustavo