I started digging a few times, but, I prefer the "magic".
I started digging a few times, but, I prefer the "magic".
Hopefully, there will never be a time when at least some folks are not reading books such as:
- On startup processing begins at a known address, and you put the bootloader code over there. Hardware engineers can guarantee this for you.
- Every time you execute an assembly instruction, the program counter either explicitly jumps to a new location or else it just increments by 1. Hardware people can also make this happen as easily as implementing an adder.
Don't get me wrong, there are LOTS of layers between the hardware and most "useful" programs any of us will ever write. But all of them are pretty understandable. They're often not very complicated, just tedious.
Doesn't the one explain the other ? It may be turtles all the way down, but at some point there's a fundamental turtle - be it LEA or CMP ?