'pop' is implemented as a Lisp macro:
(defmacro pop (lis) `(prog1 (car ,lis) (setf ,lis (cdr ,lis))))
The 'pop' macro reads, removes and returns the first element from the list.
(setq stack '(a b c)) => (A B C) (pop stack) => A stack => (B C) (pop stack) => B stack => (C) (pop stack) => C stack => NIL (pop stack) => NIL stack => NIL
See setq. See also the push macro.