As a software developer, I realize that I have almost no idea about how the hardware actually works and how the interaction with software is achieved. I know, of course, some theory about computer architecture, but I still can't figure out how bits are represented in a hardware board or how a processor can do the things it does only using basic arithmetic operations.<p>Where could I learn about this stuff? Can you recommend any good course, videos or articles?
Knuth's MIX & MMIX are the languages of <i>TAcO</i>.<p>MMIX section is a free download<a href="http://www-cs-faculty.stanford.edu/~uno/fasc1.ps.gz" rel="nofollow">http://www-cs-faculty.stanford.edu/~uno/fasc1.ps.gz</a><p>More here: <a href="http://www-cs-faculty.stanford.edu/~uno/mmix.html" rel="nofollow">http://www-cs-faculty.stanford.edu/~uno/mmix.html</a>