It's been a few years since I read it, but Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level by Randall Hyde was quite good. It gives good examples of how C/C++ code translates into assembly, e.g. what really happens when you have a big switch
statement.
Also, altdevblogaday.com is focused on game development, but the programming articles might give you some ideas.