"Nobody programs in machine language" (was: Modern Electronics(was

From: Paul Koning <pkoning_at_equallogic.com>
Date: Tue Jun 22 09:38:33 2004

>>>>> "Bert" == Bert Thomas <bert_at_brothom.nl> writes:

 Bert> Fred Cisin wrote:
>> This fall, I get to teach Assembly Language again! (after 2
>> years) They've scheduled it for Saturday morning, which sucks, but
>> it's still worth it.
>>
>> I need to make some decisions about some of the content. Should I
>> include discussion of the .Net IL assembler?

 Bert> I'm not sure. I hate proprietary microsoft stuff, therefore my
 Bert> guess whould be no.

>> How much on other kinds of processors? (RISC)

 Bert> That should be covered in another class: computer
 Bert> architecture. I think it would suffice if you only discussed
 Bert> intel, since that allows students to experiment with what they
 Bert> learned. Assembly languages are all so much related that if you
 Bert> learned one, you easily learn any other. At least that is my
 Bert> experience.

If at all possible, teach assembly language on ANY machine OTHER than
Intel. There's nothing within an order of magnitude as ugly, baroque,
or bizarre as the x86 instruction set architecture; not even the
IBM/360 comes close.

Not only are RISC machines easy to implement, they are also easy to
understand at an assembly language level. MIPS has just one crock
(delay slots); Alpha is even better.

Making any of them fly is another matter -- you can't do that with ANY
contemporary machine until and unless you really understand how it
schedules instructions. And for modern machines that takes quite a
lot of study (for RISC as well as x86). But to get started on writing
just *correct* assembler code, RISC is a breeze.

Run Unix, it has a much simpler ABI. Or use a bare machine -- serial
line output is trivial, certainly once you've initialized the UART.

Interrupts? Sure, at some point. Not necessarily day 1. For one
thing, embedded systems don't necessarily use interrupts.

       paul
Received on Tue Jun 22 2004 - 09:38:33 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:36:59 BST