From: f0dder on 28 Aug 2005 17:29 "JGCASEY" <jgkjcasey(a)yahoo.com.au> wrote: >> I would suggest Charles Petzold's "programming windows" ... > > > This is perhaps the best book for a Win32 API beginner > who knows how to program in C? I haven't seen any better, but haven't been looking for a while. If you know a decent amount of 32bit assembly, have studied and understood a few of Iczelion's tutorials, and have a moderate IQ, using Petzold's stuff for assembly programming is quite easy. > As good as Iczelion's tuts may be they are not aimed at a Win32 > API and MASM novice even if they do know some assembler and would > be complete gibberish to a absolute assembler beginner. I'd say they work pretty well for somebody who knows his way around assembly but needs to learn win32 programming - but they're certainly not for people who don't know assembly (I've seen enough people various places who can barely figure out how to copy/paste from them). Petzold is a bit more indepth, I guess. > It interests me that those that have the ability to > write an assembler lack the ability to write their > own tutorials, particularly tutorials to get newbies > interested in assembler. Probably because they focus all the effort in writing the assembler, adding features, removing bugs, etc. And while some of them are excellent programmers, they might not be the best documentation writers. > I think assembler will die out with the old guard in any hobbyist > sense and become simply a side tool for systems programmers. Not as long as x86 is around :) - but people hoping for an "assembly rebirth" or writing full-scale applications in assembly are very few.
From: JGCASEY on 28 Aug 2005 18:34 f0dder wrote: > "JGCASEY" <jgkjcasey(a)yahoo.com.au> wrote: > > >> I would suggest Charles Petzold's "programming windows" ... > > > > > > This is perhaps the best book for a Win32 API beginner > > who knows how to program in C? > > I haven't seen any better, but haven't been looking for a while. I found one tutorial that looks promising. Someone advised me that learning the win32 APIs with C might be a better way than trying from an Assembler base. As C is a language I have reasonable skills in I have taken their advice. http://www.winprog.org/tutorial/ The question is, will I ever be motivated to use assembler again? I have found there is a lot of C support for the projects I am interested in but zero support in assembler or from assembler programmers. The thing that struck me after my foray into MASM, NASM, FASM,GoAsm,RosASM and even HLA is that although there are many C compilers to choose from at least they all use the same syntax and one beginner tutorial fits them all! John
From: f0dder on 28 Aug 2005 18:47 "JGCASEY" <jgkjcasey(a)yahoo.com.au> wrote: > I found one tutorial that looks promising. Someone advised > me that learning the win32 APIs with C might be a better > way than trying from an Assembler base. As C is a language > I have reasonable skills in I have taken their advice. Might be a good idea, considering the WIN32 API was written for the C language, and since there's so many code snippets and references available. Besides, once you're familiar with win32, you can directly use that experience in assembly. And you can of course always play with win32 stuff in C/C++, and link in external assembly modules - then you can play with both worlds at the same time. > The question is, will I ever be motivated to use assembler > again? I have found there is a lot of C support for the > projects I am interested in but zero support in assembler > or from assembler programmers. I still use assembly. Never really bothered using it for full-size projects, but I do use it. Sometimes because it's fun, sometimes because it's necessary, sometimes because of the speed, and sometimes "just coz". As for support, the win32asmcommunity is generally a nice place, while ALA is one big flamefest. *shrug*. > The thing that struck me after my foray into MASM, NASM, > FASM,GoAsm,RosASM and even HLA is that although there are > many C compilers to choose from at least they all use the > same syntax and one beginner tutorial fits them all! As long as you stick with the basics instructions and don't use any of the more fancy features and macros, the syntax discrepancies between most of the assemblers aren't that bad...
From: JGCASEY on 28 Aug 2005 19:22 f0dder wrote: > "JGCASEY" <jgkjcasey(a)yahoo.com.au> wrote: [...] > > The question is, will I ever be motivated to use assembler > > again? I have found there is a lot of C support for the > > projects I am interested in but zero support in assembler > > or from assembler programmers. [...] > As for support, the win32asmcommunity is generally a nice > place, while ALA is one big flamefest. *shrug*. It is not so much how nice the community is as to how interested they are in a particular project. There is a wider range of interests in the HLL community. > > The thing that struck me after my foray into MASM, NASM, > > FASM,GoAsm,RosASM and even HLA is that although there are > > many C compilers to choose from at least they all use the > > same syntax and one beginner tutorial fits them all! > > As long as you stick with the basics instructions and don't use > any of the more fancy features and macros, the syntax > discrepancies between most of the assemblers aren't that bad... But the tutorials use the high level directives and the macros. Just as it is suggested it is better to learn to use the APIs before you use the MFCs so too it is better to learn what is under the hood of a macro or directive rather than learn to use them by wrote without understanding. And where do you learn that? With DOS? It isn't in the Iczelion's MASM32 tuts. John
From: f0dder on 28 Aug 2005 20:00
"JGCASEY" <jgkjcasey(a)yahoo.com.au> wrote: >> As for support, the win32asmcommunity is generally a nice >> place, while ALA is one big flamefest. *shrug*. > > It is not so much how nice the community is as to how > interested they are in a particular project. There is > a wider range of interests in the HLL community. That might be true - I'd still say there's a fair amount of different interests among assembly programmers, though; just at the win32asmcommunity board, you'll see IDE and OS design, game-style programming (evilhomer2k is doing a lot of stuff there), networking, etc etc etc. >> As long as you stick with the basics instructions and don't use >> any of the more fancy features and macros, the syntax >> discrepancies between most of the assemblers aren't that bad... > > But the tutorials use the high level directives and the macros. Yeah - since they tend to be teaching "assembly programming in win32" and not "assembly programming". I tend not to use the high-level control macros (.IF and such) myself, but that's because I mainly use assembly as a "C++ side tool", to quote Betov. If I wanted to do full-app assembly, I'd take advantage of the macros, since they do make life easier. I just don't see any point in full-app assembly, so I don't :) > Just as it is suggested it is better to learn to use the APIs > before you use the MFCs so too it is better to learn what is > under the hood of a macro or directive rather than learn to > use them by wrote without understanding. And where do you > learn that? With DOS? It isn't in the Iczelion's MASM32 tuts. I learned assembly by other people's snippets, debugging in assembly mode, and the intel references, mostly, as there weren't any decent books around. Dunno if there are any now, as I don't need them. And the "best way" to learn will differ from person to person, depending on your background et cetera. For somebody with a C background learning 32bit x86 assembly, I'd say http://www.madwizard.org/dl.php?file=tutors.win32asm mixed with assembly source-listing from your compiler (either without optimizations or with size-optimizations - avoid speed optimizations as they're pretty hard to read), and the intelĂ˝ developer manuals at http://developer.intel.com/design/pentium4/manuals/index_new.htm would be a pretty good way to start. Then there's Randall Hyde's Art Of Assembly, which I'll probably get flamed to death for mentioning, since the 32bit version teaches his HLA syntax. Oh well :) |