Vad är en instruktionsuppsättning?

Varje CPU är designad från grunden för att stödja en viss instruktionsuppsättning. En instruktionsuppsättning är en uppsättning hårdkodade operationer som CPU:n kan utföra. Dessa operationer kan till exempel vara att lägga ihop två tal, hoppa till en annan del av programmet eller jämföra två värden. Varje operation en dator kan utföra representeras unikt av en opkod.

Opkoder

När ett program körs använder CPU:n en programräknare för att spåra vilken instruktion som måste utföras härnäst. När en instruktion hämtas inkrementeras programräknaren med längden på instruktionen så att den pekar på början av nästa instruktion. Varje instruktion består av en opkod. Beroende på instruktionen kan den innehålla operander eller inte. Operander kan vara ett konstant värde eller en pekare till platsen för ett värde i CPU-registret eller i systemets RAM.

När den fullständiga instruktionen har hämtats måste den avkodas. Detta är processen där CPU:n separerar op-koden och eventuella operander. Den avkodade opkoden används för att aktivera eller inaktivera specifika elektriska vägar i CPU:n som kommer att resultera i korrekt funktion.

När instruktionen har avkodats kommer den att exekveras. Det exakta beteendet hos CPU:n beror på funktionen. En additionsoperation kommer att summera två värden. En hoppoperation beräknar var i programmet man ska hoppa till. En jämförelseoperation kommer att jämföra två värden. En NOP-operation kommer att vara inaktiv, eftersom NOP står för No Operation.

De flesta instruktioner kommer då att mata ut resultatet av operationen. Denna utgång kan gå till processorregistren och, om nödvändigt, till systemets RAM. Var och en av dessa operationer tar en enda klockcykel att slutföra.

Olagliga opkoder

Varje CPU-arkitektur har sin specifika lista över opkoder publicerade av tillverkaren. Värdena för dessa opkoder är inte nödvändigtvis samma plattformsoberoende, vilket är anledningen till att programvara måste kompileras för olika arkitekturer. I vissa fall inkluderar tillverkaren även odokumenterade opkoder. Dessa kallas "olagliga opkoder". Odokumenterade opcodes kommer att utföra samma funktion varje gång de anropas. Som odokumenterade och icke-standardiserade funktioner kan dock uppdateringar av CPU-arkitekturen helt enkelt ta bort dem.

Vissa tidiga datorspel på Apple II förlitade sig på specifika olagliga opcodes. De drabbades sedan av prestanda- och stabilitetsproblem på den senare Apple IIc CPU-revisionen eftersom IIc tog bort de olagliga opkoderna som spelen krävde. Olagliga opkoder användes också i upphovsrättsskyddade kretsar som en säkerhetsmetod genom otydlighet i deras kamp mot pirater som knäcker deras innehåll. Vissa olagliga opkoder är helt enkelt menade som felsökningsverktyg och felhanterare.

x86-instruktionsuppsättningen innehåller ett stort antal odokumenterade olagliga opkoder. Intressant nog delas några av dessa mellan Intel och AMD-processorer, vilket indikerar att båda företagen är offentligt medvetna om sitt syfte medan de är odokumenterade.

Kompilatorer och montering

De flesta program är skrivna på högnivåspråk. Dessa är relativt lätta att läsa och använder ofta engelska ord eller stenografi för att minimera inlärningskurvor. För att en dator ska kunna köra dessa program måste de kompileras. En kompilator är i grunden en översättare. Den tar högnivåkoden och konverterar den till datorkod, instruktionerna som CPU:n kan förstå.

Det är också möjligt, på vissa språk, att köra okompilerad kod genom ett tidigare kompilerat program som genererar maskinkod i farten. Assembly är ett programmeringsspråk på låg nivå som använder stenografi för att tillåta utvecklare direkt synlighet och kontroll över de operationer som utförs. NOP är ett exempel på monteringsstenografi.

Slutsats

En instruktionsuppsättning är en lista över officiella funktioner som en CPU-arkitektur kan köra. Det är en lista över operationer som kan utföras. Dessa operationer är hårdkodade i CPU:n och anropas med sina respektive opkoder.

Programvara använder vanligtvis en kompilator för att översätta från mänskligt läsbar högnivåkod till maskinkoden som CPU:n kan läsa. Ibland kan en CPU-arkitektur ha odokumenterade opcodes, kallade illegala opcodes. Olagliga opkoder är tekniskt sett en del av instruktionsuppsättningen. Men de kanske inte är tillförlitligt tillgängliga i framtida plattformsupprepningar. Glöm inte att lämna dina tankar i kommentarerna nedan.


Hur man klona en hårddisk

Hur man klona en hårddisk

I den moderna digitala tidsåldern, där data är en värdefull tillgång, kan kloning av en hårddisk på Windows vara en avgörande process för många. Denna omfattande guide

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Står du inför felmeddelandet när du startar din dator som säger att drivrutinen WUDFRd inte kunde laddas på din dator?

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Upplever du NVIDIA GeForce-felkod 0x0003 på ditt skrivbord? Om ja, läs bloggen för att hitta hur du åtgärdar det här felet snabbt och enkelt.

Vad är SMPS?

Vad är SMPS?

Lär dig vad som är SMPS och innebörden av olika effektivitetsklasser innan du väljer en SMPS för din dator.

Varför slås inte min Chromebook på

Varför slås inte min Chromebook på

Få svar på frågan Varför slås inte min Chromebook på? I den här användbara guiden för Chromebook-användare.

Hur man rapporterar nätfiskebedrägerier till Google

Hur man rapporterar nätfiskebedrägerier till Google

Lär dig hur du rapporterar en bedragare till Google för att hindra dem från att lura andra med den här guiden.

Roomba stannar, sticker och vänder sig om – fixa

Roomba stannar, sticker och vänder sig om – fixa

Åtgärda ett problem där din Roomba robotdammsugare stannar, fastnar och fortsätter att vända sig om.

Hur man ändrar grafikinställningar på Steam Deck

Hur man ändrar grafikinställningar på Steam Deck

Steam Deck erbjuder en robust och mångsidig spelupplevelse precis vid dina fingertoppar. Dock för att optimera ditt spelande och säkerställa bästa möjliga

Vad är isoleringsbaserad säkerhet?

Vad är isoleringsbaserad säkerhet?

Vi skulle fördjupa oss i ett ämne som blir allt viktigare i världen av cybersäkerhet: isoleringsbaserad säkerhet. Detta förhållningssätt till

Hur man använder Auto Clicker för Chromebook

Hur man använder Auto Clicker för Chromebook

Idag skulle jag fördjupa dig i ett verktyg som kan automatisera repetitiva klickuppgifter på din Chromebook: Auto Clicker. Detta verktyg kan spara tid och