Сваки ЦПУ је дизајниран од темеља да подржи одређени скуп инструкција. Скуп инструкција је скуп чврсто кодираних операција које ЦПУ може да изведе. Ове операције могу бити, на пример, сабирање два броја заједно, скакање на други део програма или упоређивање две вредности. Свака операција коју рачунар може да изведе је јединствено представљена кодом операције.
Опцодес
Приликом извршавања програма, ЦПУ користи програмски бројач да прати која инструкција треба следећа да се изврши. Када се инструкција преузме, програмски бројач се повећава за дужину инструкције тако да показује на почетак следеће инструкције. Свака инструкција се састоји од опкода. У зависности од инструкције, може или не мора укључивати операнде. Операнди могу бити константна вредност или показивач на локацију вредности у ЦПУ регистру или у системској РАМ меморији.
Када се комплетна инструкција преузме, потребно је декодирати. Ово је процес у коме ЦПУ одваја операцијски код и све операнде. Декодирани опкод се користи за омогућавање или онемогућавање одређених електричних путева у ЦПУ-у који ће резултирати исправним радом.
Када се инструкција дешифрује, биће извршена. Тачно понашање ЦПУ-а зависиће од операције. Операција сабирања ће сабрати две вредности заједно. Операција скока ће израчунати где у програму треба скочити. Операција поређења ће упоредити две вредности. НОП операција ће остати неактивна, јер НОП значи Нема операције.
Већина инструкција ће тада дати резултат операције. Овај излаз може ићи у регистре процесора и, ако је потребно, у системску РАМ меморију. За сваку од ових операција потребан је један циклус такта.
Илегални опкодови
Свака архитектура ЦПУ-а има своју специфичну листу операцијских кодова коју је објавио произвођач. Вредности ових кодова операција нису нужно исте на више платформи, због чега софтвер треба да се компајлира за различите архитектуре. У неким случајевима, произвођач такође укључује недокументоване кодове операција. Они се називају „незаконитим кодовима операција“. Илегални опкодови, иако нису документовани, обављаће исту функцију сваки пут када буду позвани. Међутим, као недокументоване и нестандардне карактеристике, ажурирања ЦПУ архитектуре могу једноставно да их уклоне.
Неке ране компјутерске игре на Аппле ИИ ослањале су се на одређене илегалне кодове операција. Затим су претрпели проблеме са перформансама и стабилношћу на каснијој ревизији ЦПУ-а Аппле ИИц, пошто је ИИц уклонио илегалне опкоде које су захтевале игре. Илегални опкодови су такође коришћени у круговима за заштиту ауторских права као безбедносни метод кроз опскурност у њиховој борби против пирата који су разбили њихов садржај. Неки илегални кодови операција су једноставно замишљени као алати за отклањање грешака и руковаоци грешкама.
Скуп к86 инструкција садржи велики број недокументованих илегалних кодова операција. Занимљиво је да неке од њих деле Интел и АМД ЦПУ, што указује да су обе компаније јавно свесне своје сврхе док нису документоване.
Састављачи и скупштина
Већина програма је написана на језицима високог нивоа. Они су релативно лаки за читање, често користе енглеске речи или стенографију како би се минимизирале криве учења. Да би рачунар могао да изврши ове програме, потребно их је компајлирати. Компајлер је у основи преводилац. Он узима код високог нивоа и претвара га у компјутерски код, упутства која ЦПУ може да разуме.
Такође је могуће, на неким језицима, покренути непреведени код кроз претходно компајлирани програм који генерише машински код у ходу. Асемблер је програмски језик ниског нивоа који користи стенографију како би омогућио програмерима директну видљивост и контролу над извршеним операцијама. НОП је пример асемблерске стенографије.
Закључак
Скуп инструкција је листа званичних функција које ЦПУ архитектура може да покрене. То је листа операција које се могу извршити. Ове операције су тврдо кодиране у ЦПУ-у и позивају се коришћењем одговарајућих кодова операција.
Софтвер генерално користи компајлер за превођење из кода високог нивоа који је читљив човеку у машински код који ЦПУ може да прочита. Понекад архитектура ЦПУ-а може имати недокументоване шифре операција, које се називају илегални кодови операција. Илегални опкодови су технички део скупа инструкција. Међутим, они можда неће бити поуздано доступни у будућим итерацијама платформе. Не заборавите да оставите своје мисли у коментарима испод.