

Question related to assembly programming - pencil

Hello HN,
Please tell me how many different varieties of assembly language exists like x86 etc,,their differences(how do they differ from one another) 
which varient should i choose?
Please give me some insight on the tools that are needed for programming in assembly.some say i need to buy a intel 8085/8086 kit.but others say a simulator would do.i'am damn confused.
also suggest good simulators if that's the case
======
stonemetal
x86 isn't an assembly language it is an instruction set. That is to say it
provides an instruction that allows you to add the value at a memory location
and a constant. Intel's assembly language exposes this instruction one way vs
GNU's assmebly language that exposes this a different way. So you have
instruction sets then you have for lack of a better word instruction patterns.
So you can use GNU Assembler (GAS) with x86, power, and arm instructions is
each a different language?

If you want to learn x86 assembly and have an x86 computer then all you need
is an assembler. Have a power Mac then you have every thing you need to run
power assembly. There is a free online book called the Art of Assembly.

~~~
Locke1689
The separation between assembly language and instruction set architecture
(ISA) isn't really as well defined as you present it. For example, if you
attempt to execute the VMLAUNCH instruction in GAS on anything but a very
specific IA-32(e) architecture subset, it will not work. In this sense it is
perfectly valid to refer to an "x86 assembly language." This language is
highly dependent on the presented ISA, but the line of separation is not
clear.

PS: My advice for learning the IA-32(e) ISA is to read the Intel Developers
manuals. <http://www.intel.com/products/processor/manuals/>

~~~
stonemetal
Sorry, I thought I was pretty clear. There is nothing I would consider an
assembly language there are Instruction sets X86, power, arm, mips, etc. Then
there are (textual) instruction layouts GAS, Intel etc. Pretty much one per
assembler. So when people mention something being written in assembly language
they almost always mean the instruction set, but being able to compile and run
almost always means a second round of guess that syntax that has nothing to do
with which ISA it came from.

Calling it X86 assembly language is about like saying I wrote this in High
Level Language and have that refer to pretty much any High level language in
existence. It all runs on the same ISA so it must be the same language. Can't
feed it all to the same compiler and have it work, so what that is just an
implementation detail.

~~~
Locke1689
OK, I see what you're saying now. That's fine and true, although I tend to use
the words "IA-32 ISA" and "IA-32 assembly" interchangeably. Different
perspectives on the same thing, I guess.

