Just for those that mentioned it: The only thing assembly is used for these days is MMX/SSE/etc, because processors these days are REALLY complex and you'd have to study a long, long, LONG time to be able to write better 'normal' assembly than a modern compiler.
In the old days(everything before pentium iirc), instructions took a certain number of clock cycles and that was that - you just strung them together however you wanted picking the fastest ones (possibly trying to line up memory access so it used the cache a lot but not much else) and that was that.
These days, multiple instructions can be executed at the same time, and new instructions can start executing before old ones really finish, and there are 100s of conditions that can add a few cycles where the processor has to sit and wait on one thing or another, or take an extra cycle to calculate something, and they can even change the order of your instructions so they run faster. Such things make the old 'cycle counting' game insanely difficult. In fact, in some ways it is impossible because things like the OS running in the background could totally destroy all your usage of the cache and cause other problems.
Most optimizations these days involve settling for approximations (such as calculating square root to say 4 places instead of the ~7 the FPU will calculate for a 32-bit floating point number), using better algorithms (such as using a radix sort instead of a bogo sort), and using metadata about the task being done by the program to take shortcuts(for ex, if your program is going to read in 1K each time and process each byte seperately, it woudl be better to read in 1K and loop though it after loading than to have a loop that loads a single character and then processes it and then reads another one at a time).
In reguards to the OP: Games are mainly programmed in C and C++ these days. For a beginner, I'd suggest learning C++ first because IME that is the most common language in use in general programming today.
Another language I would suggest you learn (solely to increase your programming ability) is Common Lisp. The book ANSI Common Lisp (ISBN: 0-13-370875-6) is a good introduction to the language IMO, but it will not introduce you to programming itself (so you need to learn another language or find a Lisp book that intros programming as well before reading that book).