Assembler
Assembler (eller assembelspråk) är ett enklare sätt att skriva maskinkod genom att ge instruktionerna korta memokoder (mnemonics). Assembler skiljer sig beroende på vilken CPU man skriver den för.Assemblerkoden "översätts" sedan till maskinkod genom en assemblerare. Det finns även disassemblerare som översätter färdig maskinkod till assemblerkod, med mer eller mindre lyckat resultat.Det finns ett antal varianter, bland annat x86, 68k och PIC.
Skillnader som finns mellan dessa är bland annat att de har olika antal assembler-instruktioner beroende på om det är en RISC eller CISC CPU. I en RISC CPU förekommer det färre instruktioner än i en CISC CPU.
Instruktionerna i en assembler tar vanligen högst
- ett argument (stackbaserade processorer)
- två argument (ex. x86,68k)
- tre argument (ex. MIPS)
De främsta anledningarna till att man idag inte använder assembler lika mycket som förr är primärt att koden blir unik för varje processor vilket medför att det blir en ökad kostnad i produktion för flera olika processorer och att assemblerkod generellt sett tar längre tid att skriva/underhålla. En rad assemblerkod (lågnivåspråk) innehåller färre instruktioner än en rad i ett högnivåspråk.
Det främsta användningsområdet för assembler idag är i tidskritiska och beräkningsintensiva uppgifter, som exempelvis grafikalgoritmer.
Eftersom olika CPUs har olika instruktionsset så är det svårt att göra en lista men här har jag försökt få med några av de vanligaste varianterna:
- MOV (x86) eller MOVE (68k) Flyttar (kopierar) data från ett dataregister eller en minnescell (källa) till en motsavrande dito (destination).
- CLR - Nollställer operanden.
- INC - Ökar operanden med 1.
- ADD - Adderar källa till destination.
- MUL - Multiplicerar källa med destination där resultatet också sparas.
- SHL - Vänsterskiftar operanden. Biten längs till vänster faller ut (Sparas i en flagga) och till höger skiftas en nolla in. (Skifta ett steg är det samma som att multiplicera med 2)
- ROL - Roterar bitmönstret åt vänster. Biten som skiftas ut skiftas in i den andra ändan.
- TST - Testar operanden. Resultatet sparas i en flagga som sedan exempelvis kan användas för att vilkora ett hopp i koden.
- JMP - Flyttar villkorslöst programpekaren till ny adreess.
- JCC - Flyttar villkorligen programpekaren. Efter TST exempelvis
Det finns även en uppsättning påhittade mnemonics.
- CPL - Cut Power Lead. (Kapa strömkabeln.)
- HCF - Halt and Catch Fire. (Farligt för datorns hälsa.) Läs mer här!
- SBK -Skit Bakom Knapparna. Eller SBT -Skit Bakom Tangentbordet.
Artikeln skriven 2009-01-18 av Learning4sharing
Inga kategorier för denna artikel än...Intresserad av fler artiklar?
SkogslönnHängslen
Sekundärminne
Acer
Arianism
Seldjuk
Arctostaphylos
Calluna
Kantljungar