Ir diezgan viegli saprast, ka datori izmanto programmatūru, piemēram, operētājsistēmu vai tīmekļa pārlūkprogrammu. Tomēr ir pat vispārzināms, ka programmatūra tiek izstrādāta, rakstot kodu jebkurā no daudzajām programmēšanas valodām. Parasti šis kods tiek apkopots formātā, ko dators var palaist.
Datori nevar saprast python, C, Java vai jebkuru citu programmēšanas valodu. Visas instrukcijas ir jāsniedz tās instrukciju kopas formātā. Instrukciju kopa ir datora instrukciju kolekcija. Katrs sīki apraksta, kāda darbība ir jāveic un uz kādiem datiem. Visizplatītākā datora instrukciju kopa ir x86. Konkrēti, x86-64 variants tiek saukts arī par AMD64.
Instrukciju komplekta pilnība
Ir četras galvenās apmācības kategorijas, kas nepieciešamas, lai dators varētu darboties. Aritmētiskās, loģiskās un maiņu instrukcijas. Norādījumi datu pārvietošanai starp sistēmas atmiņu un reģistriem. Ievades un izvades instrukcijas. Programmas vadības un statusa instrukcijas.
Aritmētiskās, loģiskās un maiņu instrukcijas ļauj datoram veikt aprēķinus. Šī instrukciju apakškopa tiek izmantota faktisko aprēķinu veikšanai. Visi dati, kas nepieciešami CPU darbībai, tiek glabāti RAM. Lai CPU varētu tam piekļūt, lai ar to darbotos. Taču datiem jābūt apstrādātāju reģistros. Tādējādi instrukcijas, kas pārvieto datus starp RAM un reģistriem, ir būtiskas veiktspējai.
Lai gan datori dara daudzas lietas, parasti notiek zināma cilvēku mijiedarbība. Šīs mijiedarbības uztveršana un risināšana ir ļoti svarīga, lai datori būtu interaktīvi. Turklāt datora kods bieži var sadalīties divās atšķirīgās filiālēs, un ir jāizdara izvēle, kuru izvēlēties. Tās ir zināmas kā filiāles instrukcijas un ir nepieciešamas sarežģītai programmēšanai, tostarp for un while cilpām. Kontroles instrukcijas ir arī būtiskas, lai nodrošinātu, ka darbības notiek pareizā secībā.
Kas ir instrukcija?
Instrukcija ir noteikta funkcionalitātes daļa, ko procesors var izpildīt. Darbība parasti tiek parādīta ar īsas formas instrukcijas nosaukumu. Faktiskā instrukcija tiek kodēta kā īss opkods. Daudzām darbībām ir jāveic darbības ar dažiem datiem. Adreses informācija šiem datiem ir pazīstama kā operandi. Visvienkāršākā darbība parasti ir pazīstama kā NOP. NOP ir saīsinājums no “bez operācijas”. NOP neprasa papildu operandus, jo tas uzdod CPU vienu pulksteņa ciklu palikt dīkstāvē. Operētājsistēmā x86 NOP ir kodēts kā 0x90.
JMP ir vēl viena operācija. Tas pielāgo programmas skaitītāju, kas norāda uz nākamo norādījumu. Parasti nākamā izpildāmā instrukcija ir nākamā instrukcija sarakstā. Tomēr tas nevar attiekties uz abiem gadījumiem, kad nonākat pie sazarojoša paziņojuma. JMP ļauj filiālei pāriet uz priekšu vai atpakaļ uz instrukciju kopu, kas, iespējams, atrodas tālu, ļaujot programmatūrai turpināt darbu, kā paredzēts. X86 formātā JMP ir kodēts kā 0xE9…0xEB, 0xFF/4 un 0xFF/5. JMP izmantos operandu, kurā ir norādīta atmiņas adrese, uz kuru jāatjaunina programmas skaitītājs, lai norādītu uz pareizo nākamo instrukciju.
Secinājums
Datora instrukcija, kas pazīstama arī kā mašīnmācība, ir viena instrukcija kā daļa no instrukciju kopas. Instrukcijās ir sīki aprakstītas precīzas darbības, kas procesoram jāpabeidz. Lielākajai daļai, bet ne visiem, ir jādarbojas ar datiem, un tie tiek izsaukti līdzās operandiem. Šie operandi norāda uz reģistriem, kas satur operējamos datus.