tags:

views:

41

answers:

4

Should I start learning 8086 assembly language by learning assembly language of a processor with a reduced instruction set like one of PIC family?

+2  A: 

No, you should start learning 8086 ASM by learning 8086 ASM. At their heart, most assembly languages are very similar but I wouldn't try to learn Esperanto as a precursor to Italian.

Just jump right in and, if you strike trouble, come back and ask us questions. We're practically falling over ourselves to help people out here, you may as well use us :-)

paxdiablo
I don't know why they're teaching us PIC at school!! Could you please guide me through this and let me know where should I start? I really want to challenge myself into making a little game completely in assembly by making my own loops and almost everything from scratch. What assembler and what reference am I going to need?
David Weng
nasm is probably a good starting point: http://www.nasm.us/
paxdiablo
A: 

I wouldn't. If your primary intent is to learn x86 assembly language, that's what I'd study. Studying one language to learn another rarely makes much sense.

I'd also note that the "reduced" in "RISC" is mostly a myth anyway. The instruction sets of most (so-called) RISCs are larger than that of the 8086 (and some of the individual instructions are often more complex as well).

Jerry Coffin
+1  A: 

Assembly languages can be radically different between processors. If you want to learn assembly, it'd probably be best to do so on the processor you intend to learn on. Some instructions from one processor may not translate well (or at all) to others, and at the very least they'll be spelled differently (MOV vs LD, for example).

With that said, if your intention is to learn to write code for modern computers, 8086 assembly might (might!) be a decent place to start, as the instructions are somewhat similar. But computers these days almost all have 32- or 64-bit processors (whereas the 8086 is 16-bit), which have a programming model and issues all their own, so you'd do best to get used to those right off.

cHao
Funnily, you're the only person who seems to have noticed that x86 != 8086. If you want to learn modern x86, I'd recommend starting with at least i686 (Pentium Pro) for 32-bit, or amd64 for 64-bit. Personally, I prefer nicer instruction sets like ARM or PowerPC.
tc.
A: 

This is like asking, "should I learn Spanish by learning Basque first". x86 assembly is easy enough to learn (if you stay away from the stuff you need to implement virtual memory etc. for once) and PIC doesn't teach you anything. It's a completely different design with a lot of quirks.

Luther Blissett