Hola Amigo:
Yo también soy nuevo en esto del ASM. De hecho no utilizo el MASM sino el TASM para mis ejercicios.
Por otro lado, no tengo acceso al código que dices haber adjuntado.
Sin embargo, te puedo decir que el SEGMENTO DE STACK (segmento de PILA), es una porción de memoria RAM reservada para almacenar variables transitorias que utiliza el procesador durante la ejecución de los programas.
Tú también pudes hacer uso de él por intermedio de órdenes tales como PUSH o POP.
Lo importante de esto, es que lo utilices o no, es necesario reservar espacio para este tipo de segmento.
Esto lo puedes hacer con la directiva:
.STACK 100h
Para ser un poco más claro te agrego un esquema de código:
; ESTE ES UN ESQUMA DE CODIGO
.model SMALL ; Declaracion del modelo de memoria
.stack ; Declaracion del segmento de pila.
; Puedes agregar el tamaño, aunque por defecto
; toma 100h
.data ; Declaracion del area de datos. Aqui se declaran
; todas las variables que vayas a usar.
.code ; Inicio del area de codigo del programa.
INICIO: ; Sector de comienzo del programa.
; En este espacio van todas las instruciones de
; tu programa
end INICIO ; Aqui terminan las instrucciones.
end ; Aqui termina el programa.
Bueno Amigo, esperando que esto te ayude, te mando un abrazo.