Great resource - very detailed and your style is clear and readable. I'd happily recommend this to anybody who is studying an OS course (and in fact emailed a link to some people who teach similar courses to see if they would use it as background reading).
Comments
Hey, so this is a great work you did. One thing perhaps you can explain... I've stared at this example now for like 30 minutes...
https://www.bottomupcs.com/chapter01.xhtml
Section on "Masking"
How do you get 0x09 or 0x90?
I get how using <memory> & <mask> = <extracted data>...
so:
10100101
&
11110000
=
10100000
But I have yet to see how this is 0x90 or 0x09, perhaps I'm misunderstanding. I'm trying to understand the 'shift' piece of it
It’s a typo: he meant 0xa0 or 0x0a and the shift is the four positions to the right to extract the top nybble of the byte.
Thanks, I believe this should be clearer with https://github.com/ianw/bottomupcs/commit/d8dfd3dc6be5795f4b...
Great resource - very detailed and your style is clear and readable. I'd happily recommend this to anybody who is studying an OS course (and in fact emailed a link to some people who teach similar courses to see if they would use it as background reading).
It appears this section might be incomplete:
Branch Prediction
pipeline flush, predict taken, predict not taken, branch delay slots
Awesome, thank you... I thought I was going insane. So you shift 4 times correct?