Forsamlingssprog definition

Hvad er et forsamlingssprog?

Et assemblersprog er en type programmeringssprog på lavt niveau, der er beregnet til at kommunikere direkte med en computers hardware.I modsætning til maskinsprog, som består af binære og hexadecimale tegn, er assemblersprog designet til at kunne læses af mennesker.

Programmeringssprog på lavt niveau såsom assemblersprog er en nødvendig bro mellem den underliggende hardware på en computer og programmeringssprogene på højere niveau - såsom Python eller JavaScript - hvori moderne softwareprogrammer er skrevet.

Nøgle takeaways

  • Et assemblersprog er en type programmeringssprog, der oversætter sprog på højt niveau til maskinsprog.
  • Det er en nødvendig bro mellem softwareprogrammer og deres underliggende hardwareplatforme.
  • Assembly sprog er afhængig af sprogsyntaks, etiketter, operatører og direktiver for at konvertere kode til brugbar maskininstruktion.
  • Assembly sprog kan passere gennem single-pass eller multi-pass assemblers, hver med specifikke anvendelser og fordele.
  • I dag skrives assemble-sprog sjældent direkte, selvom de stadig bruges i nogle nicheapplikationer, såsom når ydeevnekravene er særligt høje.

Sådan fungerer Assembly-sprog

Grundlæggende er de mest basale instruktioner, der udføres af en computer, binære koder, bestående af enere og nuller.Disse koder oversættes direkte til "tændt" og "sluk"-tilstande af den elektricitet, der bevæger sig gennem computerens fysiske kredsløb.I det væsentlige danner disse simple koder grundlaget for "maskinsprog", den mest grundlæggende variation af programmeringssprog.

Selvfølgelig ville intet menneske være i stand til at konstruere moderne softwareprogrammer ved eksplicit at programmere etere og nuller.I stedet må menneskelige programmører stole på forskellige abstraktionslag, der kan tillade sig selv at formulere deres kommandoer i et format, der er mere intuitivt for mennesker.

Konkret udsteder moderne programmører kommandoer på såkaldte "højniveausprog", som bruger intuitiv syntaks såsom hele engelske ord og sætninger, såvel som logiske operatorer såsom "og", "eller" og "andet", der er velkendt til daglig brug.

I sidste ende skal disse kommandoer på højt niveau dog oversættes til maskinsprog.I stedet for at gøre det manuelt, er programmører afhængige af assemblersprog, hvis formål er automatisk at oversætte mellem disse højniveau- og lavniveausprog.De første assemblersprog blev udviklet i 1940'erne, og selvom moderne programmører og moderne naturlige sprogprocessorer bruger meget lidt tid på at beskæftige sig med assemblersprog, forbliver de ikke desto mindre afgørende for en computers overordnede funktion.

I de tidlige dage af computing ville systemprogrammering og applikationsprogrammering begge foregå udelukkende i assemblersprog.Uden assemblersprog ville mange moderne computere og overordnede sprog, vi bruger i dag, ikke have været mulige.

Komponenter af Assembly Language

Syntaks

Når du skriver en kode på et hvilket som helst programsprog, er der en observerbar, specifik rækkefølge af regler, som skal følges for at tillade en compiler at udføre koden uden fejl.Disse regler er defineret som syntaksen, og de indeholder kriterier såsom det maksimale antal tilladte tegn, hvilke tegn kodelinjer skal starte med, eller hvad visse symboler "dvs. et semikolon" betyder.

Etiket

En etiket er et symbol, der repræsenterer adressen, hvor en instruktion eller data er gemt.Dets formål er at fungere som destination, når der henvises til det i en erklæring.Etiketter kan bruges overalt, hvor en adresse kan bruges på assemblersprog.En symbolsk etiket består af en identifikator efterfulgt af et kolon, mens numeriske etiketter består af en enkelt digital efterfulgt af et kolon.

Operatører

Også kaldet kommandoer er operatorer logiske udtryk, der forekommer efter etiketfeltet.Derudover skal det være indledt med mindst ét ​​mellemrumstegn.Operatører kan enten være opcode eller direktiv.Opcode svarer direkte til maskininstruktioner, og operationskoden inkluderer ethvert registernavn, der er knyttet til instruktionen.Alternativt er retningsgivende driftskoder instruktioner, som er kendt af montøren.

direktiv

Direktiver er instruktioner til montøren, der fortæller, hvilke handlinger der skal finde sted under montageprocessen.Direktiver har betydningen af ​​at deklarere eller reservere hukommelse til variabler; disse variabler kan genkaldes senere i processer for at udføre mere dynamiske funktioner.Direktiver bruges også til at opdele programmer i forskellige sektioner.

Makro

En assemblersprogsmakro er et skabelonskoformat, der præsenterer en række eller et mønster af udsagn.Denne sekvens af assemblersprogssætninger kan være fælles for flere forskellige programmer.En makro-facilitet bruges til at fortolke makrodefinitioner, mens et makrokald indsættes i kildekoden, hvor "normal" assembly-kode ville være gået i stedet for makrosættet af sætninger.

Mnemonisk

En mnemonic er en forkortelse for en operation.En mnemonic indtastes i operationskoden for hver samlingsprograminstruktion for at specificere en forkortet "opkode", der repræsenterer et større, komplet sæt koder.For eksempel har mnemonikken "multiplicer med to" et komplet sæt kode, der udfører mnemonikken.

Højfrekvent handel

I dag forbliver assemblersprog genstand for studier af datalogistuderende for at hjælpe dem med at forstå, hvordan moderne software relaterer til dets underliggende hardwareplatforme.I nogle tilfælde skal programmører fortsætte med at skrive på assemblersprog, såsom når kravene til ydeevne er særligt høje, eller når den pågældende hardware er inkompatibel med nogen af ​​de nuværende højniveausprog.

Et sådant eksempel, der er relevant for finansiering, er de højfrekvente handelsplatforme (HFT), der bruges af nogle finansielle virksomheder.På denne markedsplads er hastigheden og nøjagtigheden af ​​transaktioner af afgørende betydning, for at HFT-handelsstrategierne kan vise sig at være rentable.For at opnå en fordel i forhold til deres konkurrenter har nogle HFT-firmaer derfor skrevet deres handelssoftware direkte på assemblersprog, hvilket gør det unødvendigt at vente på, at kommandoerne fra et sprog på højere niveau bliver oversat til maskinsprog.

Mange mener, at samlingssprog har de stejleste indlæringskurver og er de sværeste computersprog at lære.

Fordele og ulemper

Assembly sprog kan normalt udføres hurtigere end sprog på højt niveau.Det er relativt nemt at indsætte eller slette komponenter af assemblersprogkode, og assemblersprog kræver normalt færre instruktioner for at udføre en opgave sammenlignet med andre typer sprog.

Assembly sprog bruges også ofte af programmører, der ønsker større kontrol over deres computere, da assemblersprog giver dig mulighed for direkte at manipulere din hardware.På grund af dets hastighed og vigtighed er nogle programmer specifikt skrevet ved hjælp af assemblersprog, da koden normalt kan forblive mindre.

Samlingssprog har en tendens til at have flere ulemper.Lange programmer, der er skrevet med assemblersprog, kræver normalt tungere computerkraft og kan ikke køres på små computere.Nogle kan finde syntaksen for assemblersprog sværere at huske, og det kan tage noget længere tid at kode ved hjælp af assemblersprog, da det er mere komplekst.Derudover er assemblersprog normalt ikke bærbart mellem forskellige fabrikater af forskellige computere; svarende til hvordan personalegoder går tabt, når man skifter virksomhed, kan sprog ikke problemfrit oversættes til forskellige computere.

Fordele
  • Udførelsen kan være mere enkel sammenlignet med andre sprog

  • Udførelse er normalt hurtigere sammenlignet med andre sprog

  • Giver mulighed for direkte kontrol over hardware

  • Koden kan forblive mindre sammenlignet med andre sprog

Ulemper
  • Programmering kan være mere udfordrende at opfange sammenlignet med sprog på højt niveau

  • Syntaks af assemblersprog er vanskelig

  • Ikke bærbar mellem maskiner

Typer af samlere

Monteringssprog skal oversættes til maskinsprog ved hjælp af en assembler.Der er to primære typer samlere.

En single-pass assembler scanner et program én gang og laver et tilsvarende binært program.Denne type assembler validerer assemblersprogkode ved at slå koden op i en mnemonisk kodetabel.En single-pass assembler er ofte hurtigere end en multi-pass assembler, og der er normalt ikke behov for at konstruere nogen mellemkode.

En multi-pass assembler betyder, at assembleren bruger mere end én pas.Multi-pass assemblers opretter en tabel med hvert symbol og hver af deres værdier i den første passage, og brug derefter tabellen i fremtidige pass til at generere ny kode.Hvert særskilt pas håndterer normalt en anden specifik opgave.Selvom de normalt er langsommere, kan multi-pass assemblers med modulære strukturer ofte genbruges til forskellige maskiner.

Eksempel på Assembly Language Code

Nedenfor er et eksempel på Netwide Assembler (NASM) assemblersprogkode.

Eksempel på Assembly Language Code.

Loyola Marymount University

I dette eksempel udløser SYSCALL-instruktionen mod slutningen af ​​koden den del af hukommelsen, hvor operativsystemtjenesterne er gemt.Derefter bruges koden RAX til at kalde for kode, der skal skrives, derefter RDI for at afslutte.SYSCALL-funktionen bruges to gange til at starte operativsystemet samt til at indikere til systemet, når koden er færdig, og det er tid til at afslutte.

Hvad er et eksempel på et forsamlingssprog?

De mest almindeligt anvendte assemblersprog inkluderer ARM, MIPS og x86.

Er C++ et assemblersprog?

C++ består ikke af monteringskode.C++ computersproget består af C++ kode, som en compiler oversætter til en eksekverbar maskinkode.

Er Python et assemblersprog?

Python er mere avanceret end assemblersprog.Assembly-sprog betragtes som et sprog på lavt niveau, mens sprog på højt niveau som C, Java eller Python bruger 0'er og 1'er i stedet for tal, symboler og forkortelser.

Hvordan bruges forsamlingssprog i dag?

Selvom de betragtes som sprog på et lavere niveau sammenlignet med mere avancerede sprog, bruges assemblersprog stadig.Assembly sprog bruges til direkte at manipulere hardware, få adgang til specialiserede processorinstruktioner eller evaluere kritiske ydeevneproblemer.Disse sprog bruges også til at udnytte deres hastighedsfordel i forhold til sprog på højt niveau til tidsfølsomme aktiviteter såsom højfrekvent handel.

Bundlinjen

Monteringssprog er kode på lavt niveau, der er afhængig af et stærkt forhold mellem instruktionerne, der indtastes ved hjælp af kodningssproget, og hvordan en maskine fortolker kodeinstruktionerne.Kode konverteres til eksekverbare handlinger ved hjælp af en assembler, der konverterer input til genkendelige instruktioner til maskinen.Selvom det var udbredt i de tidlige dage af computing, bruger mange større systemer sprog på højere niveau.