CPU:er Använd en uppsättning instruktioner som heter
Machine Code , som är binära nummer (sekvenser av 0s och 1s). Dessa instruktioner är mycket grundläggande och utför enkla operationer som:
* aritmetiska och logiska operationer: Lägga till, subtrahera, multiplicera, dela, jämföra (större än, mindre än, lika med), logiska och, eller inte, etc.
* Data Movement: Flytta data mellan register (internt CPU -minne), minnesplatser och inmatnings-/utgångsenheter. Detta inkluderar att ladda data från minnet till ett register, lagra data från ett register i minnet och överföra data mellan register.
* Kontrollflöde: Ändra ordningen i vilken instruktioner utförs. Detta inkluderar:
* Jump/Branch: Ändra instruktionspekaren till en annan adress i minnet, vilket möjliggör villkorad exekvering (om-då annars uttalanden) och slingor.
* samtal/retur: Ringer subroutines (funktioner) och återgår till samtalspunkten.
* Input/Output (I/O): Kommunicera med externa enheter som tangentbord, möss, skärmar, hårddiskar och nätverksgränssnitt.
* Systemkontroll: Instruktioner relaterade till att hantera CPU:n själv, till exempel hantering av avbrott (signaler som indikerar händelser som kräver omedelbar uppmärksamhet) och ändring av CPU -lägen (t.ex. växling mellan användare och kärnläge).
Dessa grundläggande instruktioner kombineras för att skapa mer komplexa operationer och program. Det är viktigt att notera att * specifika * instruktionerna varierar avsevärt mellan olika CPU-arkitekturer (x86, ARM, RISC-V, etc.). Varje arkitektur har sin egen instruktionsuppsättning arkitektur (ISA) och definierar de instruktioner den förstår. Medan kategorierna av instruktioner är liknande, skiljer sig de exakta opkoderna (binära representationer av instruktionerna) och deras funktionaliteter.
Programmerare arbetar sällan direkt med maskinkod. Istället använder de programmeringsspråk på högre nivå (som C ++, Java, Python) som sedan sammanställs eller tolkas till maskinkod som CPU kan utföra. Assemblers översätter monteringsspråk (en mänsklig läsbar representation av maskinkod) till maskinkod.