Hacker News new | ask | show | jobs
by Exuma 2363 days ago
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

1 comments

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?