How is code stored and executed on the C++ abstract machine?

  abstract-machine, c++, program-counter

In the first book I read about c++, it went a little bit into the details of how code is actually executed on a machine (it mentioned the program counter, the call stack, return addresses, and such). I found it really fascinating to get to know how this stuff works, although I’m aware that it isn’t really necessary to know how the computer works to write good code.

When reading up on the same subjects on this Q/A-site, I found out that it by no means has to be the way I had learned before, because what I had read about only was a certain implementation of c++, depending on certain computer architecture and a certain compiler. C++ code could as well run on something completely else, as long as one has a compliant compiler which behaves the "right" way. What the right way is then defined by the standard and the behavior of an "abstract machine" (I hope I got it right so far).

Of course, I’d still like to know whether concepts like the code-segment of memory or the program counter are still "somehow" pictured in the standard, and if they are, to what extent are they pictured?
How is the concept of code-pieces being executed one after another described in the abstract machine?

Source: Windows Questions C++