¿Por qué el uso de "int 21h" en Assembly x86 MASM hace que mi programa se bloquee?

Estaba tratando de hacer que mi programa aceptara entradas sin que el usuario tuviera que presionar enter, así que intenté lo siguiente:

mov ah,01h
int 21h

Pero simplemente bloquea mi programa durante unExcepción no controlada. Esta parece ser la forma de hacerlo de acuerdo con mucho de lo que he leído, entonces, ¿por qué no funciona para mí?

Ahora, soy bastante nuevo en este lenguaje, así que todavía no entiendo exactamente el proceso de cómo funciona este código, por lo que también agradecería cuál es la lógica detrás de aceptar entradas presionando enter y aceptar entradas sin que el usuario tenga que presionar entrar.

Mi sistema operativo es Windows, por cierto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta