Todo depende de la definición de las palabras; ¿Qué quiere decir exactamente con las palabras "arriba" y "abajo" en este contexto, y también sobre la implementación del sistema operativo o la arquitectura de la computadora.
Recuerdo lo siguiente de hace mucho tiempo, cuando estaba programando en el Commodore 64. La memoria entre la dirección $ 0800 (2048) y $ 9FFF (40959) estaba reservada para los programas BASIC. El código de su programa BASIC se almacenó a partir de la dirección más baja ($ 0800, creciendo a partir de ahí). La pila, para almacenar variables y direcciones de retorno de subrutinas, comenzó en la parte superior ($ 9FFF) de ese rango y creció hacia direcciones más bajas. Entonces, en este contexto, era lógico ver que la pila crecía hacia abajo, y cuando regresa de una subrutina, el marco de la pila de la subrutina se descarta incrementando el puntero de la pila, de modo que podría decir que estaba "subiendo la pila" cuando regresando de una subrutina.
No sé cómo funciona en versiones modernas de, por ejemplo, procesadores Windows o Intel x86. Tal vez la pila funciona al revés, es decir, crece de direcciones más bajas a más altas. Si ese fuera el caso, entonces probablemente usarías las palabras "arriba", "abajo" y "arriba", "abajo" exactamente al revés.