b'\n_START_ARTICLE_\nInstruksjonssett\n_START_PARAGRAPH_\nEt instruksjonssett er en liste over alle instruksjoner, og deres varianter, som en prosessor eller virtuell maskin kan utf\xc3\xb8re. Det er dermed en viktig del av en datamaskinarkitektur siden den angir blant annet hvilke datatyper som kan benyttes, hvilke operasjoner prosessoren kan utf\xc3\xb8re, hvordan dataminnet brukes og hvordan I/O forg\xc3\xa5r._NEWLINE_Instruksjonssettet er mer eller mindre uavhengig av mikroarkitekturen den utf\xc3\xb8rende prosessoren er bygd etter, selv om de legger visse f\xc3\xb8ring for hverandre. For eksempel implementerer Intels og AMDs konkurrerende x86-prosessorer stort sett det samme instruksjonssettet, men er bygd opp forskjellig. Tilsvarende er ogs\xc3\xa5 en Pentium radikalt forskjellig fra en 8086, selv om f\xc3\xb8rstnevnte implementerer sistnevntes instruksjonssett.\n_START_SECTION_\nDesign\n_START_PARAGRAPH_\nDe andre delene av datamaskinarkitekturen p\xc3\xa5virker designet av et nytt instruksjonssettet. F\xc3\xb8r i tiden var minne dyrt og det var derfor viktig at programmene kunne v\xc3\xa6re s\xc3\xa5 sm\xc3\xa5 som mulig. Dette kan oppn\xc3\xa5s ved \xc3\xa5 ha variabel lengde p\xc3\xa5 instruksjonene, hvor ofte brukte instruksjoner er korte, mens de mindre brukte og mer spesialiserte blir kodet med et lengre format. I tillegg vil det v\xc3\xa6re en fordel \xc3\xa5 sl\xc3\xa5 sammen flere relaterte operasjoner til \xc3\xa9n instruksjon. Et typisk eksempel vil v\xc3\xa6re \xc3\xa5 la \xc3\xa9n instruksjon lese data fra minnet, utf\xc3\xb8re en operasjon p\xc3\xa5 dataene og s\xc3\xa5 skrive dem tilbake, fremfor \xc3\xa5 m\xc3\xa5tte bruke \xc3\xa9n instruksjon for hver av disse tre operasjonene. Datamaskiner med slike instruksjonssett kalles CISC (complex instruction set computer, som betyr datamaskin med komplekst instruksjonssett). Mange og omfattende instruksjoner betyr flere logiske kretser, som igjen betyr st\xc3\xb8rre, dyrere og mer kompliserte prosessorer._NEWLINE_Det motsatte av CISC er RISC (reduced instruction set computer, som betyr datamaskin med redusert instruksjonssett). Her legger man i stedet vekt p\xc3\xa5 ha et enkelt instruksjonssett best\xc3\xa5ende kun av de mest grunnleggende instruksjonene. Programmereren eller kompilatoren kan s\xc3\xa5 kombinerer disse enkle instruksjonene for \xc3\xa5 utf\xc3\xb8re mer kompliserte oppgaver. F\xc3\xa6rre og enklere instruksjoner betyr at man trenger f\xc3\xa6rre kretser for \xc3\xa5 implementere det i maskinvaren, som igjen betyr et enklere prosessordesign, billigere produksjon og mulighet for h\xc3\xb8yere hastighet. Et fast instruksjonsformat hvor alle instruksjoner er like lange vil ogs\xc3\xa5 hjelpe._NEWLINE_Et instruksjonssett trenger ikke v\xc3\xa6re rent CISC eller rent RISC, men kan ligge et sted i mellom. Det kan v\xc3\xa6re aktuelt \xc3\xa5 definere noen instruksjoner som utf\xc3\xb8rer kompliserte oppgaver i et instruksjonssett som ellers f\xc3\xb8lger RISC-tankegangen. Dette vil da v\xc3\xa6re instruksjoner som st\xc3\xa5r for ofte utf\xc3\xb8rte operasjoner, hvor kostnadene av den ekstra kompleksiteten i designet oppveies av hastighets\xc3\xb8kningen man f\xc3\xa5r ved \xc3\xa5 utf\xc3\xb8re operasjonene i maskinvare framfor i programvare. Nyere x86-prosessorer (typisk Pentium og utover) implementerer ogs\xc3\xa5 et CISC-instruksjonssett ved \xc3\xa5 konvertere instruksjonene til RISC-lignende mikrooperasjoner som s\xc3\xa5 utf\xc3\xb8res av prosessorkjernen._NEWLINE_Bruksomr\xc3\xa5det avgj\xc3\xb8r ogs\xc3\xa5 i stor grad hvordan instruksjonssettet er. En generell prosessor som masseproduseres for mange form\xc3\xa5l vil ha instruksjoner som kan benyttes til mange form\xc3\xa5l. Instruksjonsett for GPUer vil derimot ha instruksjoner for \xc3\xa5 knuse grafikkrelatert matematikk og hente data som angir geometriens form og utseende, mens digitale signalprosessorer har instruksjonssettet rettet mot sine oppgaver._NEWLINE_Uansett vil det v\xc3\xa6re viktig at man tenker gjennom hvilke instruksjoner et instruksjonssett skal inneholde. For hver instruksjon man inkluderer m\xc3\xa5 man legge til flere logiske kretser i prosessoren, noe som koster tid og penger b\xc3\xa5de \xc3\xa5 designe og produsere. Hvis man inkluderer en instruksjon det ikke er behov for, vil man ha sl\xc3\xb8st bort ressurser. Dette kan ha konsekvenser i lang tid framover ettersom man ikke bare kan fjerne en instruksjon fra et instruksjonssett da dette vil f\xc3\xb8re til at de programmene som bruker denne instruksjonen slutter \xc3\xa5 virke.\n_START_SECTION_\nListe over instruksjonssett\n_START_PARAGRAPH_\nDenne listen er ikke utfyllende ettersom gamle arkitekturer blir kassert og nye blir funnet opp hele tiden.'