From: Tom Serface on
Yes, there is something strangely unsatisfying about taking your notebook
computer to the "reading room".


"David Lowndes" <DavidL(a)example.invalid> wrote in message
> >So back in the days the Windows SDK was made not only by header files but
>>also by paper-based documentation and books?
> Yep, a bookshelf full - something you could peruse in the reading room
> and discover some useful API that you weren't aware of :)
> Dave

From: Geoff on
On Sat, 14 Nov 2009 10:16:04 -0500, Joseph M. Newcomer
<newcomer(a)> wrote:

>When MASM was developed, computers barely existed. We had to walk barefoot through the
>snow to get our listings...

Up hill, both ways.

I still have my 286 machine with a Z80 ICE for cross development.
Monochrome CRT.
From: Giovanni Dicanio on
"Tom Serface" <tserface(a)> ha scritto nel messaggio

> But, I can read any documents at all now that I have Office 2007
> installed.

Tom: at least tin my experience, with Office 2007 I can't open the MASM docs
"out of the box" (the registry hack cited by David is required).


From: Joseph M. Newcomer on
Thanks all. Some links were useful, some were not. There is no documentation for
anything important; a couple of the links were fictional works about what assemblers might
do someway, but using the constructs in a real program causes the assembler to crash
(Microsoft wants to legitimize the use of this word by guaranteeing that no one will ever
again be able to deduce what "crash" means, by hiding all useful information).

But it got me further than I had been before. Today's problem: how to use a struct
declaration when the pointer to the structure base is in a register.

The construct
mov eax, [ecx].StructureName.field

causes the assembler to "stop working", whatever that now means. (It probably means the
code has never been tested...syntax errors should not cause programs to take internal
failures that terminate their execution...)

Anyway, I'm off the net for a week, teaching in Columbia MD all next week.

(By the way, the documentation on STRUCT is, to put it mildly, totally useless, but at
least the documentation is largely self-consistent in that regard, being almost uniformly
totally useless)

On Fri, 13 Nov 2009 12:03:27 -0500, Joseph M. Newcomer <newcomer(a)> wrote:

>Has anyone ever encountered the documentation for MASM. Not the useless garbage in the
>MSDN, but real documentation. THe kind that gives the syntax of identifiers, for example,
>or explains what options are available with the OPTIONS directive (not just a list of
>them, but the actual explanations)? Or the syntax of a string, or of an initializer?
>I'm reverse-engineering some of this as I am designing a course in x86 assembly code
>(really! Turns out people need to *read* it), but I'd be happier if I found real
>documentation somewhere.
>The last time I wrote assembler it was for a device driver in MS-DOS, in 1989. But
>apparently some things never go away, such as the need to know it, but nobody teaches it
>any longer.
> joe
>Joseph M. Newcomer [MVP]
>email: newcomer(a)
>MVP Tips:
Joseph M. Newcomer [MVP]
email: newcomer(a)
MVP Tips:
From: Liviu on
"Joseph M. Newcomer" <newcomer(a)> wrote...
> [...] Today's problem: how to use a struct declaration
> when the pointer to the structure base is in a register.
> The construct
> mov eax, [ecx].StructureName.field
> causes the assembler to "stop working" [...]

That construct works with v6.15 as documented. What version are you
using, and what's the full context, including the ml.exe command line?