[ale] Assembly Language?

Byron Jeff byronjeff at mail.clayton.edu
Thu Oct 24 13:44:25 EDT 2013


On Wed, Oct 23, 2013 at 04:33:18PM -0400, Ron Frazier (ALE) wrote:
> Hi all,
> 
> I haven't programmed any assembly language since college 27 years ago.  That was 6502 assembly, and we had to build and program something similar to the controller in a microwave oven.

For this assembly, or other low level languages, can be your friend.

> 
> For some reason, I find myself gravitating to wanting to try assembly again.  I don't have any delusions about doing massive projects or becoming employed with it.  It's more of an intellectual curiosity thing.
> 
> So, I had a few questions.
> 
> Have any of you worked with Intel x86 32 bit assembly on Linux?  How about 64 bit?
> 
> Is anyone familiar with HLA, or High Level Assembly, which uses macros (I think) to support constructs like if/then, while, etc?  This is in a book I may buy.
> 
> What would be necessary to use assembly in Linux (Mint / Ubuntu)?  What about HLA?
> 
> Can you even truly run assembly on a modern OS?  IE, can you even get access to the registers, etc?
> 
> What would be a good way to learn it?
> 
> None of this is critical, but I thought it would make for interesting discussion.  I cannot say how far I'll end up pursuing this, but I'm threatening to buy this book, which I've been eyeing for a while.
> 
> http://www.amazon.com/Art-Assembly-Language-Randall-Hyde/dp/1593272073
> 
> The Art of Assembly Language
> 
> Any help is always appreciated.

Everything else, not so much. Back in 6502/6809 world the performance
constraints and system limitations (memory etc.) really dictated assembly
as a target.

But you lose a lot when you do it. The lack of abstraction (not your
reference to HLA for example) and loss of portability are really killer.

You may find it funny that virtually all embedded systems forums have
ardent followers that point out that in both terms of productivity and
performance, that development in higher level languages (C, Basic, etc.) is
better even in microcontroller environments. 

My typical counsel is to new embedded systems folks is that learning
assembly is useful when assembly is used as the communication lingua franca
of the community. But honestly it's becoming rarer as time goes on. For
example almost all Arduino development is done in an HLL.

So onto my advice. Relearning assembly will better serve you if you work in
an environment where its application can still be of some benefit. That
would definitely be in the microcontroller world. I would suggest getting
some microcontroller development kit of the PIC, AVR, or ARM variety and
invest in learning assembly for one of these targets. My latest project is
starting development on the Microchip PIC 24FV family. These 16 bit parts
really fly (up to 20 MIPS), and have a rich instruction set that's well
under 100 instructions. They me my personal requirement that they be self
programmable so that development can be done without having to have an
external programmer. But as I alluded to before, finding assembly resources
is getting tougher. Virtually everyone programs these chips in C. I had to
do some digging to figure out how its assembly was structured.

BTW I'm not a total assembly nut. In the past I've written my own
programming language/compiler for such chips. My current projects is looking at the
application of the FORTH language in these types of environments. FORTH is
probably the ultimate HLA, where from a small set of primitive operations,
and a trivial compilation syntax, rich high level applications can be
developed interactively on the target platform.

Hope this gives you some insight...

BAJ

> 
> Sincerely,
> 
> Ron
> 
> 
> 
> --
> 
> Sent from my Android Acer A500 tablet with bluetooth keyboard and K-9 Mail.
> Please excuse my potential brevity if I'm typing on the touch screen.
> 
> (PS - If you email me and don't get a quick response, you might want to
> call on the phone.  I get about 300 emails per day from alternate energy
> mailing lists and such.  I don't always see new email messages very quickly.)
> 
> Ron Frazier
> 770-205-9422 (O)   Leave a message.
> linuxdude AT techstarship.com
> Litecoin: LZzAJu9rZEWzALxDhAHnWLRvybVAVgwTh3
> Bitcoin: 15s3aLVsxm8EuQvT8gUDw3RWqvuY9hPGUU
> 
> 
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo

-- 
Byron A. Jeff
Chair: Department of Computer Science and Information Technology
College of Information and Mathematical Sciences
Clayton State University
http://faculty.clayton.edu/bjeff


More information about the Ale mailing list