Jump to content

Assembly language: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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.
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 mnemonic 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.


==A list of OS/2 assemblers and assembler related tools==
==OS/2 Hosted Assemblers==
* [[GNU Assembler]] - Open source - Discontinued
''Commercial''
* [[IBM ALP Assembler]] - Commercial - Discontinued
* [[IBM Assembly Language Processor]] (ALP)
* [[IBM Macro Assembler/2]] - Commercial - Discontinued
* [[IBM Macro Assembler/2]]
* [[JWasm]] - Open Source - Current
* Lattice [[LASM]]
* [[Microsoft Assembler]] - Commercial - Discontinued
* [[Microsoft Macro Assembler]] (MASM)
* [[NASM Assembler]] - Open Source/LGPL - Current
* [[TopSpeed TechKit]]
* [[TopSpeed TechKit]] - Commercial - Discontinued
* [[Turbo Assembler]]
* [[Turbo Assembler]] - Commercial - Discontinued
* [[Open Watcom|Wasm]] - Open Source - Current


====OS/2 disassemblers====
''Open Source''
* [[AVR Disassembler]] - AVR - Open Source - Current.
* [[GNU Assembler]]
* [[BeaEngine]] - i86/AMD64 - Open Source - Current.
* [[NASM]] Assembler - LGPL
* [[DISA]] - i86 - Freeware - Discontinued
* [[Open Watcom|Wasm]], [[JWasm]]
* [[IDA]] - i86/AMD64 - Shareware/Commercial - Discontinued
* [[PIC Disassembler]] - PIC - Open Source - Current.


====Aids====
==OS/2 Hosted Cross Assemblers==
* [[FWKTL]] - Allows OS/2 to run COM like self modifying code
''Open source''
* [[8085 Cross Assembler]]
* [[CC65]] - Contains a 6502 cross-assembler


====Libraries, bindings and stubs====
==OS/2 disassemblers==
* [[LZ4]] - Compression library - Open source - Current
''Freeware''
*DISA - i86
''Open Source''
*AVR Disassembler - AVR
*BeaEngine - i86/AMD64
*PIC Disassembler - PIC
''Shareware''
*[[IDA]] - i86/AMD64


====OS/2 text & programmers editors with assembly language support====
===OS/2 development systems with built-in assemblers===
* [[Boxer]] - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download) - Commercial - Discontinued.
* [[Cabot UCSD Pascal]] - Commercial
* [[Open Watcom]] - Open Source
* [[Pecan UCSD Pascal]] - Commercial
 
===Aids===
*FWKTL - Allows OS/2 to run COM like self modifying code
 
===Libraries, bindings and stubs===
* [[LZ4]] - Compression library
 
===Editor support===
* [[Boxer]] - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download)
* [[Enhanced Editor]] - Has automatic "tagging", generates automatic code summaries with links and other ASM goodies.
* [[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.
* [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware auto-indent.
* [[jEdit]] - Java based editor - m68k, Macro32, MCS51, R2000, Parrot and x86 built in, 6502, AVR and PIC optional - Current.
* [[jEdit]] - Java based editor - m68k, Macro32, MCS51, R2000, Parrot and x86 built in, 6502, AVR and PIC optional.
* [[Lugaru Epsilon]] - i86 syntax highlighting, code folding and syntax-aware autoindent, 68HC12 available as a seperate download. - Commercial.
* [[Lugaru Epsilon]] - i86 syntax highlighting, code folding and syntax-aware auto-indent, 68HC12 available as a separate download.


====Assembly language related programmer's utilities====
===Assembly language related programmer's utilities===
* [[Exuberant ctags]] - Creates index files out of assembly language source files - Open source - Current.
* [[Exuberant ctags]] - Creates index files out of assembly language source files - Open source


==A list of DOS assemblers==
==DOS hosted assemblers==
* Pharlap 386|ASM/LINK - Commercial - Discontinued
* Pharlap 386|ASM/LINK
* A86 - Commercial/Shareware
* A86 - Commercial/Shareware
* [http://assembler86.de/ Assembler ASM] - Commercial
* [http://assembler86.de/ Assembler ASM]
* Intel ASM386 - Commercial - Discontinued
* Arrowsoft Assembler - Public Domain
* [[JWasm]] - Open Source - Current
* CHASM (Cheap Assembler)
* [[IBM Macro Assembler]] - Commercial - Discontinued
* Intel ASM386
* [[Microsoft Assembler]] - Commercial - Discontinued
* [[IBM Macro Assembler]]
* [[NASM Assembler]] - Open Source/LGPL - Current
* [[Microsoft Assembler]]
* [[Open Watcom|Wasm]] - Open Source - Current
* [[Open Watcom|Wasm]], [[JWasm]]
* Phoenix [[Pasm86]] - Commercial - Discontinued
* Phoenix Pasm86
* [[TopSpeed TechKit]] - Commercial - Discontinued
* [[TopSpeed TechKit]]
* Borland [[Turbo Assembler]] - Commercial - Discontinued
* Borland [[Turbo Assembler]]


====DOS disassemblers====
===DOS disassemblers===
* ASMGEN (Gersbach, Damke) - Public Domain
* ASMGEN (Gersbach, Damke) - Public Domain
* DASM (Williams)
* DASM (Williams)
* DIS86 (van Zandt)
* DIS86 (van Zandt)
* MD86
* MD86
* [[PICDIS-LITE]] - PIC - Shareware - Current
*PICDIS-LITE - PIC - Shareware
* Yilmaz Disassembler
* Yilmaz Disassembler


====Libraries, bindings and stubs====
===DOS development systems with built in assemblers===
* [[LZ4]] - Compression library - Open source - Current
*ASMEDIT - Freeware
* [[Open Watcom]] - Open Source
* [[Pecan UCSD Pascal]]


====DOS text & programmers editors with assembly language support====
===Libraries, bindings and stubs===
* [[Boxer]] - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download) - Commercial - Discontinued.
* [[LZ4]] - Compression library
* [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware autoindent.


==A list of assemblers that run under WinOS/2==
===Editor support===
*
* [[Boxer]] - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download)
* [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware auto-indent.


==Publications==
==Publications==
Line 72: Line 90:
* Holzner: ''OS/2 Assembly Language'' – Brady 1990, ISBN 0-13-642505-4
* Holzner: ''OS/2 Assembly Language'' – Brady 1990, ISBN 0-13-642505-4


===Local articles===
==Links==
*
 
===Tutorials and other learning material===
* [http://members.tripod.com/protected_mode/prashant/protmode.html Working in Protected Mode] - A tutorial for DOS programmers, but helpful for OS/2 newbies to a degree.
* [http://members.tripod.com/protected_mode/prashant/protmode.html Working in Protected Mode] - A tutorial for DOS programmers, but helpful for OS/2 newbies to a degree.
==Links==
* [http://www.sandpile.org/ Sandpile.org] - Lots of info on i86 and AMD64 instructions.
* [http://www.sandpile.org/ Sandpile.org] - Lots of info on i86 and AMD64 instructions.
* [http://www.plantation-productions.com/Webster/  The Art of Assembly Language Programming] - An often referenced 80x86 Asm on-line tutorial and reference, note though that the examples are in a HLA format, a specific type of assembly not available for an OS/2 toolset.
* [http://www.plantation-productions.com/Webster/  The Art of Assembly Language Programming] - An often referenced 80x86 Asm on-line tutorial and reference, note though that the examples are in a HLA format, a specific type of assembly not available for an OS/2 toolset.
====Mailing lists & forums====
*USENET: [news:comp.lang.asm.x86 comp.lang.asm.x86]
* [https://groups.yahoo.com/neo/groups/assembly/info Assembly Language Programming] - On Yahoo groups - very low volume list but with a large group of subscribers so it can kick into life unexpectedly.
====USENET====
* [news:comp.lang.asm.x86 comp.lang.asm.x86] - Go to the [https://groups.google.com/forum/#!forum/comp.lang.asm.x86 Google groups version] if you or your ISP are in any way newsgroup challenged.


==Standards==
==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]].
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.
*
 


[[Category:Programming Languages]] [[Category:Assembly]]
[[Category:Programming Languages]][[Category:Assembly]]

Latest revision as of 17:07, 21 September 2022

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 mnemonic 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 Hosted Assemblers

Commercial

Open Source

OS/2 Hosted Cross Assemblers

Open source

OS/2 disassemblers

Freeware

  • DISA - i86

Open Source

  • AVR Disassembler - AVR
  • BeaEngine - i86/AMD64
  • PIC Disassembler - PIC

Shareware

  • IDA - i86/AMD64

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

Editor support

  • Boxer - x86 and AT&T DSP32SL (Included by default) - Microchip 16C715, Mitsubishi 37451, PL/M-51 and 8051 (Contributed, requires download)
  • 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 auto-indent.
  • jEdit - Java based editor - m68k, Macro32, MCS51, R2000, Parrot and x86 built in, 6502, AVR and PIC optional.
  • Lugaru Epsilon - i86 syntax highlighting, code folding and syntax-aware auto-indent, 68HC12 available as a separate download.

Assembly language related programmer's utilities

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

DOS hosted assemblers

DOS disassemblers

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

DOS development systems with built in assemblers

Libraries, bindings and stubs

  • LZ4 - Compression library

Editor support

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

Publications

  • Murray; Pappas: Assembly Language Programming under OS/2 – McGraw-Hill 1988, ISBN 0-07-881412-X
  • Leventhal: Assembly Language Programming under OS/2 – Bantam 1989, ISBN 0-553-34578-8
  • Holzner: OS/2 Assembly Language – Brady 1990, ISBN 0-13-642505-4

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.