Question:
I want to start programming in assembly language. I have many
basic questions that I want to know before deciding to learn how to
program.
First of all, are there any standards? Like will programming for a
calculator be totally different than programming for a pentium 4? I
know that assembly is not portable, but what is the difference in the
code for a g4 or p4?
Are there any basic things taht I have to know before learning
assembly for any processor. Like binery, hexadecimal or stuff. Are
there any books or websites that teach you the basics to any assembly
language? Then I can go to specific processors.
Also, how hard is it to learn assembly language for a different
processor? LIke if I mastered intel, and I want to learn a different
type, will it be like learning a completely new language, or just some
new concepts/commands.
What I really want to know now is the basics or the necessities to
learn assembly for any computer.
Answer:
When you program in assembly you're directly using the facilities
provided by the cpu. While all cpus provide most of the same
capabilities, the form in which they're provided is very different
from one cpu to another. This difference is exaggerated when you
go from a risc cpu such as the g4 to a cisc cpu such as the
pentium.Learn binary and hex for sure. But you'll have to learn assembly
on some cpu. There's no other way. Learning assembly is learning
the cpuLearning a new cpu when you already know one isn't too difficult.
It's not trivial but the more of them you know the easier it is to
learn a new one. They all do basically the same things for the
most part. But they all do those things in different ways.
It sounds like you want to learn it from a book before you start
doing it and that won't work. You need the book and you need the
hands on practice with some particular cpu. You could manage
without the book if you just had to. It would make it difficult
but you could learn it. You cant learn it without the hands on
practice.
I don't think it matters much which cpu you start with. Some are
easier than others. But you've mentioned the G4 which I don't know
much about so I can't compare them. Learning Intel assembly is
probably more useful in the world today but then you might be more
exposed to macs.
You mentioned calculators. If you're thinking of programming a TI
calculator that's a little harder way to learn since you have to do
it on a PC and transfer it but I don't think that's a major issue.
The TI86 and below have Z80 cpus which will be very easy to learn.
The TI89 has a 68000 cpu which is going to be a little harder to
learn but not much.
The HP48 and 49 calculators have a 4 bit cpu which is pretty weird
but not hard at all to learn on and the 49 has an assembler and
disassembler built in and you can do it right on the calculator.
The 48gx has a free assembly development system you can download
and install if you have an expansion card in it. But the expansion
card is required.
A good book is Randy Hyde's "The Art of Assembly Language
Programming" online at webster.cs.ucr.edu. It's well written, very
comprehensive and the author knows what he's doing. But if you go
there I strongly suggest his 16 bit dos book instead of the newer
32 bit windows book. It's an easier environment to learn in and
his windows book doesn't actually use assembly but something he
calls HLA for high level assembly. It's not real assembly
language, although he insists that it is. Then again he's taught
this stuff a lot more than I have.
Submit Your
Own Answer!