Hva er Inline Assembly?
Inline montering - også kalt inline assemblies language eller inline assembler - er en blokk med samlingsspråkkode som settes direkte inn i funksjoner og kildekode for et annet språk. Dette lar en programmerer sette inn en blokk med rent forsamlingsspråk i et program der resten av programmet bruker et ikke-forsamlingsspråk. Muligheten støttes under noen språk - for eksempel C, C ++ og Pascal - men er en funksjon i den spesifikke kompilatoren som brukes og er ikke nødvendigvis en del av språkstandarden. I mange tilfeller brukes inline-montering for å få tilgang til spesielle funksjoner i den sentrale prosesseringsenheten (CPU), for å optimalisere kode eller til å utføre operasjoner på veldig lavt nivå, for eksempel minne blitting. Selv om en viss kompilator eller programmeringsspråk kan ha støtte for å lage kjørbare plattformer som er plattform, begrenser bruk av inline-montering normalt programmet til systemer som kan bruke de spesifikke monteringsinstruksjonene eller ha samsvarende arkitektur.
Det er flere måter et språk eller en kompilator gjør at inline-montering kan inkluderes i en standard kildekodefil. En av de enkleste metodene er ganske enkelt å definere starten av en monteringsblokk, hvoretter alle kommandoer blir tolket som direkte montering. Noen integrerte utviklingsmiljøer (IDE) og kompilatorer lar faktisk inline-koden bruke variabler definert i programmet eller funksjonen uten eksplisitt å laste dem inn i register først.
En annen måte som inline-montering er definert i en kildefil er ved bruk av en dedikert montering-kun-språk-funksjon. I dette tilfellet kan inline-koden vanligvis ikke kombineres med ikke-monteringskode, for eksempel en kontrollsløyfe eller returerklæring. Når den er implementert på denne måten, trenger inline-funksjonen vanligvis også eksplisitt å skyve og pop-variabler av og på stabelen for å bruke lokale variabler eller passere verdier utenfor funksjonen.
En av de vanligste bruksområdene for inline monteringskode er optimalisering av punkter for små segmenter av et program. Avhengig av hvordan inline-koden er integrert, kan dette bety å bruke mer menneskelig lesbare språkkommandoer pakket rundt inline-koden som direkte utfører noen handling veldig raskt og effektivt. I tillegg, hvis målsystemet er kjent, kan koden bruke maskinvarespesifikke registre og kommandoer som kan gjøre at programmet kjøres mye raskere.
Inline montering kan brukes til å få tilgang til deler av operativsystemet, CPU eller til og med maskinvareporter direkte når andre metoder kan mislykkes eller forårsake systemfeil. Dette kan brukes til å raskt bytte rammer på et grafikkort eller for å sende signaler direkte til en bestemt avbrudds- eller maskinvareport. En av farene ved å bruke monteringskoden på denne måten er imidlertid at små feil kan være vanskelig å finne eller føre til at programmet krasjer uventet på visse systemer.