The use of rSP or rBP as a base register in an address calculation implies the use of SS (stack segment) as the default segment. Using any other GPR as a base register without a segment-override prefix implies the use of the DS data segment as the default segment.
hmmmmmmmm ok so you can access a parent stack frame after ENTER by jumping from rBP to the desired stack depth (by incrementing 64 x number of frames to jump back), then dereferencing THAT address to get the parent stack frame locals start, then adding the desired offset into your language's per-stack locals, then dereferencing THAT address (without stack segment, just data segment)
....i think?
it almost seems easier to just use the compiler to remember the stack-relative offsets