For the majority of programmers there really isn't any need to learn assembler, but if you do you will find that you understand how everything works so much better. A new resource introduces you to 6502 assembler with a live environment where you can try out your programs.
Nick Morgan describes Easy 6502 as a tiny ebook - but it's an ebook with a difference - you can actually use it to run programs. But why 6502 assembly language and what exactly is it?
"The 6502 processor was massive in the seventies and eighties, powering famous computers like the BBC Micro, Atari 2600, Commodore 64, and the Nintendo Entertainment System. Bender in Futurama has a 6502 processor for a brain. Even the Terminator was programmed in 6502."
OK, but the 6502 is pretty much dead and gone. Why not learn a more useful assembly language like x86?
"Well, I don’t think learning x86 is useful. I don’t think you’ll ever have to write assembly language in your day job – this is purely an academic exercise, something to expand your mind and your thinking. 6502 was written in a different age, a time when the majority of developers were writing assembly directly, rather than in these new-fangled high-level programming languages. So, it was designed to be written by humans. More modern assembly languages are meant to written by compilers, so let’s leave it to them. Plus, 6502 is fun. Nobody ever called x86 fun."
I'd differ with the final point as our own Harry Fairhead has been known to say that x86 was fun, but only after a session working with some primitive embedded controller in machine code.
If you have a look at the ebook, you will soon be actually writing code and seeing what it does. This is a great way to learn. It takes you through the basics, registers, branching, addressing modes, the stack and so on. If anything it finishes a tiny bit too soon but when you get to the end you will at least understand what makes assembly language - any assembly language - different from high level language and you will even beginning to see what the job is that compilers do.
Try it out!