e-gradiva     Sistemi Motorola Omrežja      
  logotip  
SERŠ Maribor    

Vrste ukazov

Ukazi za prenos podatkov.

V to skupino spadajo ukazi,ki prenašajo informacijo iz ene lokacije v drugo. Razdelimo jih lahko v naslednje štiri vrste:

Oznaka prenos podatkov v resnici ne opisujeje dejanskega dogajanja. Pomnilniška lokacija se nikoli ne izbriše. V resnici gre za kopiranje (podvajanje) vsebine neke pomnilniške lokacije (ali registra).

Večina registrov v procesorju omogoča samo shranjevanje podatkov in vanje samo prenašamo podatke. Tako v večinoma CPE samo prenašajo podatke, pri večini procesorjev se izvajajo te vrste ukazov od ene tretjine do ene polovice. Pravilno načrtovanje teh ukazov je zato pomembno za pravilno in učinkovito delovanje procesorja. V principu bi zadoščal en sam univerzalen ukaz, ki bi omogočal vse prenose. Vendar pa bi bil tak ukaz dolg in počasen, zato ima večina procesorjev več ukazov za prenos podatkov.

Aritmetični ukazi

V to skupino spadajo ukazi za osnovne štiri aritmetične operacije, poleg njih pa še ukazi za povečevanje (prištej 1, inkrementiranje), zmanjševanje (odštej 1, dekrementiranje), aritmetično negacijo in izračun absolutne vrednosti. Aritmetične operacije so značilne za višje programske jezike.

Manjši procesorji imajo pogosto samo operaciji za seštevanje in odštevanje v fiksni vejici. Vse ostale operacije se da realizirati programsko. Pri večjih računalniških sistemih imamo tudi komplesne ukaze za seštevanje in množenje matrik. Aritmetični problemi so osnovno orodje za reševanje problemov in so že od začetka razvoja računalništva deležni velike pozornosti. Vendar pa običajno dosti ne obremenjujejo procesorje. Običajno je največ petina izvedenih operacij aritmetičnih. Običajno zato ne more biti sposobnost izvajanja aritnetilnih operacij merilo za učinkovitost procesorja.

Logični ukazi

V to skupino sodijo ukazi za logične (Boolove) in druge nenumerične operacije. Kot je dobro znano, je mogoče vse logične operacije realizirati z ukazom za operacijo IN-NE (angl. NAND) ali z operacijo ALI-NE (angl. NOR). Kljub temu ima zaradi lažje uporabe večina računalnikov ukaze za štiri Boolove operacije: negacijo (NOT), konjunkcijo (AND), disjunkcijo (OR) in ekskluzivno disjunkcijo (EXCLUSIVE OR). Precej pogosta raba logičnih operacij je izločanje posameznih bitov iz besede z maskiranjem z logično operacijo AND in vstavljanjem bitov v besedo z operacijo OR. Take operacije so precej pogoste pri programiranju vhodno–izhodnih naprav.

V skupino logičnih ukazov štejemo tudi ukaze za pomike ali za kroženje vsebine pomnilniške lokacije ali registra. Poniki se pogosto uporabljajo za deljenje (pomik v desno pomeni deljenje z 2) in množenje ter za programiranje vhodno–izhodnih naprav (pretvorba iz vzporedne v zaporedno obliko podatkov).

Logični ukazi tipično zaposlujejo procesor okoli dvajsetino časa izvajanja.

Ukazi za nadzor nad programom

Tem ukazom pogosto pravimo tudi nadzorni, kontrolni ali upravljalski ukazi ali tudi ukazi za spreminjanje vrstnega reda izvajanja ukazov. Njihova osnovna naloga je, da na osnovi rezultatov drugih ukazov izvajajo odločitev o tem, kateri ukaz se bo izvršil naslednji. pri vseh ostalih ukazih velja osnovna lastnost von Neumannovega računalnika, da se računalniki izvajajo zaporedoma.

Podskupine ukazov so:

Primerjave in pogojni skoki
Pogojni skoki so običajno realizirani tako, da delujejo na osnovi rezulatata prejšnje operacije. Pogoji za izvršitev pogojne skoka (vejitve) so predznak, prenos (angl. carry), preliv (angl. overflow), enačenje ter razne možne kobinacije teh pogojev. Pogosto so biti za primerjavo dostopni v posebnem restistru, ki se pogosto imenuje register stanja, pogojno-kodni register (angl. condition code) ali register zastavic (angl. flags).
Nadzor nad zankami
Pogojni skoki so običajno realizirani tako, da delujejo na osnovi rezulatata prejšnje operacije. Pogoji za izvršitev pogojne skoka (vejitve) so predznak, prenos (angl. carry), preliv (angl. overflow), enačenje ter razne možne kobinacije teh pogojev. Pogosto so biti za primerjavo dostopni v posebnem restistru, ki se pogosto imenuje register stanja, pogojno-kodni register (angl. condition code) ali register zastavic (angl. flags).
Ukazi za klic podprogramov
Podprogram je zaporedje ukazov, ki opravlja točno določeno nalogo in ga lahko večkrat kličemo iz različnih mest v programu. Ko podprogram opravi svojo nalogo, se vrne v glavni program in nadaljuje z ukazom, ki sledi klicu podprograma. Da se vrne na pravo mesto, je potrebno shraniti vrednost programskega števca. Danes se običajno za to nalogo uporablja sklad. Poleg drugih rešitev je primerrna še uporaba večkratnega nabora registrov.
Ukazi za nadzor nad delovanjem računalnika
V to skupino sodijo ukazi, s katerimi spreminjamo parametre delovanja CPE. Z njimi lahko spreminjamo parametre kot so način delovanja CPE (če imajo procesorji uporabniški in nadzorniški način delovanja), prioriteta ure, nastavitev sistemskega časa, zaščito delovnega pomnilnika, delovanje navideznega pomnilnika in zaustavitev delovanja procesorja. Ti ulazi so izjemno redko uporabljeni, so pa nujno potrebni. Običajno jih uporabljajo programi na nivoju operacijskega sistema in so za običajne programerje praviloma prepovedani.
Vhodno-izhodni ukazi
V to skupino spadajo ukazi, ki prenašajo ali sprožijo prenos informacije med CPE in glavnim pomnilnikom ter vhodno-izhodnimi napravami. Nekateri računalniki sploh nimajo posebnih ukazov za te prenose, temveč uporabljajo kar običajne ukaze za prenos podatkov.

SERŠ Maribor, Strokovna gimnazija, leto: 2004/05, avtor: Miran Kosi