Re: which book to start with...?



naunetr wrote:

hi group!

just dl'ed Dr. Paul Carter's tutorial (http://drpaulcarter.com/pcasm/)
and also PGU from (http://savannah.nongnu.org/projects/pgubook/). i
also borrowed "Assembly langauge step-by-step" by Jeff Dunteman from
library. so which one does the group experts reccomend to start with?

It depends on your objectives.

my os is linux and i dont have windows.

Both Paul Carter's and Jonathan Bartlett's books are applicable to
Linux, indeed the latter is specifically for Linux.

is it necessary to start with
dos as many books say?

Again, depends. Start with DOS if any of the following is important for
you:

1. Want to learn the DOS API.
2. Want to call BIOS routines.
3. Want to learn the peculiarities of 16 bit x86 architecture.
4. Want to program in a "unrestricted" environment that allows
access to all the features of the CPU and hardware.

As Herbert is wont to point out often, the above four are not assembler
programming per se, but they are often the objective for many people to
learn assembler.

If you simply want to focus on x86 assembler programming and you are not
interested in 16 bit legacy details, nor in using "privileged"
instructions, or in "talking" to hardware directly, then Linux should
be perfectly fine for you. As Betov says, 32 bit assembler is even
simpler in some regards than the 16 bit variant.

then i'll have to use DosEmu+FreeDOS.

Or FreeDOS or MS DOS or Windows under a Virtual Machine. IIRC VMWare is
freely available for Linux.

is that okay?

I suppose so. DOSEmu and FreeDOS should be sufficient for starting with.
But certain things like changing to protected mode etc. cannot be done
inside DOSEmu. You'll need "real" DOS for that.

or can i go with linux?

Yes. This is what I'll recommend. In any case, when you are ready for
advanced, system level programming, you can always learn DOS, BIOS and
x86 system instructions, when needed.

will i miss something important if i
dont start in dos?

Depends on what's important to you?

also which is reccomanded..nasm or gas?

I use NASM and will recommend it. But GAS is the canonical assembler
under UNIX and, sooner or later, you may want to learn it's syntax too.
Also note that Jonathan Bartlett's book deals only with GAS, so if you
go with that book, you'll have to learn GAS.

In any case, once you learn the basics of assembler programming, it
trivial to learn the syntax of another assembler. It like learning
British English and then learning the differences with American English
or Australian English etc.

thanks a lot for all answers.

No problem. All considered, I recommend you to go with either Linux +
NASM + Paul Carter's book or Linux + GAS + Jonathan Bartlett's book.

Unless you _want_ to, it may not be the best choice to start with DOS.

There are also other assembler out there, but since mention of some of
them is quite controversial in this group, I'll let the braver souls do
that.

:-)

Best of Luck.

.



Relevant Pages

  • Re: Segmentation in real mode
    ... Except that Windows does have its "prohibition" on "direct hardware ... what you're saying about 32-bit programming is still ... Linux is often ignored in this context but it's actually arguably the best ... a "portable assembler", so, you know, it's not really got anything ...
    (alt.lang.asm)
  • Re: which book to start with...?
    ... Want to learn the DOS API. ... i dont really mind about the system but right now im stuck with Ubuntu. ... programming per se, but they are often the objective for many people to ... 32 bit assembler is even ...
    (alt.lang.asm)
  • Problem with NASM-0.98
    ... 2nd ed., which is subtitled, "Programming with DOS and Linux". ... is about DOS and I'm exploring that in a DOS window on an old PC running Win95. ... I haven't found this error message anywhere in the source code for the ... nasm assembler, so it might be coming from Linux itself. ...
    (comp.os.linux.misc)
  • comp.lang.asm.x86 - Frequently Asked Questions - general 3
    ... x86 Assembly Language FAQ - General Part 3 of 3 ... Benjamin David Lunt's DOS assembly page ... Eric Isaacson's A86 Assembler and D86 Debugger Page ... Quantasm's x86 and Pentium Programming Tips and Info ...
    (comp.lang.asm.x86)
  • Re: x86-64 assembly problems
    ... 16-bit assembly under DOS on their 32-bit machine. ... bit assembly programming? ... And every moment spent learning DOS is ... Learning the DOS API necessary to write simple assembler ...
    (alt.lang.asm)