I'm sure this will benefit anyone else on a computer science fundamentals back-fill journey..
I'm slowly learning Assembly and while I'm starting to understand the core of it (MOV, JUMP, etc) and can see how these instructions translate to Opcodes for the CPU to process. I'm still struggling to understand how a modern program - Lets take an internet browser for example would translate into such machine code.
I have achieved primitive applications with assembly e.g. store 1 number in a register..another number in a second register and then add the 2 numbers together - Simple, Logical, Makes sense.
The next step I took was to work on a simpler system in hopes it would make things clearer - I worked on the almighty 6502 CPU in the NES.
I watched a few tutorials of people programming their own NES games and again the logic of it made sense. The sprites are stored in memory on the cartridge and are 'called' as required in effect making the games we all love.
Unfortunately the NES didn't clear up my computing confusion - It still doesn't make sense to me (on a hardware level) how an internet browser translates into such machine code.
My Learning Journey Summary:
- Assembly Language & CPU Opcodes
- Programming the NES 6502
Lets take a few steps back - Instead of the internet browser, lets just look at the Operating System itself - Windows 95. In particular its 'graphics'.
Would the PC (give or take) work in the same fashion as my NES example above? To clarify, would the thumbnails and icons etc be stored in memory like sprites on the NES and then used to construct what the end user would see as the desktop?