On 7 Apr 2009 at 13:55, Ian King wrote:
I think it's a shame that too few kids are
learning assembler or C
anymore. Working in Java isolates them from the 'vagaries' of real
hardware so they can focus on algorithms and data structures, but
ultimately they will have to work on... real hardware! But it goes
back to the comment I made about computer science vs. software
engineering. CS most often doesn't want to know about real hardware.
That's not a flaw, that's an expression of scope.
And too few people who take the trouble to learn the assembly bother
to learn the machine representation of the instructions--or the
architecture of the implementation. Even fewer learn how to time
instruction execution--perhaps it's no longer relevant.
Recently I had a conversation with another programmer who was
surprised to find that the mapping of x86 assembly to machine
language is not one-to-one; i.e. for a given assembly instruction,
there is often more than one way to express it in machine code.
--Chuck