From my experience the answer is YES, there is no way. Hope someone can help me! I'm very intent here, but also very confused!
Anyway, why do I say that a complete beginner can't learn asm?
Well, I've noticed that there are NO tutorials, NO books, nothing that explains stuff like this:
invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OK
MessageBox? Null? Where is this stuff from? Why is there? What does it all mean??? Ok, I know what it means, but it's not explained why in that order. In other words, the program is not usually dissected. If you give knowledge but don't explain how to use it, what good is it?
I've looked at books like The Art of Assembly, Programming from the Ground Up, The Zen of Assembly Language, Guide to Assembly Language - A Concise Introduction (yeah right), another called PC Assembly Language, etc. Very useful, I think, just not that useful for someone who doesn't know how to make an exe that "does" things. Now I've done some things in C++ a few years ago, and I could build a program with a GUI and all (forgot it now). With asm, I don't know where to start or what to do. Nothing seems to be explained as well as it is in a good ol' "Learn C" book.
My main goal is to learn asm so that I can do something more than just Cheat Engine on games like Minesweeper or Dungeon Keeper or Evil Genius. I say this because there are limitations to what I can do, and to how much I understand memory and how it works (I would hope I can actually browse memory and find things like unit production speed, which is something that I can't do now seeing how that "variable" (if it is one) doesn't change very often).
Any ideas? Or just go back to C++ and forget asm?