Category:Assembly: Difference between revisions

removed Encyclopedia tag; "Programming Languages" is already on the list and no other language is directly in the encyclopedia cat
(added notes on "assembly" vs "assembler" and non-arch-specific assemblers; added "see also" section; removed "stub" tag)
(removed Encyclopedia tag; "Programming Languages" is already on the list and no other language is directly in the encyclopedia cat)
 
(5 intermediate revisions by 2 users not shown)
Line 1:
{{language}}{{assembler language}}
{{language programming paradigm|Imperative}}
[[Category:Encyclopedia]]'''Assembly language''' (or just '''assembly'''; often abbreviated '''asm'''; sometimes called '''assembler''', although that more properly refers to the program that translates the assembly source into machine code) is a term used for a language which is as close to raw machine code as a language can get. Writing in assembly typically requires strict knowledge of the underlying hardware, which lends itself well to implementing [[wp:Firmware|firmware]] due to size and speed constraints.
 
Usually assemblyAssembly languages use textual "[[wp:mnemonicMnemonic|mnemonicmnemonics]]" instructions that correspond directly to binary machine code instructions (merely hiding details of bit-wise encoding[[wp:Opcode|opcodes]]),. exceptWriting forin ''macros'' which expand to multiple instructions, andassembly often givegives direct control over the overall layout of the assembled program on disk and in memory. Available instructions and codes are specific to the architecture being programmed on (although there are assemblers which provide an abstracted, non-architecture-specific language; the most notable oneof which is the [[wp:GNU Assembler|GNU Assembler]]). Assembly programs are typically loaded directly into a computer's memory and run from there. A software [[wp:Emulator|emulator]] can be used for testing purposes, or in the absence of hardware.
 
High-level assemblers may include many useful abstractions such as:
* ''macros'' - inline functions which expand to multiple instructions
* generic instructions that match the most appropriate instruction
* optimisations such as rearranging code
* [[:Category:Programming_paradigm/Object-oriented|OOP]] paradigms such as classes and objects
 
==See also==
*[[wp:Assembly language|Assembly language]] on Wikipedia (includes an in-depth discussion of assembly)
*[[wp:High-level assembler|High-level assembler]] (a.k.a. ''macro assembler'') on Wikipedia
*Compare with [[wp:Microcode|Microcode]].
1,150

edits