This programming language may be used to instruct a computer to perform a task.
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 firmware due to size and speed constraints.
Assembly languages use textual "mnemonics" that correspond directly to machine instructions (opcodes). Writing in assembly often gives 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 of which is the GNU Assembler). Assembly programs are typically loaded directly into a computer's memory and run from there. A software 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
- OOP paradigms such as classes and objects
This category has the following 28 subcategories, out of 28 total.
- 360 Assembly (2 C, 220 P)
- FRISC Assembly (1 P)
- HLA (3 C, 1 P)
- RISC-V Assembly (4 P)
- SPARC Assembly (3 C, 1 P)
- X86 Assembly (7 C, 94 P)
- Z80 Assembly (3 C, 126 P)