Whenever I’m feeling burnt out lately, I lightly read about ARM architecture in preparation to learn some ARM assembly. This is my first time learning about CPU architecture in any kind of detail. I’ve only made it through the first couple of chapters. It’s pretty amazing to read about how things work so close to the hardware. Ironically however, I’m having a difficult time visualizing various aspects of how a CPU works - I would think visualizing a model would become easier with fewer layers of abstraction!
Part of my problem is the vocabulary, but also how the instruction cycle, memory and addressing all work. I know what registers, bits, bytes and words are, but I don’t understand the logic behind setting the lowest 2 bits to 0 to ensure word-boundaries are maintained by the program counter. Why isn’t all storage aligned with word bounderies as well? If your data is two bytes long, but crosses a word boundary, does that mean it will take multiple cycles to fetch? Hex makes me a little dizzy, especially when because I’m struggling to remember endianness with MSB and LSB. Fields, pages and MEMC are way over my head.
There are diagrams online when I do an image search, but I wonder if there are any animated versions of the diagrams. Maybe I should make a physical model from egg cartons and peanuts or something.
Anyhow, I’m just swimming around in this stuff. Maybe there’s a better book on ARM assembly for casual learners. Or maybe there’s a good video. Or just a better way to learn (like code first, ask questions later). Suggestions?