Assembler: Forskelle mellem versioner
Content deleted Content added
Pugilist (diskussion | bidrag) billede |
Jeg har rettet i grammatikken. |
||
Linje 1:
[[File:Motorola 6800 Assembly Language.png|thumb|Eksempel på assemblersprog]]
En '''assembler''' er et [[computerprogram|program]], som oversætter [[assemblersprog]] til [[maskinkode]]. Programmer i assemblersprog er typisk lavet automatisk af en [[oversætter (datalogi)|oversætter]], men det er muligt
En assembler laver maskinkode til en bestemt [[computer]]type. Maskinkoden er ikke et færdigt program. Output fra assembleren skal behandles af en [[linker]] før, at der kommer et program ud af det.
== Virkemåde ==
Oversættelse fra assemblersprog til maskinkode foregår som oftest i to trin, der hver kræver en gennemlæsning af kildefilen. Først oversættes programmet linje for linje og bagefter indsættes de rette adresser på variabler og funktioner. De to trin gør det enkelt
I første trin laves en oversigt over alle definerede labels
I andet trin læses filen på ny og instruktionerne opdateres med konkrete adresser fra navnetabellen. Labeltabellen fortæller, hvor det skal gøres. Til sidst skrives den opdaterede maskinkode ud til en fil.
Det er ikke alle assemblersprog, der forudsætter, at der er defineret en label for alle variabler, men den overordnede mekanisme er den samme. Nogle assemblere læser koden igennem flere gange for at kunne optimere koden og ikke blot oversætte den. Optimeringen kan være at indsætte mere kompakte instruktioner
== Kilder ==
|