I haven't done assembly language programming for a decade or so, and the last time I did it was in school, but I really wanted to get a better grasp on the internals of x86 architecture (and computer organization in general), so I am trying to understand now how the granular access to 32-bit & 64-bit general purpose registers could happen. I've only had some experience with 16-bit registers (assembly in DOS), and that was easy. E.g.
AX ~ |AL|AH|
But what about EAX? Would something like this be legit?
EAX ~ |AL|AH|EAL|EAH|
Everywhere I looked it was just a simple
EAX ~ |AL|AH| EAX |
Not to mention 64-bit registers:
RAX ~ |AL|AH| EAX | RAX |