Startsidan | Senaste ändringarna | Lista alla sidor | Sök
Assembly är ett programmeringsspråk där varje kommando, eller instruktion, är en direkt översättning från binära processorinstruktioner till textform.
Assembly anses ofta som det språk som ger absolut störst kontroll över vad som händer, då man i assembly skriver varje enskild instruktion som processorn ska exekvera.
Det spekuleras ofta kring huruvida assembly är portabelt eller inte. Sålänge man håller sig till ett portabelt standardbibliotek är sannolikheten att få koden portabel ganska stor. Det som kan försvåra processen är oftast skillnaden mellan hur funktioner anropas i olika operativsystem. Förut var det mer vanligt att koda med operativsystems-interrupts i assembly. Interrupts är vanligtvis helt olika beroende på vilket operativsystem, vilket radikalt sänker möjligheten att få koden portabel. Använder man ett länkat bibliotek används automatiskt en implementation för det systemet man befinner sig i.
,,ven om assembly kanske, med väldigt mycket knep och knåp, går att få portabelt under samma platform mellan olika operativsystem är det ändå inte ett språk man vanligtvis använder när man skriver program. Det beror mycket på att assembly blir svårt att hålla strukturerat när det börjar bli för mycket kod. Assembly är som mest användbart när man skriver kernelkod eller drivrutiner, men även detta görs ofta i C istället - Eller en blandning.
Det finns två större syntaxstandarder för hur assemblerkod skall skrivas; AT&T och Intel. Intelsyntaxet är mer minimalistiskt, innehåller endast nödvändiga tecken och är ganska läsvänligt, medan AT&T-standarden är striktare. AT&T-syntaxet är populärt bland GNU-anhängare, medan Intel-syntaxet förekommer mer i Windows och i flera BSD-derivats kernelkod (T.ex. FreeBSD).
Intel-syntax:
push rbp mov rbp,rsp sub rsp,0x10 lea rsi,[rbp-4] mov edi,0x500dd0 call 0x4006a0
push %rbp mov %rsp,%rbp sub $0x10,%rsp lea 0xfffffffffffffffc(%rbp),%rsi mov $0x500dd0,%edi callq 0x4006a0
Kategori: Programmeringsspråk
Senast ändrad av Independence 16:27 - 20:e Mars 2007
Innehållet på denna sida kan ändras utav alla som är medlemmar på Blinkenlights, men du måste logga in för att kunna ändra något.
Datum
2024-12-27 00:15
Vecka: 52
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.