From: f0dder on
"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

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
"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


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
"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 :)