4431: Programmeertaal: Assembler

          global    _start

          section   .text
_start:   mov       rax, 1             ; system call for write
          mov       rdi, 1             ; file handle 1 is stdout
          mov       rsi, message       ; address of string to output
          mov       rdx, 13            ; number of bytes
          syscall                      ; invoke operating system to do the write
          mov       rax, 60            ; system call for exit
          xor       rdi, rdi           ; exit code 0
          syscall                      ; invoke operating system to exit

          section   .data
message:  db        "Hello, World", 10 ; note the newline at the end

Assemblers zijn computerprogramma's die "mnemonics" (instructienamen) en bijbehorende parameters vertalen naar instructiecodes van een bepaalde CPU. De parameters, b.v. het adres van een getal in het geheugen, wordt door zelf gekozen namen aangegeven en door de assembler naar de juiste adreswaarde vertaald.

Maar elke "CPU" heeft zijn eigen "instructieset" (beschikbare instructies) en daarmee ook zijn eigen assembler en die heeft weer zijn eigen "syntax" (taalregels). Dit maakte dat programmeurs niet graag voor veel verschillende CPU's willen programmeren als dat in assembler moet. De leveranciers van CPU-chips zorgen dan ook dat nieuwe ontwerpen zo veel mogelijk overeenkomen met de vertrouwde instructieset en dat de nieuwe processor met de zelfde (misschien uitgebreide) assembler kan worden geprogrammeerd; hierdoor ontstaan er families van processoren..