Kas ir instrukciju komplekts?

click fraud protection

Jebkurš CPU ir izstrādāts no paša sākuma, lai atbalstītu noteiktu instrukciju kopu. Instrukciju kopa ir cieti kodētu darbību kopums, ko CPU var veikt. Šīs darbības var būt, piemēram, divu skaitļu saskaitīšana, pāreja uz citu programmas daļu vai divu vērtību salīdzināšana. Katra darbība, ko dators var veikt, ir unikāli attēlota ar operētājsistēmu.

Opkodi

Izpildot programmu, centrālais procesors izmanto programmas skaitītāju, lai izsekotu, kura instrukcija ir jāizpilda pēc tam. Kad tiek iegūta instrukcija, programmas skaitītājs tiek palielināts par instrukcijas garumu, lai tas norādītu uz nākamās instrukcijas sākumu. Katra instrukcija sastāv no opkoda. Atkarībā no instrukcijas tajā var būt vai var nebūt operandu. Operandi var būt nemainīga vērtība vai rādītājs uz vērtības atrašanās vietu CPU reģistrā vai sistēmas RAM.

Kad ir iegūta pilnīga instrukcija, tā ir jāatšifrē. Šis ir process, kurā centrālais procesors atdala opkodu un visus operandus. Dekodētais operētājsistēmu kods tiek izmantots, lai iespējotu vai atspējotu noteiktus elektriskos ceļus CPU, kas nodrošinās pareizu darbību.

Kad instrukcija ir atšifrēta, tā tiks izpildīta. Precīza CPU darbība būs atkarīga no darbības. Saskaitīšanas darbība summē divas vērtības. Pārlēkšanas darbība aprēķinās, uz kurieni programmā pāriet. Salīdzināšanas darbība salīdzinās divas vērtības. NOP darbība būs dīkstāvē, jo NOP apzīmē No Operation.

Pēc tam lielākā daļa instrukciju izvadīs darbības rezultātu. Šī izeja var nonākt procesora reģistros un, ja nepieciešams, sistēmas RAM. Katrai no šīm darbībām ir nepieciešams viens pulksteņa cikls.

Nelegāli opkodi

Katrai CPU arhitektūrai ir savs ražotāja publicētais opkodu saraksts. Šo opkodu vērtības ne vienmēr ir vienas un tās pašas platformas, tāpēc programmatūra ir jākompilē dažādām arhitektūrām. Dažos gadījumos ražotājs iekļauj arī nedokumentētus operācijas kodus. Tie tiek saukti par “nelikumīgiem darbības kodiem”. Nelegālie operācijas kodi, lai gan tie nav dokumentēti, veiks to pašu funkciju katru reizi, kad tie tiks izsaukti. Tomēr kā nedokumentētas un nestandarta funkcijas CPU arhitektūras atjauninājumi tos var vienkārši noņemt.

Dažas agrīnās Apple II datorspēles balstījās uz konkrētiem nelegāliem opkodiem. Pēc tam viņiem radās veiktspējas un stabilitātes problēmas vēlākajā Apple IIc CPU versijā, jo IIc noņēma nelegālos operācijas kodus, kas bija nepieciešami spēlēm. Nelegālie operācijas kodi tika izmantoti arī autortiesību aizsardzības aprindās kā drošības metode, kas ir neskaidra cīņā pret pirātiem, kas uzlauž to saturu. Daži nelegālie operācijas kodi ir vienkārši domāti kā atkļūdošanas rīki un kļūdu apstrādātāji.

x86 instrukciju kopa satur lielu skaitu nedokumentētu nelegālu opkodu. Interesanti, ka daži no tiem ir kopīgi Intel un AMD centrālajiem procesoriem, norādot, ka abi uzņēmumi ir publiski informēti par savu mērķi, kamēr tie nav dokumentēti.

Sastādītāji un montāža

Lielākā daļa programmu ir rakstītas augsta līmeņa valodās. Tie ir salīdzinoši viegli lasāmi, bieži izmantojot angļu valodas vārdus vai saīsinājumus, lai samazinātu mācīšanās līknes. Lai dators varētu izpildīt šīs programmas, tās ir jāapkopo. Kompilators būtībā ir tulks. Tas paņem augsta līmeņa kodu un pārvērš to datora kodā, instrukcijās, ko centrālais procesors var saprast.

Dažās valodās ir iespējams arī palaist nekompilētu kodu, izmantojot iepriekš kompilētu programmu, kas ģenerē mašīnkodu. Assembly ir zema līmeņa programmēšanas valoda, kas izmanto saīsinājumu, lai izstrādātāji varētu tieši redzēt un kontrolēt veiktās darbības. NOP ir montāžas stenogrāfijas piemērs.

Secinājums

Instrukciju kopa ir oficiālo funkciju saraksts, kuras var palaist CPU arhitektūra. Tas ir to darbību saraksts, kuras var veikt. Šīs darbības tiek iekodētas centrālajā procesorā un izsauktas, izmantojot to attiecīgos opkodus.

Programmatūra parasti izmanto kompilatoru, lai tulkotu no cilvēkiem lasāma augsta līmeņa koda uz mašīnkodu, ko var nolasīt centrālais procesors. Dažreiz CPU arhitektūrā var būt nedokumentēti operācijas kodi, ko sauc par nelegāliem operācijas kodiem. Nelegālie operācijas kodi tehniski ir daļa no instrukciju kopas. Tomēr turpmākajās platformas iterācijās tie var nebūt droši pieejami. Neaizmirstiet atstāt savas domas zemāk esošajos komentāros.