por brasilma » 10 Dez 2006 14:22
Olá Mast,
Como o colega já esplicou o Stack é apenas um indice que aponta para a memória RAM onde são guardados os endereços de retorno das subrotinas (CALL / RET) e outros valores que não se deseja que sejam modificados (PUSH / POP).
Quem define sua posição é o programador, no caso do assembler, ou o próprio compilador, no caso do C, Basic, Pascal.
Ele pode ter quantos níveis a memória permitir.
Quando ele armazena um endereço de retorno, 2 bytes são utilizados, pois o PC é um registrador de 16bits.
Não é necessário apagar um nível da pilha, basta retroceder o endereço do Stack em 2 bytes.
Overflow ocorre qdo o endereço da pilha excede o limite que determinou para ele, sobrescrevendo dados ou atingindo o fim da RAM.
Abraços,
MArcos.
" A Teoria orienta e a Prática decide"
