Linked by Thom Holwerda on Sun 8th Jul 2012 22:54 UTC
General Development "In this tiny ebook I'm going to show you how to get started writing 6502 assembly language. [...] I think it's valuable to have an understanding of assembly language. Assembly language is the lowest level of abstraction in computers - the point at which the code is still readable. Assembly language translates directly to the bytes that are executed by your computer's processor. If you understand how it works, you've basically become a computer magician." More of this, please.
Thread beginning with comment 526076
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Comment by ilovebeer
by christian on Mon 9th Jul 2012 21:34 UTC in reply to "RE: Comment by ilovebeer"
christian
Member since:
2005-07-06

"6502 was fun in its day. So was 68000. But as someone else already pointed out, compilers are damn good these days.

... but can be out-performed on many machines by a decent assembler programmer.
"

As CPUs became more orthogonal, I bet the advantage eroded pretty quickly. Compilers can just keep track of more information to make better decisions on optimizations, such as efficient register scheduling.

And it's poor software engineering to dive straight into assembly without finding the bottlenecks first. Even small micro-controllers like PIC are better programmed in C first with a directed migration to assembly based on performance requirements.

Except for the smallest of embedded systems, C is perfectly viable using something like Contiki ( http://www.contiki-os.org/ ).

Reply Parent Score: 2

RE[3]: Comment by ilovebeer
by DeepThought on Tue 10th Jul 2012 02:08 in reply to "RE[2]: Comment by ilovebeer"
DeepThought Member since:
2010-07-17

:-) I did not want to start the old ASM vs. C vs. C++ war again. But there are good reasons to write assembly code. And yes, a bad algorithm in assembly stays a bad algorithm :-)
And sometimes, you just can't speed up things anymore.

Reply Parent Score: 1

RE[4]: Comment by ilovebeer
by Alfman on Tue 10th Jul 2012 02:58 in reply to "RE[3]: Comment by ilovebeer"
Alfman Member since:
2011-01-28

DeepThought,

Yea, GCC often produces subpar code in my experience. Depending on how tight a loop needs to be, hand-crafted assembly can bring decent gains. Sometimes we can get away swapping in intrinsics, other times GCC just refuses to output good code.

ICC is supposed to be an excellent code optimiser though.

It's all relative though, computers have gotten so fast we're usually waiting on I/O anyway.

Reply Parent Score: 2