Osoittaminen on linkin (viittauksen) toteuttamista laitteeseen tai tietoelementtiin sen osoitteessa [1] ; luodaan vastaavuus samantyyppisten objektien joukon ja niiden osoitejoukon välille; menetelmä kohteen sijainnin tunnistamiseksi [2] .
Ohje ei saa sisältää nimenomaisia ohjeita operandista ; tässä tapauksessa operandi on implisiittisenä ja tosiasiallisesti määritelty käskyn toimintakoodilla.
Ohje ei saa sisältää nimenomaisia viitteitä operaatioon osallistuvan operandin osoitteesta tai osoitteesta, johon operaation tulos tulee sijoittaa, mutta tämä osoite on implisiittinen.
Käsky ei sisällä operandin osoitetta, vaan itse operandin. Suoralla osoituksella ei tarvita muistia operandin ja muistipaikan hakemiseen sen tallentamiseksi. Tämä auttaa lyhentämään ohjelman suoritusaikaa ja sen varaaman muistin määrää. Suora osoitus on kätevä erilaisten vakioiden tallentamiseen.
Osoite määritetään suoraan joksikin arvoksi, kaikki solut sijaitsevat yhdellä sivulla. Tämän menetelmän etuna on, että se on yksinkertaisin, ja haittana on, että prosessorin yleisrekisterien leveyden tulee olla vähintään yhtä leveä kuin prosessorin osoiteväylän leveys .
Tällä osoitusmenetelmällä suoritusosoite määritellään käskyn osoitekoodin ja perusosoitteen summana, joka yleensä tallennetaan erityiseen rekisteriin - perusrekisteriin.
Suhteellinen osoitus mahdollistaa pääsyn mihin tahansa muistisoluun, jossa käskyn osoitekoodi on pienempi. Tätä varten perusrekisterin bittien määrä valitaan siten, että mikä tahansa päämuistin solu voidaan osoittaa, ja käskyn osoitekoodia käytetään edustamaan vain suhteellisen lyhyt "offset". Offset määrittää operandin sijainnin suhteessa perusosoitteen antamaan taulukon alkuun.
Ohjaussanan osoitekenttä sisältää vain osoitetun solun vähiten merkitsevät bitit. Lisähakemistorekisteri . _
Rekisteriosoitus on lyhennetyn osoitteen erikoistapaus. Sitä käytetään, kun välitulokset tallennetaan yhteen keskusprosessorin työrekistereistä. Koska rekistereitä on paljon vähemmän kuin muistisoluja, pieni osoitekenttä voi riittää osoitteisiin.
Ensimmäistä kertaa MESM- ohjelmoinnissa käytettiin epäsuoraa 2. luokan ( osoittimien ) osoitetta [3] . Lisäämällä komentoon operandiosoitearvolla "0" sen muistisolun arvo, jossa tarvittavan operandin osoite sijaitsee, mahdollisti näiden muistisolujen käytön osoitearvoina, ts. osoittimia operandiosoitteisiin.
Epäsuora osoitus korkeammista arvoista otettiin ensimmäisen kerran käyttöön Address-ohjelmointikielellä (1955) [4] [5] ja toteutettiin "Kiev"-tietokoneen laitteistossa [6] . Tietokoneen "Kiev" komentojärjestelmässä on F-operaatio, jonka avulla voit alentaa osoitteen arvoa, ts. suorittaa "viivaoperaation" tai poistaa viittauksen osoittimeen ja ryhmäosoitteen muokkaustoiminnot [5] [6] mahdollistivat osoittimien useiden epäsuunnan suorittamisen laitteistossa.
Komennon osoitekoodi ei tässä tapauksessa osoita dataa sisältävää osoitetta, vaan sen muistisolun osoitetta, jossa operandin tai komennon osoite sijaitsee. Tämä on 2. sijan osoite tai osoittimia . Epäsuoraa osoitetta käytetään laajalti pienissä ja mikrotietokoneissa, joissa on lyhyt konesana, jotta voidaan voittaa lyhyen käskymuodon rajoitukset (rekisteröityä ja epäsuoraa osoitetta käytetään yhdessä).
Tietojenkäsittelyyn suunniteltujen laskentajärjestelmien tehokkuus paranee, jos on mahdollista suorittaa operaatioita vaihtelevan pituisilla sanoilla. Tällöin kone pystyy tarjoamaan vaihtelevan pituisten sanojen osoittamisen, joka yleensä toteutetaan määrittämällä käskyssä sanan alun sijainti muistissa ja sen pituus.
Pinomuistia , joka toteuttaa osoitteettoman operandien määrityksen, käytetään erityisen laajalti mikroprosessoreissa ja minitietokoneissa .
Koska rekisterin epäsuora osoitus edellyttää, että rekisteriin on esiladattuna epäsuora osoite RAM-muistista, mikä liittyy ajanhukkaan, tämäntyyppinen osoitus on erityisen tehokas käsiteltäessä datajoukkoa, jos on olemassa mekanismi, joka lisää tai pienentää arvoa automaattisesti. rekisterin sisältö aina, kun sitä käytetään. Tätä mekanismia kutsutaan automaattiseksi lisäämiseksi ja automaattiseksi vähentämiseksi. Tällöin riittää, että ensimmäisen prosessoitavan taulukkoelementin osoite ladataan rekisteriin kerran, ja sitten joka kerta kun rekisteriin haetaan, siihen muodostetaan seuraavan matriisielementin osoite.
Automaattisella lisäysosoitteella rekisterin sisältöä käytetään ensin operandin osoitteena ja sitten sitä lisätään taulukkoelementin tavumäärällä. Automaattisen decrement-osoituksen yhteydessä komennossa määritetyn rekisterin sisältöä vähennetään ensin taulukkoelementin tavumäärällä ja käytetään sitten operandin osoitteena.
Automaattista lisäystä ja automaattista vähentämistä voidaan pitää indeksoinnin yksinkertaistettuna versiona, erittäin tärkeänä mekanismina komentojen osoiteosien muuntamisessa ja laskentajaksojen järjestämisessä, joten niitä kutsutaan usein automaattisiksi indeksoinneiksi.
Tietokoneella toteutetuille menetelmille matemaattisten ongelmien ratkaisuun ja tietojenkäsittelyyn on tyypillistä laskentaprosessien syklisyys, kun samat toiminnot suoritetaan eri muistiin järjestetyille operandeille. Koska silmukan toistojen aikana käsitellyillä operandeilla on eri osoitteet, ilman indeksointia tarvitaan jokaisen toiston muodostavan oma käskysarja, joka eroaa osoiteosien suhteen.
Jaksojen ohjelmointi yksinkertaistuu huomattavasti, jos jokaisen jakson suorituksen jälkeen tarjotaan automaattinen muutos niiden osoiteosien vastaaviin komentoihin prosessoitavien operandien muistissa olevan sijainnin mukaan. Tällaista prosessia kutsutaan käskymuutoksiksi, ja se perustuu kykyyn suorittaa aritmeettisia ja loogisia operaatioita käskykoodeille.
Käyttöjärjestelmien näkökohdat | |||||
---|---|---|---|---|---|
| |||||
Tyypit |
| ||||
Nucleus |
| ||||
Prosessien hallinta |
| ||||
Muistinhallinta ja osoitus |
| ||||
Lataus- ja alustustyökalut | |||||
kuori | |||||
muu | |||||
Luokka Wikimedia Commons Wikikirjat Wikisanakirja |