[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