[ale] Assembly & C
Benjamin Scherrey
scherrey at proteus-tech.com
Wed Sep 24 01:41:55 EDT 2003
Reply intermixed & at bottom...
9/23/2003 7:38:08 AM, Christopher Fowler <cfowler at outpostsentinel.com> wrote:
>On Tue, Sep 23, 2003 at 04:28:15AM -0700, Stephen Turner wrote:
>> hey guys sorry i bug ya so much, if its any consolation its cause your the
>> best ;) in any case i was wondering whats the recommended book(s) for
>> assembly and C++ ? im getting serious about constructing a couple apps. if
>> you got some web sites those are much appreciated to :) naturally its
>> linux based ;)
>
>Many assembly books I've read focus on writing code in MSDOS. There are
>2 good books
>
>1. The Art of Assembly Language
Here's a link to the full text online. Good book.
http://webster.cs.ucr.edu/Page_AoALinux/0_AoAHLALinux.html
>2. Linux Assembly Programming
Haven't seen this book so can't say but here's an excellent online link for this...
http://www.linuxassembly.org/
>
>If you do not know C I would suggest you leanr C before C++. Then jump
>over to C++. I usually start with a 21 days book then get more after
>those
The C++ book to learn correct C++ programming from is "Accelerated C++" by Koenig &
Moo. It uses the latest language features (which greatly simplify things like string handling,
containers, and exceptions) and works well the the g++ 3.x compiler under linux.
C is not the language to learn before learning C++. C++ is a superset of C but C++ is also
a language that enforces certain constructs, implements OO capabilities, and supports abstractions
and programming concepts (via the compiler) that are far outside the scope of C. To be a C++
programmer you need to approach it from these directions otherwise you lose most of the benefits of
the language. To do this you will have to unlearn a lot of old-C idioms so its counter-productive. C
was designed effectively to be a platform-independent or portable assembly language and
succeeded remarkably well which is why it is the language of choice for operating system level
development. C++, being a superset of C, can be used as an even better platform independent
assembly language (as a language) but, unfortunately, ABI standards are just not there to support
this portability between compilers so C still holds this turf rather strongly although it has made
remarkable inroads in the embedded development market.
Your request to learn C++ & asm, however, leads me to wonder what kind of application
development you are embarking on. Rarely is assembly language justfied in an application
(regardless of how cool it is to play at that low level with your computer and be able to measure your
app size in bytes). If it is justified then you may prefer learning C rather than C++ but my bet is that
you're best off just going for C++ right now (or even python if its a high-level app) and saving the
rest til later.
best regards,
Ben Scherrey
More information about the Ale
mailing list