Obter entrada de string e exibir entrada com o DOS interrompe o MASM

No MASM, criei uma variável de buffer para reter a entrada de string do usuário no teclado. Estou preso em como manter a entrada de seqüência de caracteres nessa variável de buffer. Eu não tenho nenhuma biblioteca vinculada como a irvine e quero fazer isso com as interrupções do DOS. Até agora eu tenho algo parecido com

            .model small

            .stack 100h

            .data
buff        db  25 dup(0), 10, 13
lbuff       EQU ($ - buff)              ; bytes in a string

            .code
main:
            mov ax, @data
            mov ds, ax              

            mov ah, 0Ah         ; doesn't work
            mov buff, ah        ; doesn't seem right
            int 21h                 


            mov     ax, 4000h       ; display to screen
            mov     bx, 1           
            mov     cx, lbuff           
            mov     dx, OFFSET buff     
            int     21h 

            mov ah, 4ch
            int 21h

            end main

Eu suponho que o uso de 0Ah esteja correto, pois é para ler a matriz de entrada de caracteres em buffer.

questionAnswers(3)

yourAnswerToTheQuestion