Assembly language

From EDM2
Revision as of 13:52, 14 March 2017 by Ak120 (Talk | contribs)

Jump to: navigation, search

Assembly language is not a proper "programming language" per se, but rather a tool that allows you to write machine code using short, semi-human readable memenomic instructions and link the into an executable, as an alternative to having to write streams of ones and zeroes and load them into memory. This effectively means that not only do each microprocessor family have their own assembly language format and instructions but also each processor version inside that family has its own instruction variations, but in addition to that different assemblers may use different mnemonic substitutes for each processor instruction.

OS/2 assemblers and assembler related tools

Cross Assemblers

OS/2 disassemblers

  • AVR Disassembler - AVR - Open Source - Current
  • BeaEngine - i86/AMD64 - Open Source - Current
  • DISA - i86 - Freeware - Discontinued
  • IDA - i86/AMD64 - Shareware/Commercial - Discontinued
  • PIC Disassembler - PIC - Open Source - Current

OS/2 development systems with built in assemblers

Aids

  • FWKTL - Allows OS/2 to run COM like self modifying code

Libraries, bindings and stubs

  • LZ4 - Compression library - Open source - Current

OS/2 text & programmers editors with assembly language support

  • Boxer - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download) - Commercial - Discontinued.
  • Enhanced Editor - Has automatic "tagging", generates automatic code summaries with links and other ASM goodies.
  • FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.
  • jEdit - Java based editor - m68k, Macro32, MCS51, R2000, Parrot and x86 built in, 6502, AVR and PIC optional - Current.
  • Lugaru Epsilon - i86 syntax highlighting, code folding and syntax-aware autoindent, 68HC12 available as a seperate download. - Commercial.

Assembly language related programmer's utilities

  • Exuberant ctags - Creates index files out of assembly language source files - Open source - Current.

DOS assemblers

  • Pharlap 386|ASM/LINK - Commercial - Discontinued
  • A86 - Commercial/Shareware
  • Assembler ASM - Commercial
  • Arrowsoft Assembler - Public Domain
  • CHASM (Cheap Assembler)
  • Intel ASM386 - Commercial - Discontinued
  • JWasm - Open Source - Current
  • IBM Macro Assembler - Commercial - Discontinued
  • Microsoft Assembler - Commercial - Discontinued
  • NASM Assembler - Open Source/LGPL - Current
  • Wasm - Open Source - Current
  • Phoenix Pasm86 - Commercial - Discontinued
  • TopSpeed TechKit - Commercial - Discontinued
  • Borland Turbo Assembler - Commercial - Discontinued

DOS disassemblers

  • ASMGEN (Gersbach, Damke) - Public Domain
  • DASM (Williams)
  • DIS86 (van Zandt)
  • MD86
  • PICDIS-LITE - PIC - Shareware - Current
  • Yilmaz Disassembler

DOS development systems with built in assemblers

Libraries, bindings and stubs

  • LZ4 - Compression library - Open source - Current

DOS text & programmers editors with assembly language support

  • Boxer - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download) - Commercial - Discontinued.
  • FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.

Publications

Links

Standards

Unlike most other languages the assembly language is not an artificial language that requires standardisation but rather an implementation of a practical reality that came into existence when a specific CPU was designed and manufactured, so the standard is the actual documentation of a hardware implementation. That means for 8, 16 and 32 bit processors the "standard" are the processor and programming manuals from Intel while for 64 bit assembly language you need to look towards similar manuals from AMD.