Prev: how to prevent ACCESS_VIOLATION (C0000005) without 'SetUnhandledExceptionFilter'
Next: Advanced Linux Programming
From: Jim Carlock on 15 Feb 2007 23:13
P� Fri, 16 Feb 2007 04:05:48 +0100, skrev Jim Carlock posted...
: Microsoft seems to be offering the Kernel Mode Driver Framework
: once again. It's currently marked as Version 1.5 and ends up as a
: 2.4 GB iso image to download.
: They offer a smaller DDK package as well. Both provide versions
: of the MASM compilers, but you have to agree to Microsoft's terms
: of use. It's currently dated January 30, 2007.
"//\\o//\\annabee" <Wannabee.Wannabee.org> wrote:
: Thanks for the link (allthough I have not downloaded it completly
: yet) Why is it so big? I saw an assmebler tutorial around for
: drivers, and that was just a few kb.
They don't seem to require any sort of agreement to click on the
link... so the direct link to the 2.4 GB download (watch for wrap).
I just finished downloading it myself. They call it the Windows
Driver Kit now and state that the KMDF is a part of it. I don't
know why it's so big. I need someone to verify the md5sum on
it as I just finished downloading it myself. It took a full hour to
Post replies to the group.
From: Frank Kotler on 16 Feb 2007 00:23
> I'm about half-way through Jeff Duntemann's, "Assembly Language Step
> by Step". (excellent foundational book so far IMO, if a bit dated -
> still works though!)
Good old "balkward compatibility" :)
I don't know if it applies to the code in the book/CD or not, but in the
downloadable example code, there are a couple of errors. Incomplete
translations from the First Edition's Masm code, I think - variables
that need to be in ""s that aren't, for example. If you want to
discuss those... I'll have to refresh my memory :)
> Jeff's book uses NASM with the ultimate goal of moving to Linux for
> protected mode assembly. What are the various opinions of you who
> read and post to alt.lang.asm?
Seems like a good ultimate goal to me! :) ...although Windows is more
> Do you prefer NASM, MASM or some other
I prefer Nasm.
> Do you work mostly on a Unix like machine or Windows?
I work almost excusively in Linux - a little dosemu thrown in for old
times' sake. :)
> it matter?
Yes and no. "mov eax, ebx" is "mov eax, ebx" (unless it's "movl %ebx,
%eax" or "mov ( ebx, eax );"...), but if you'd like to see the result,
there's a different way to write to the screen. Different way to
allocate memory, different way to write to a file, different way to
exit(!). The "in between" stuff doesn't matter. The differences can be
eliminated by using libraries for the OS-specific stuff, if you want to.
> I may go through Wrox's "Professional Assembly Programming" next, but
> it uses GAS, and I'm not sure if 'non-intel' syntax will mess me up,
> as I'm beginning.
I'm not familiar with the book. I think you'll find that switching from
Nasm to Gas syntax *will* mess you up - messes *me* up! But I think
you'll get used to it soon enough (for sufficiently large values of
> Should a beginner go straight to MASM (and a
> tutorial that uses MASM) you think?
Why? Availability of tutorials might be a factor. Switching from Nasm to
Masm syntax won't mess you up as badly as Nasm->Gas, perhaps (or might
be worse, 'cause it's subtler), but it *will* mess you up (see the bugs
I mentioned above). That doesn't mean you're locked into Nasm forever -
if you're going to "switch", the sooner the better! - but you'll want a
"reason", probably. Perhaps you've got one. If you keep your mind on the
machine code, you can figure out differences in syntax.
> I use Windows mostly if that matters.
How much is "mostly"? Masm is okay (barring differences of opinion) for
Windows, but if you *ever* want to use Linux/BSD/QNX/whatever, Masm
isn't going to work. (Should work for ReactOS, if and when, I guess, but
> Any suggestions for a *modern* "learn by example" assembly book (in
> the pentium 3 to 4 range)?
The most extensive is probably Randy Hyde's "Art of Assembly" - uses HLA
syntax (yes, it will mess you up).
I like Jonathan Bartlett's "Programming From the Ground Up" - uses Gas
syntax (yes, ...)
If you don't want to "switch", there's:
Or take a look at the "Nasm32" project:
They provide the "example" part, you'll have to deal with the "learn by"
part yourself (don't you always?).
To the degree that you can become "multilingual" between various
assemblers, you'll find more tutorials and examples available to you
(obviously). So it may be worthwhile to endure/overcome the confusion
that different syntaces introduce...
But Nasm should do everything you need, you shouldn't "have to" switch.
From: Brian on 16 Feb 2007 10:13
On 15 Feb 2007 19:05:20 -0800, "Evenbit" <nbaker2328(a)charter.net>
>On Feb 15, 8:13 pm, Brian
>> I'm about half-way through Jeff Duntemann's, "Assembly Language Step
>> by Step". (excellent foundational book so far IMO, if a bit dated -
>> still works though!)
>I guess that qualifies you to be capable of writing a half-
no, I'd say not even that much, not yet. But looking up the road a
bit doesn't hurt.
>We prefer a CPU.
What is a CPU ? :)
>There is a potential to learn more if one is platform-agnostic. The
>CPU doesn't know what a OS is.
so a DOS interrupt works on linux too?
>> I may go through Wrox's "Professional Assembly Programming" next, but
>> it uses GAS, and I'm not sure if 'non-intel' syntax will mess me up,
>There is a potential to learn more if one is syntax-agnostic. The CPU
>doesn't taste syntactic sugar.
>> as I'm beginning. Should a beginner go straight to MASM (and a
>> tutorial that uses MASM) you think?
>Does MASM appeal to you?
too early in my studies to tell. I'm so new to assembly that I would
like direction in ways to *not* waste time learning. I was hoping
more for input as to the potential hazards in the learning cycle. ie,
should I learn AT&T syntax to work with gas, or is that a waste of
time. I realize that will often come down to personal preference, but
ironically, I'm too new to have a personal preference.
>> I use Windows mostly if that matters.
>Perhaps it matters to you...
hence the pronoun "I" followed up redundantly with "you".
>> Any suggestions for a *modern* "learn by example" assembly book (in
>> the pentium 3 to 4 range)?
>Source code from 'a book' can only take you so far. Finding source
>code from the 'net can be helpful. But 'experience' is the best
>teacher -- so write your *own* source code.
I'm really not that far yet, and prefer some more ground-work
foundational instruction - something as a base that I can tinker with
>When you run into
>problems, just post your code in here so that we can make fun of
>it. ;-) (just kidding)
hehe, wouldn't be the first time or the last time that I got laughed
Thanks for the input.
-remove CAPS from return email
From: Betov on 16 Feb 2007 10:55
Brian <stringchopperREMOVEALLCAPS(a)REMOVEALLCAPSgmail.com> �crivait
> I'm so new to assembly that I would
> like direction in ways to *not* waste time learning.
OK, then, first recommendation: Do not waste your time with evenbit.
< http://rosasm.org >
From: SpooK on 16 Feb 2007 13:51
Well, to ignore the usual inane prattle generators (see above)...
On Feb 15, 11:23 pm, Frank Kotler sm
> Or take a look at the "Nasm32" project:
> They provide the "example" part, you'll have to deal with the "learn by"
> part yourself (don't you always?).
I've updated NASM32 today. The download is a bit smaller due to
different inc/lib generation methods. I have included another Win32
I have also added XBOX support with the ability to assemble directly
to an XBE file from NASM. There is one XBOX DEMO included thus far.
My next step for NASM32 is to finish the X11 include files and demos I
have been so intermittently working on. No ETA on this, however.