Maybe something's wrong with my terminal. In dc:
3 _ 2 ^ p gives 0
_3 2 ^ p gives 9
3 2 ^ _ p gives 0
5 _ p gives 0
_5 p gives -5
You didn't intend that I should get those zeros, right?