When I run a debug session using FreeDOS and
DEBUG.EXE, I get a session like the following. I've added a description of what I saw as annotation on the image. Each step, I've printed out the stack contents. What's very confusing is why the stack is changing at all given the commands I am running - such as simple moves between registers.
Step 1: move AX into DS, and mysteriously, something starts eating the stack! what gives?
MOV DS, AX
Step 2: move a literal 0 value into DX, and weirdly a couple values on the stack start to change. Why on Earth is this happening?
MOV DX, 0000
... and so on. Look closely at the image to see how things change from step to step.
If anyone has a clue, I'd love to hear it.