Talk:X86 Assembly/x86 Assemblers

Hello

The link in the FASM section leads to infected peges.

Missing: ASM86.
Missing from this page is the original Intel assembler. I think it was called ASM86. If I recall correctly keywords like "Offset", "Proc" and "Endp" (and others) came from this assembler. MASM then copied this syntax.


 * I believe it was called ASM-86. All you missed was the hyphen.  MASM is indeed based on ASM-86, although I can't confirm offhand that the three particular keywords you cited are from ASM-86.  It appears that MASM is actually evolved from the first Microsoft assembler for the 8086, MACRO-86 (or at least, it's the earliest 8086 assembler from MS that I have found any trace of.)  MACRO-86 in turn has an ancestor in their earlier MACRO-80 assembler for the Intel 8080.  Bitsavers has a document (named Microsoft_8086_Utility_Software_Package_1981.pdf) that includes a MACRO-86 manual.  Interestingly, in this manual, the command to execute MACRO-86 (to assemble a source file into an .OBJ file) is "MASM", suggesting that the MACRO-86 executable was named MASM.  (I think this should resolve any controversy of whether the "M" in Microsoft's "MASM" stands for "Macro", "Microsoft", or something else.)
 * Now, no one today uses Intel's ASM-86&mdash;I think it might have only run on an ISIS development system from Intel&mdash;so including a separate section for ASM-86 here would not be appropriate. But mentioning ASM-86 in the MASM section, or mentioning it in the introduction as the general basis for all x86 assembly language dialects&mdash;since ASM-86 defined the 8086 instruction mnemonics themselves, which even AT&T-syntax assemblers typically use with few modifications&mdash;would be appropriate, in my opinion.
 * Aside, I note that for their V20 and V30 CPUs, which were enhanced unlicensed binary-compatible clones of the Intel 8088 and 8086 designs, NEC invented a whole new set of assembly language mnemonics for all the instructions, so as to avoid running afoul of Intel's legal copyright on the instruction mnemonics used in ASM-86, as Intel prominently advertised "mnemonics (C) Intel 1977" (or close to that year) in all their early manuals for the "iAPX 86" (as the 8086 family was then called. I think "iAPX" stands for "Intel Advanced Processor Architecture", in an approximate way, particularly regarding the "X".)  As far as I know, practically no one actually used NEC's alternative mnemonics, instead using assemblers for the 8086 and either not using the added instructions of the NEC V-series CPUs or using macros to define mnemonics for their binary opcodes.  But I don't really know; I'm only surmising based on imagining the incentives and the options that were available at the time, though I do imagine that NEC had at least one assembler that used their set of mnemonics and that at the very least it was used internally at NEC.

Missing: TASM.
It strikes me as TASM gets only a passing mention (its "ideal mode") as part of the section devoted to FASM. Are there objections to making a paragraph about TASM proper ? Such should come just below MASM, IMO. Even though TASM is no more (actively?) sold by Imprise/Borland, it is a nice assembler of historical significance and still available at no cost, as part of downloads from their online "Museum" (packaged with the C,C++ and/or Pascal downloads).

Will someone volunteer to add this paragraph ? - 90.54.146.59 (talk) 09:29, 3 May 2010 (UTC) Ninho -