You can learn so much about asm programming by simply looking at compiler output. I've learnt that lea is remarkably useful for arithmetic.