News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

IA-32 or x86 or i386 semantics...

Started by vanya, November 23, 2006, 02:34:02 PM

Previous topic - Next topic

vanya

Looking at some tutorials online and notice that some tutorials use the term IA-32, others use x86 and others use i386 when referring to Intel processor assembly language. I know that x86 has its origins in 16-bit assembler, yet some still use x86 when referring to modern assembly language.

Is it just semantics? Are they interchangeable? I looked at wikipedia, and they suggested that the entries for x86 and IA-32 be merged, so that just makes me believe they're the same.

What do most people here say when they say they are learning assembler on Intel processors?

Tedd

x86 refers to the family of chip numbers (80x86) -- 8086, 80186, 80286, 80386, 80486, ......
i386 refers to i(ntel) (80)386, and usually above, but this was the first of the 32-bit (x86) processors, so it's usually used as a base-line.
IA-32 refers Intel Architecture 32-bit. Mostly to differentiate from the 'new' IA-64 (which isn't officially called that, but anyway..)

So yes, they're largely interchangable.

I suppose I would say "x86 assembler" - 386 and the later processors essentially just added extensions to the instruction set.
No snowflake in an avalanche feels responsible.

vanya

Thanks for the quick reply, Tedd. So x86 it is.

One more semantics question if you have the time-
(And yeah, I know it's not really that important, but when I discuss such things with colleagues, I don't want to sound like a total dufus) :)

Are the terms "assembler" and "assembly language" interchangeable?

When I was learning IBM 360/370 assembler years ago, we called it "learning assembler" when referring to the language. In fact, the class was called "IBM 360/370 Assembler with JCL".

All the books from that era call it "assembler" instead of "assembly language". In fact, when I learned 6502 assembler later, it was also called assembler when referring to the language, not assembly language.

Of course, we know that an assembler is a program used to convert source code to object, but  modern books tend to refer to it as "assembly language" instead of assembler.

Are both proper when referring to the language?
Just curious.
thanks.

zooba

If you want to get really pedantic, 'assembler' would refer to the program while 'assembly language' refers to the input to the program. There was a (short) discussion here a while ago about the difference between 'assembly instructions' and 'assembler instructions', might be worth linking to if someone can find it :wink

As long as the context is clear, you can probably get away with either.

Cheers,

Zooba :U

Tedd

Technically it's "assembly language" -- the language used to assemble things.
And the program used is an assembler.
However, the code you give to the assembler is "assembler code" -- code for an assembler; most often written in an assembly langauge (there are many) :wink

The difference is too subtle to be important -- assembly (language) Vs assembler (code)
No snowflake in an avalanche feels responsible.