Nor can I see how the fact that some black bears are brown refutes the assertion that most of them are black.
I wasn't trying to refute that.
Note that I said "This is also something that only applies up to a certain level of abstraction", not "This is also something that is completely false". I'm not saying that knowledge of assembler or machine internals is useless. I just wanted to point out that it's only useful to a point.
To clarify things a bit: There seem to be two different discussions going on here:
a) Will knowing assembler and machine internals help you understand and reason about how your code will be executed by the machine and how it will perform?
b) Will it help you find mistakes?
My position on a is: Yes, but only up to a certain level of abstraction. And even for lower level languages, you should not rely on it too much (which is to say you shouldn't micro-optimize based on what you think the generated assembly will look like without benchmarking first) because due to compiler optimizations the generated assembly might look very different from what you'd expect.
My position on b is: No.
This post has been edited by sepp2k: 02 May 2012 - 08:38 AM