Hmmm. I like doing both. Rather it is a lot easier to understand what's going on while disassembling when you actually know assembly, but i have managed without this knowledge before. . . I was disassembling combat arms, I ended up just looking through it in IDA many times until I basically understood how it worked. I was mostly relying on obvious things like function calls and strings though.
There was a point that it seemed there was a dead end, but there was one small branch that lead you out of dangerous path of errors, and thus ended up bypassing all the checks in combat arms. xD Then i ran into another error i Didn't even notice. The program checked the size/hash (can't remember which one) of engine.exe . But at that point i was starting to become busy again anyway so I deleted everything regarding the disassembly. That was fun indeed.
The main reason i'm learning assembly is to better understand how everything works on a lower level, and to aid with understanding in disassembling stuff.
By the way, On topic. Yeah i've been to the wikibook before, that is basically where I learned about what the necessity of
Code:
push ebp
mov ebp, esp
sub esp, 12
kind of stuff was. I think it's called the function prologue or something. it was quite helpful, that was one of the main things I didn't understand