Hvad er inline -samling?
Inline -samling - også kaldet inline samlingssprog eller inline -samler - er en blok af samlingssprogkode, der indsættes direkte i funktioner og kildekode til et andet sprog. Dette gør det muligt for en programmør at indsætte en blok af rent samlingssprog i et program, hvor resten af programmet bruger et ikke-samlivssprog. Evnen understøttes under nogle sprog - såsom C, C ++ og Pascal - men er et træk ved den anvendte specifikke kompilator og er ikke nødvendigvis en del af sprogstandarden. I mange tilfælde bruges inline-samling til at få adgang til specielle funktioner i Central Processing Unit (CPU), til at optimere kode eller til at udføre operationer på lavt niveau, såsom hukommelsesblæsning. Selvom et bestemt kompilator- eller programmeringssprog muligvis har støtte til at oprette tværplatformudøvelser, begrænser brugen af inline-samling normalt programmet til systemer, der kan anvende de specifikke samlingsinstruktioner eller have matchende ArchitectuRe.
Der er flere måder, hvorpå et sprog eller en kompilator tillader inline -samling at blive inkluderet i en standard kildekodefil. En af de nemmeste metoder er simpelthen ved at definere starten af en samlingsblok, hvorefter alle kommandoer fortolkes som direkte samling. Nogle integrerede udviklingsmiljøer (IDE'er) og kompilatorer tillader faktisk inline -koden at bruge variabler defineret i programmet eller funktionen uden eksplicit at indlæse dem i registre først.
En anden måde, hvorpå inline-samling defineres inden for en kildefil, er ved hjælp af en dedikeret monteringssproglig funktion. I dette tilfælde kan den inline-kode normalt ikke kombineres med ikke-samlingskode, såsom en kontrolsløjfe eller returnekning. Når den implementeres på denne måde, skal inline -funktionen normalt også eksplicit skubbe og popvariabler på og uden for stakken for at bruge lokale variabler eller videregive værdierside funktionen.
En af de mest almindelige anvendelser til inline -samlingskode er præcisoptimering for små segmenter af et program. Afhængig af hvordan inline-koden er integreret, kan dette betyde at bruge mere menneskelige læsbare sprogkommandoer indpakket omkring inline-kode, der direkte udfører nogle handlinger meget hurtigt og effektivt. Hvis målsystemet er kendt, kan koden også bruge hardwarespecifikke registre og kommandoer, der kan få programmet til at udføre meget hurtigere.
Inline -samling kan bruges til at få adgang til dele af operativsystemet, CPU eller endda hardwareporte direkte, når andre metoder kan mislykkes eller forårsage en systemfejl. Dette kan bruges til hurtigt at ændre rammer på et grafikkort eller til at sende signaler direkte til en bestemt afbrydelse eller hardwareport. En af farerne ved at bruge samlingskoden på denne måde er imidlertid, at små fejl kan være svære at finde eller få programmet til at gå uventet ned på visse systemer.