Some great responses already. I would also highly recommend 'Code' by Charles Petzold and after that the Nand2Tetris companion book where you actually build a computer from gates up (on the computer using a Hardware Description Language). Building a computer yourself will probably be the best way to really know what is going on, especially after reading 'Code' and the other answers/sources here.