Talk:Comparison of assemblers

Machine Language Assemblers
An assembler for assembling machine language uses Mnemonics to represent the binary codes of machine language. So it is not technically a separate language but an easier to remember alphabet for typing that machine language. Very high level macro-assemblers create what may look like an addition to the language giving rise to the idea that a new and separate language has been created but this article is about Machine Language Assemblers and should avoid such confusion IMHO Scottprovost (talk) 02:59, 14 November 2016 (UTC) Scottprovost (talk) 02:55, 14 November 2016 (UTC)

Machine Language Assembly Code
Since the assembly represents actual executable content and does not require decoding or compiling to run. Assembler code is not "Source" code, it is simply code. More accurately, it is object code. This machine code may be loaded into memory and called with no need for compiling as long as it is in binary format. The term source code is improper but acceptable in a non academic discussion. Whether it is appropriate in a Wikipedia Article I will leave up to others. Scottprovost (talk) 03:11, 14 November 2016 (UTC)


 * Assembly-language source code is still source code, as it is designed to be human-readable and must be assembled by an assembler to machine-language object code in order to be able to be executed by a computer processor. —PowerPCG5 (talk) 06:28, 24 August 2021 (UTC)

Which Apple II 6502 assembler?
If an Apple II 6502 assembler is to be included on the list, it should probably be Glen Bredon's Merlin, which was by far the most popular, or else Apple's EDASM. Randall Hyde's books were the only places I ever saw LISA source. Jerry Kindall (talk) 21:54, 19 February 2008 (UTC)


 * I neither support nor oppose, but verification of some kind is needed. Since this falls under WP:SAL, there should be suitable article(s) to refer to for these proposed subjects. As for Lisa, I defer to WP:OTHERCRAPEXISTS. Ham Pastrami (talk) 03:35, 20 February 2008 (UTC)


 * The Byte Works’ ORCA/M was also pretty popular and was by far the most powerful of the 6502/65C02/65C816 assemblers for the Apple II series, complete with a UNIX-style command shell; in coördination with Western Design Center it was the first to support Bill Mensch’s W65C802 and W65C816 CPUs and was so powerful that Apple contracted with The Byte Works to release ORCA/M as Apple’s official assembler for the Apple II series, rebranding it as Apple Programmer’s Workshop (APW), Apple’s “official” development environment for GS/OS on the Apple IIGS. ORCA/M was also blazingly fast, both under (8-bit) ProDOS 8 (ORCA/M 4.x) and under (16-bit) ProDOS 16 and GS/OS (ORCA/M GS) and was the main reason why The Byte Works’ ANSI C compiler, ORCA/C, was the only C compiler for the Apple II series that had acceptable performance. —PowerPCG5 (talk) 06:28, 24 August 2021 (UTC)

Fasm Ports
Fasm is also ported to menuetos, Dex4u, Solar os and kolibrios —Preceding unsigned comment added by 81.82.37.185 (talk) 23:04, 31 March 2008 (UTC)


 * Can you describe Fasm here on the Talk page before adding it to the Main Article?  Dexter Nextnumber (talk) 21:40, 25 December 2009 (UTC)


 * Hmmm.  Looks like you went and added it without discussing.   Why is it called a Flat Assembler?   Dexter Nextnumber (talk) 21:42, 25 December 2009 (UTC)

It's called that because it uses a Flat Memory Model, e.g. a linear address space, and does not support any other memory models. It is a perfectly legitimate x86 assembler. OldCodger2 (talk) 20:06, 15 September 2012 (UTC)

Others?
What about pep7/pep8, etc? —Preceding unsigned comment added by 68.183.131.157 (talk) 00:51, 25 November 2009 (UTC)


 * Do those assemblers let you type control codes into your string arguments?  They don't force you to use a caret or digraph, do they?   Dexter Nextnumber (talk) 23:01, 18 December 2009 (UTC)

Multiple target assemblers
I couldn't figure out how to add assemblers with multiple targets to the tables already on this page. So I added a new section on "Multiple target assemblers". Feel free to merge that information into the table in the "Other assemblers" section if you think that looks better. --68.0.124.33 (talk) 04:00, 6 December 2009 (UTC)
 * The multiple target table is prolly the only table which should be present here (slightly modified) -- the original article seems rather x86 biased (just a bit). — Preceding unsigned comment added by 80.162.60.16 (talk) 17:05, 12 April 2012 (UTC)
 * Probably accurately reflects the number of assemblers for each architecture. I added a lot of entries for other systems. Peter Flass (talk) 17:46, 12 April 2012 (UTC)

Commodore quote mode?
Is there an assembler for the i86 family of microprocessors that supports Commodore quote mode? You'd be surprised how many of the assemblers in the main article are absolutely utter pieces of junk, if only because they won't let you enter control codes into your string arguments, where you want them, and whenever you want them. Sheeesh. Dexter Nextnumber (talk) 22:57, 18 December 2009 (UTC)

Most (all?) assemblers have directives to enable the entry of non-ascii values. This is usually accomplished by a DB (Define Byte) directive which typically supports the entry of Decimal, Hex, Octal, and Binary values. Dear, Dexter, this is very basic stuff, you certainly don't sound knowledgeable enough to be passing judgment on the quality of the different assemblers since you clearly don't even know how to enter a value using Hex. me? I've programmed in so many different assembly languages that I lost count... and I have yet to meet an assembler that I would call junk, most of them work exactly as intended, now debuggers on the other hand... yeah a lot of them are junk, I'd love to find a decent debugger for x86 Linux. OldCodger2 (talk) 21:32, 15 September 2012 (UTC)

MIPS?
Yes/no/maybe? --208.42.231.116 (talk) 14:21, 18 February 2010 (UTC)
 * I only see one, are there more? My feeling is more than one or two deserves a table.Peter Flass (talk) 17:48, 12 April 2012 (UTC)

High Level Assemblers
Would it be worthwhile having a page listing high-level assemblers, or adding a column to this page to indicate them? Peter Flass (talk) 13:32, 11 January 2012 (UTC)

The HLA's that I am familiar with are just Macro Libraries on top of ordinary assemblers. Might deserve a footnote, but not an entry unless it can be shown to be a distinct language. OldCodger2 (talk) 21:34, 15 September 2012 (UTC)


 * The IBM High Level Assembler is basically the old Assembler (H) with enhancements developed at Stanford Linear Accelerator Center (SLAC); It does not include any general use macros, although the associated High Level Assembler Toolkit does include some structured programming macros.

What is host platform
Some of the tables show a hardware platform in the colum labled host platform, others show an OS. There is certainly a need for a column showing what OS the assembler runs under, but the interpretation of the column heading should be consistent. Shmuel (Seymour J.) Metz Username:Chatul (talk) 13:34, 28 October 2012 (UTC)

Multiple architectures from same vendor
When a vendor has multiple product lines, should there be a separate section for each architecture? Shmuel (Seymour J.) Metz Username:Chatul (talk) 13:38, 28 October 2012 (UTC)

Yet more assemblers
There are many more assemblers written than this article can list, a few more are shown here:

http://www.freebyte.com/programming/assembler/

I would expect every microprocessor ever made (eg List of microprocessors) has its own assembler - but I think there would be little value in listing them all here.John a s (talk) 09:17, 28 February 2013 (UTC)

Digital Research ASM86
There is an entry in the x86 table for ASM86, which is attributed to Digital Research. While DR may have had an assembler by that name, so did Intel (and Intel also had later versions called ASM386 and ASM486). Those were available on iRMX, ISIS, and later MS-DOS (a CP/M version might have existed, and I think a VAX/VMS version also did). The DR version would likely have been CP/M only. I don't *think* that there was any relation between the DR and Intel assemblers. If you look in the "Intel® 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide" (section 9), the sample processor startup code is still coded in (Intel) ASM386. Does anyone have any additional reference on the DR product? I think this probably should be split into two entries, but I lack references. Rwessel (talk) 19:09, 8 September 2015 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 4 external links on Comparison of assemblers. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20120416183515/https://developer.berlios.de/projects/rrtools/ to http://developer.berlios.de/projects/rrtools/
 * Added archive https://web.archive.org/web/20140531124941/http://www.sarnau.info/software%3Aturboass to http://www.sarnau.info/software%3Aturboass
 * Added archive https://web.archive.org/web/20101109000742/http://www.debath.co.uk/dev86/ to http://www.debath.co.uk/dev86/
 * Added archive https://web.archive.org/web/20110726075040/http://ftp.gcu-squad.org/tuhs/Applications/Portable_CC/8086.zip to http://ftp.gcu-squad.org/tuhs/Applications/Portable_CC/8086.zip

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 16:49, 11 August 2017 (UTC)

Adding another x86-64 assembler to the list.
Hi everyone, hopefully I am doing this the right way.

I am the author of DiaperGlu which contains a Forth based assembler for the x86-64 architecture. This means I have a conflict of interest and can't do any of the reviews or changes myself. I was wondering what I would need to do to get the assembler I wrote considered and possibly added to the list?

Snowfallen (talk) 16:20, 15 November 2021 (UTC)Snowfallen

Markup and order for tables?
Currently the markup for tables is inconsistent. For some assemblers cells are rendered normally with |, while for some the cells are rendered bold with !. Which is appropriate?

Also, it is not clear what the appropriate sort order should be. E.g., should 1401 Autocoder be sorted as 1401, Autocoder or IBM? --Shmuel (Seymour J.) Metz Username:Chatul (talk) 15:15, 11 January 2022 (UTC)

ASXXXX and SDCC
It is only partially correct that ASXXXX is part of SDCC, SDCC contains an older fork of ASXXXX. ASXXXX itself is an independent bigger assembler collection. Also both developed apart, extending their assemblers differently.

Some platforms ASXXXX supports, but not SDCC are: 4004, 4040, 8008, 8080, 6500 (SDCC will get an experimantal 6500 with 4.2) Basxto (talk) 23:09, 8 February 2022 (UTC)

Different assembler syntax style
Assemblers do usually have different boiler plate and syntax. Assembler code that is written for example for MASM can be assmbled with JWASM without modification, but if you try to assmemble the same code with another assembler, for example NASM, then it will not assemble without additional modification of the code. It would be helpful if the comparison table would include that information too which original syntax style is used. IT-Compiler (talk) 19:51, 22 July 2022 (UTC)

What is "retargetable"?
The IBM High Level Assembler (HLASM) has a parameter to load an opcode table for a specific architectural level; it supports only the architecture family of S/360 through IBM z. Is that enough to include it as retargetable, or does the fact that it does not support other architecture families disqualify it. -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 13:26, 21 July 2023 (UTC)


 * "Retargetable" was my addition. Maybe not the best word choice. I think the architectures should be more different to qualify. Peter Flass (talk) 03:36, 13 August 2023 (UTC)
 * Maybe "table driven"? Or just state up front that the term includes alternate opcode tables within a single architecture? -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 11:06, 13 August 2023 (UTC)