Jump to content

A86 (software): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
GreenC bot (talk | contribs)
Light editing pass on intro.
Line 7: Line 7:
| latest release version = 4.05
| latest release version = 4.05
| latest release date = {{Start date and age|2006}}
| latest release date = {{Start date and age|2006}}
| operating system = [[DOS]]
| operating system = [[MS-DOS]]
| platform = [[x86]]
| platform = [[x86]]
| genre = [[Assembly language#Assembler|Assembler]]
| genre = [[Assembly language#Assembler|Assembler]]
Line 13: Line 13:
| website = {{URL|eji.com/a86}}
| website = {{URL|eji.com/a86}}
}}
}}
'''A86''' is computer [[software]], a compact commercial [[Assembly language#Assembler|assembler]] developed for the [[Intel]] [[x86]] family of [[microprocessor]]s by Eric Isaacson, and sold initially as [[shareware]] in the 1980s. The assembler is contained in one 32 K executable and can directly produce a [[DOS]] compatible [[COM file]] or an [[object file]] for use with a standard linker. ''A86'' uses a slightly simpler [[Syntax of programming languages|syntax]] for source code and requires no extensive use of directives as do contemporaries such as the [[Microsoft Macro Assembler]] (MASM). Isaacson claims that ''A86'' can assemble 100,000 lines of source per second on a [[Pentium II]] or better.<ref>{{cite web|last1=Isaacson|first1=Eric|title=A86/A386 and D86/D386 features|url=http://eji.com/a86/features.htm#FeaturesA86|date=2006}}</ref> It comes with a [[debugger]], ''D86''.<ref name="A86">{{cite web|url=http://eji.com/a86/|title=A86/A386 assembler and D86/D386 debugger|year=2008|accessdate=2008-07-02|first1=Eric|last1=Isaacson| archiveurl= https://web.archive.org/web/20080702100913/http://eji.com/a86/| archivedate= 2 July 2008 <!--DASHBot-->| deadurl= no}}</ref><ref name="WhichAsm">{{cite web|url=http://webster.cs.ucr.edu/AsmTools/WhichAsm.html|title=Which Assembler is the Best?|accessdate=2008-05-18|author=Randall Hyde| archiveurl= https://web.archive.org/web/20080515212630/http://webster.cs.ucr.edu/AsmTools/WhichAsm.html| archivedate= 15 May 2008 <!--DASHBot-->| deadurl= no}}</ref>
'''A86''' is computer [[software]], a compact commercial [[Assembly language#Assembler|assembler]] developed for the [[Intel]] [[x86]] family of [[microprocessor]]s by Eric Isaacson. It was first made available as [[shareware]] in the 1980s.
The assembler is contained in one 32K executable and can directly produce a [[MS-DOS]] compatible [[COM file]] or an [[object file]] for use with a standard linker. ''A86'' uses a slightly simpler [[Syntax of programming languages|syntax]] for source code and does not required the extensive use of directives as do contemporaries such as the [[Microsoft Macro Assembler]] (MASM). Isaacson claims that ''A86'' can assemble 100,000 lines of source per second on a [[Pentium II]] or better.<ref>{{cite web|last1=Isaacson|first1=Eric|title=A86/A386 and D86/D386 features|url=http://eji.com/a86/features.htm#FeaturesA86|date=2006}}</ref> It comes with a [[debugger]], ''D86''.<ref name="A86">{{cite web|url=http://eji.com/a86/|title=A86/A386 assembler and D86/D386 debugger|year=2008|accessdate=2008-07-02|first1=Eric|last1=Isaacson| archiveurl= https://web.archive.org/web/20080702100913/http://eji.com/a86/| archivedate= 2 July 2008 <!--DASHBot-->| deadurl= no}}</ref><ref name="WhichAsm">{{cite web|url=http://webster.cs.ucr.edu/AsmTools/WhichAsm.html|title=Which Assembler is the Best?|accessdate=2008-05-18|author=Randall Hyde| archiveurl= https://web.archive.org/web/20080515212630/http://webster.cs.ucr.edu/AsmTools/WhichAsm.html| archivedate= 15 May 2008 <!--DASHBot-->| deadurl= no}}</ref>


''A86/D86'' targets [[16-bit]] x86 platforms. Isaacson added 32-bit support in the mid 1990s in the form of ''A386'' and ''D386''.<ref name="A86"/><ref name="WhichAsm"/> These were not distributed as shareware, but were provided to users who registered A86.
''A86/D86'' targets [[16-bit]] x86 platforms. Isaacson added 32-bit support in the mid 1990s in the form of ''A386'' and ''D386''.<ref name="A86"/><ref name="WhichAsm"/> These were not distributed as shareware, but were provided to users who registered A86.

Revision as of 04:52, 14 December 2016

A86
Developer(s)Eric Isaacson
Stable release
4.05 / 2006; 18 years ago (2006)
Operating systemMS-DOS
Platformx86
TypeAssembler
LicenseProprietary
Websiteeji.com/a86

A86 is computer software, a compact commercial assembler developed for the Intel x86 family of microprocessors by Eric Isaacson. It was first made available as shareware in the 1980s.

The assembler is contained in one 32K executable and can directly produce a MS-DOS compatible COM file or an object file for use with a standard linker. A86 uses a slightly simpler syntax for source code and does not required the extensive use of directives as do contemporaries such as the Microsoft Macro Assembler (MASM). Isaacson claims that A86 can assemble 100,000 lines of source per second on a Pentium II or better.[1] It comes with a debugger, D86.[2][3]

A86/D86 targets 16-bit x86 platforms. Isaacson added 32-bit support in the mid 1990s in the form of A386 and D386.[2][3] These were not distributed as shareware, but were provided to users who registered A86.

Isaacson never ported the A86 family of products to Windows, though it is possible to use the object files created by A386 with a Windows linker.[4] The assembler cannot be used to create 64-bit code.

A86-specific features

Any label that is one letter followed by one or more digits is local, and can be redefined as needed, with each definition replacing the prior. Isaacson recommends using L1 through L9 for normal code and M1 through M9 in macros. Branches to local labels are assumed to be backward, but a forward branch can be specified by prefixing the label reference with the greater than symbol (e.g., >L2).

Numbers starting with a zero are hexadecimal, such as 00FF, instead of using a custom prefix.

Multiple registers can be pushed or popped on the same source line. push eax, edx, ebp generates one instruction for each of the three operands.

Code fingerprint

The assembler automatically embeds a "fingerprint" into the generated code through a particular choice of functionally equivalent instruction encodings. This makes it possible to tell if code was assembled with A86, and also to distinguish between registered and unregistered versions of the assembler, although access to the source code is required.[5]

References

  1. ^ Isaacson, Eric (2006). "A86/A386 and D86/D386 features".
  2. ^ a b Isaacson, Eric (2008). "A86/A386 assembler and D86/D386 debugger". Archived from the original on 2 July 2008. Retrieved 2008-07-02. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  3. ^ a b Randall Hyde. "Which Assembler is the Best?". Archived from the original on 15 May 2008. Retrieved 2008-05-18. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  4. ^ Isaacson, Eric (2006). "A386 and Win32 Programming".
  5. ^ El-Khalil, Rakan; Keromyti, Angelos D. (2004). "Hydan: Hiding Information in Program Binaries". Information and communications security: 6th International Conference, ICICS 2004, Malaga, Spain, October 27–29, 2004 : Proceedings. Lecture notes in computer science. Vol. 3269. Springer. p. 190. ISBN 3-540-23563-9. {{cite book}}: External link in |chapterurl= (help); Unknown parameter |chapterurl= ignored (|chapter-url= suggested) (help); Unknown parameter |editors= ignored (|editor= suggested) (help)