asume mälus kindlas kohas, kuhu näitab käsukoodi juures olev aadress. Operandi väärtus võib muutuda, aga asukoht peab jääma samaks. Kaudne adresseerimine käsuga antakse kaasa aadressi aadress ehk käsuga antav aadress näitab operandi aadressi asukohta mälus. Käsukoodiga kaasas olev aadress võib olla ka lühike aadress, mis näitab registrile, kus on operandi aadress (kaudse adresseerimise erijuht). Uutele operandidele viitamiseks tuleb vahetada vahepealse aadresside tabeli sisu. Autodekrementne ja autoinkrementne adresseerimine seotud pinumäluga (stack). Autodekrementne adresseerimine on seotus pinumällu kirjutamisega (stack push). Alguses vähendatakse pinumälu osuti väärtust, et see näitaks esimesele vabale pesale pinumälu piirkonnas, siis kirjutatakse operand mällu. Stackis sälilib viimasena kirjutatud sõna aadress. Autoinkrementne adresseerimine on seotud pinumälust lugemisega (stack pop). Alguses
adresseerimist ja käsu täitmist automaadi sisemine olek antud 21.Siinid: Mikroprotsessorite ja aadressi, mida jooksvalt registri sisu kasvatatakse registri hetkel. Iga järgmine olek oleneb arvutite ehitus sõltub sellest, kasutatakse pinumäluna. ALU sisu 2 võrra või 1 võrra. eelmisest. Et väljundsignaalide ja kuidas nende eri osad (ALU, teostab mikroprogrammi poolt Autodekrementne - sarnane olekute vahetumine toimuks registrid, mälu, sisend- ja lahendatud loogikaülesandeid. kaudsega, enne operandi soovitud korrapärasusega, tuleb väljundliidesed) on ühendatud Registermälu kasut. programmi adresseerimist kahandatakse automaadi mällu salvestada tervikuks. Juhtseadme operandide, vahetulemite ja
NT: ADD #12, D0. (programmi on konstant sisse kirjutatud) Otsene (Direct, Absolute) operandid viitavad mälu või registri asukohtadele, kus andmed asuvad NT: ADD D1, D0. Kaudne (Indirect) käsukoodis on operandiks aadressi aadress. Esmalt loetakse operandi poolt määratud aadressilt sisse andmete aadress ning alles siis saadakse reaalne ligipääs andmetele enesele NT: MOVE (A0), D0 Autodekrementne enne aadressiregistri kasutamist dekrementeeritakse tema väärtus automaatselt tagasi/väiksemaks ühe mäluasukoha võrra NT: ADD.B-(A0), D0. Autoinkrementne pärast aadressiregistri kasutamist inkrementeeritakse väärtus automaatselt edasi/suuremaks ühe mäluasukoha võrra NT: ADD.B (A0)+, D0. Baseerimisega aadress arvutatakse summana baasregistri väärtusest ja nihkest, mis antakse koos käsukoodiga
kahendinfot ühes või mõlemas suunas nihutada. Loendur on register, millesse salvestatud arv kas suureneb või väheneb 1 võrra signaali mõjul. Adresseerimise viisid Adresseerimise viis on viis, kuidas leida mälust operande või kohta, kuhu salvestada tulemus. Vahetu operand on kohe käsukoodis olemas konstandina. Otsene operand on mälus kindlas kohas, väärtus võib muutuda aga koht mitte. Käsukoodis on aadress kohe antud. Kaudne käsukoodiga on antud aadressi aadress. Autodekrementne seotud pinumällu kirjutamisega. Osutit vähendatakse nii et see näitaks kõige esimest vaba pesa, kuhu kirjutatakse siis väärtus. Autoinkrementne seotud pinumälust lugemisega. Võetakse osuti esimene väärtus ning suurendatakse seda siis. Baseerimisega on antud baasregistri väärtus nihe, ning nende summast saab aadressi. Indekseerimisega on antud baasaadress ja indeks ning nende summast saab aadressi. Bas + indeks kahe registri summa (ühes baasaadress, teises indeks)
ja salvestamise koha leidmiseks. Vahetu käsukoodi juurde kuulub kohe operand. Programmi on kirjutatud konstant ja masinkoodis on see käsukoodi juures. Otsene programmis on otseselt määratud operandi asukoht mälus. Operand peab asuma arvuti mälus kindlas kohas, kuhu näitab käsukoodi juures olev aadress. Kaudne käsuga antakse kaasa aadressi aadress ehk kaasa antav aadress näitab operandi aadressi asukohta mälus Autodekrementne seotud pinumällu kirjutamisega PUSH. Vähendatakse pinumälu osuti väärtust, et see näitaks esimesele vabale pesale, siis kirjutatakse operand mällu. Autoinkrementne seotud pinumälust lugemisega POP. Loetakse sõna, millele osutab pinumälu osuti, siis suurendatakse osundit nii, et näitaks järgmisele sõnale. Baseerimisega käsukoodiga antakse baasregistri väärtus ja nihe, aadress arvutatakse nende summas.
1. otsene adresseerimine operandid vahetult järgnevatel mäluaadressidel 2. vahetu adresseerimine operandide aadressid sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus 3. kaudne adresseerimine käsukoodis on aadressi aadress, operandide vahetamise võimalus CPU-de vahel 4. autoinkrementne adresseerimine pinumälust lugemiseks (pop) .. aadress saadakse registermälust, sellele lisatakse operandi mõõt & tulemus läheb pinumälu järgmisesse aadressi 5. autodekrementne adresseerimine registrist lühike aadress, mille järgi pinumälust operandid (aadressist lahutatakse op. mõõt) & resultaat pinusse 6. segmenteerimine kk + aadress segmendis .. kui kõik andmed on ühes mälusegmendis, segmentidevaheline liikumine käsuloenduri abil 7. indekseerimisega adresseerimine aadressibaas & indeks + nihe -> kui palju peab edasi liikuma, leidmaks operande, indeksiregister (selles pikk aadress) 8
2. vahetu adresseerimine operandide aadressid sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus 3. kaudne adresseerimine käsukoodis on aadressi aadress, operandide vahetamise võimalus CPU-de vahel 4. autoinkrementne adresseerimine pinumälust lugemiseks (pop) .. aadress saadakse registermälust, sellele lisatakse operandi mõõt & tulemus läheb pinumälu järgmisesse aadressi 5. autodekrementne adresseerimine registrist lühike aadress, mille järgi pinumälust operandid (aadressist lahutatakse op. mõõt) & resultaat pinusse 6. segmenteerimine kk + aadress segmendis .. kui kõik andmed on ühes mälusegmendis, segmentidevaheline liikumine käsuloenduri abil 7. indekseerimisega adresseerimine aadressibaas & indeks + nihe -> kui palju peab edasi liikuma, leidmaks operande, indeksiregister (selles pikk aadress) 8
1. otsene adresseerimine operandid vahetult järgnevatel mäluaadressidel 2. vahetu adresseerimine operandide aadressid sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus 3. kaudne adresseerimine käsukoodis on aadressi aadress, operandide vahetamise võimalus CPU-de vahel 4. autoinkrementne adresseerimine pinumälust lugemiseks (pop) .. aadress saadakse registermälust, sellele lisatakse operandi mõõt & tulemus läheb pinumälu järgmisesse aadressi 5. autodekrementne adresseerimine registrist lühike aadress, mille järgi pinumälust operandid (aadressist lahutatakse op. mõõt) & resultaat pinusse 6. segmenteerimine kk + aadress segmendis .. kui kõik andmed on ühes mälusegmendis, segmentidevaheline liikumine käsuloenduri abil 7. indekseerimisega adresseerimine aadressibaas & indeks + nihe -> kui palju peab edasi liikuma, leidmaks operande, indeksiregister (selles pikk aadress) 8
otsene adresseerimine operandid vahetult järgnevatel mäluaadressidel vahetu adresseerimine operandide aadressid sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus kaudne adresseerimine käsukoodis on aadressi aadress, operandide vahetamise võimalus CPUde vahel autoinkrementne adresseerimine pinumälust lugemiseks (pop), aadress saadakse registermälust, sellele lisatakse operandi mõõt ja tulemus läheb pinumälu järgmisesse aadressi autodekrementne adresseerimine registrist lühike aadress, mille järgi pinumälust operandid (aadressist lahutatakse op. mõõt) ja resultaat pinusse segmenteerimine kk + aadress segmendis, kui kõik andmed on ühes mälusegmendis, segmentidevaheline liikumine käsuloenduri abil indekseerimisega adresseerimine aadressibaas & indeks + nihe > kui palju peab edasi liikuma, leidmaks operande, indeksiregister (selles pikk aadress)
1. Otsene adresseerimine operandid vahetult järgnevatel mäluaadressidel. 2. Kaudne adresseerimine käsukoodis on aadressi aadress, operandide vahetamise võimalus CPU-de vahel. 3. Vahetu adresseerimine operandide aadressid on sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus. 4. Autoinkrementne pinumälust lugemiseks saadakse aadress registermälust, sellele lisatakse operandi mõõt ja tulemus läheb pinumälu järgmisse aadressi. 5. Autodekrementne registrist lühike aadress, mille järgi operandid ja mõõt pinumälusse. 6. Segmenteerimine käsukood ja segment aadressis kui kõik andmed on ühes pinumälu segmendis, segmentidevaheline liikumine käsuloenduri abil. 7. Indekseerimisega aadressi baas R indeks + nihe -> kui palju peab operandide liikumiseks edasi liikuma. 8. Baseerimisega käsukoodiga antakse ainult nihe, aadressi baas asub baasiregistris. 9. Baseerimise ja indekseerimisega nii indeks- ja baasregistrid. 10
Otsene adresseerimine – operandid vahetult järgnevatel mäluaadressidel Vahetu adresseerimine – operandide aadressid sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus Kaudne adresseerimine – käsukoodis on aadressi aadress, operandide vahetamise võimalus CPU-de vahel Autoinkrementne adresseerimine – pinumälust lugemiseks (pop) .. aadress saadakse registermälust, sellele lisatakse operandi mõõt & tulemus läheb pinumälu järgmisesse aadressi Autodekrementne adresseerimine – registrist lühike aadress, mille järgi pinumälust operandid (aadressist lahutatakse op. mõõt) & resultaat pinusse Segmenteerimine – kk + aadress segmendis .. kui kõik andmed on ühes mälusegmendis, segmentidevaheline liikumine käsuloenduri abil Indekseerimisega adresseerimine – aadressibaas & indeks + nihe -> kui palju peab edasi liikuma, leidmaks operande, indeksiregister (selles pikk aadress)
asuvad. nt: ADD D1 ,D0. 3. Kaudne adresseerimine käsukoodis on operandiks aadressi aadress: esmalt loetakse operandi poolt määratud aadressilt sisse andmete aadress ning alles seejärel saadakse reaalne ligipääs andmetele enesele. nt: MOVE (A0), D0. 4. Autoinkrementne adresseerimine Pärast aadressiregistri kasutamist inkremeteeritakse tema väärtus automaatselt edasi/suuremaks ühe mäluauskoha võrra.(postincrementing). nt: ADD.B (A0)+,D0. 5.Autodekrementne adresseerimine Enne aadressiregistri kasutamist dekrementeeritakse tema väärtus automaatselt tagasi/väikesemaks ühe mäluauskoha võrra.(predecrementing). nt: ADD.B -(A0),D0. 6. Segmenteerimine käsus sisalduv operand sisaldab väärtust, mis määrab ära konkreetse segmendi, kus andmed asuvad ning defineerib ka nö. offseti ehk selle, kui mitmenda segmenti elemendi poole pöörduti. 7. Suhteline adresseerimine võimaldab kirjutada positsioonivaba süntaksit, st.rakendamata
Otsene adresseerimine – programmis on otseslt määratud operandi asukoht mälus. See operand peab alati asuma arvuti mälus kindlas kohas, kuhu näitab käsukoodi juures olev aadress. Operandi väärtus võib muutuda, aga asukoht peab olema sama. Käsukoodiga võib kaasas olla lühike aadress, mis viitab operandi asukohale registrimälus. Kaudne adresseerimine – käsuga antakse kaasa aadressi aadress e. Käsuga antav aadress näitab operandi aadressi asukohta mälus. Autodekrementne adresseerimine on seotud pinumälu kirjutamisega. Alguses vähendatakse pinumälu osuti väärtust, et see näitaks esimesele vabale pesale pinumälu piirkonnas ja siis kirjutatakse operand mällu. Pinumälu osutis säilib viimasena kirjutatud sõna aadress. Autoinkrementne adresseerimine on seotud pinumälust lugemisega. Alguses loetakse sõna, millele osutab pinumälu osuti ja siis suurendatakse pinumälu osuti nii, et see näitaks järgmisele sõnele pinumälu piirkonnas.
1. otsene adresseerimine operandid vahetult järgnevatel mäluaadressidel 2. vahetu adresseerimine operandide aadressid sõltumatud ning antakse eraldi aadressiga kas registermälus või põhimälus 3. kaudne adresseerimine käsukoodis on aadressi aadress, operandide vahetamise võimalus CPU-de vahel 4. autoinkrementne adresseerimine pinumälust lugemiseks (pop) .. aadress saadakse registermälust, sellele lisatakse operandi mõõt & tulemus läheb pinumälu järgmisesse aadressi 5. autodekrementne adresseerimine registrist lühike aadress, mille järgi pinumälust operandid (aadressist lahutatakse op. mõõt) & resultaat pinusse 6. segmenteerimine kk + aadress segmendis .. kui kõik andmed on ühes mälusegmendis, segmentidevaheline liikumine käsuloenduri abil 7. indekseerimisega adresseerimine aadressibaas & indeks + nihe -> kui palju peab edasi liikuma, leidmaks operande, indeksiregister (selles pikk aadress) 8
Konstant paikneb mälus käsukoodide vahel või on pandud samasse mälu sõnasse käsukoodi juurde. 3. kaudne adresseerimine käsukoodiga antakse kaasa adressi aadress. Seejuures võib vahepealne aadressi tabel olla ol põhimälus või vahemälus. 4. autoinkrementne adresseerimine Kasutatakse pinumälust (STACK) lugemisel. 5. autodekrementne adresseerimine Kasutatakse pinumällu (STACK) kirjutamisel. 6. segmenteerimine ja lehekülgedeks jaotamine kk-ga kaasas lühem aadress adress mis viitab operandile segmendi või lehekülje sees. 7. adresseerimine indekseerimisega kk-ga ga kaasas pikk aadress ja indeks (võib olla lühem) võetakse registrist. 8
antakse operandi aadress käsuloenduri prog. jooksva aadressi suhtes. Operandi aadress leitakse käsuloenduri ja juhtaadressi summeerimisega. Kaudne - kõigepealt leitakse mälust operandi aadress ja seejärel teisest mälupesast operand. Indekseerimine - baasaadressina kasutatakse indeksiregistris salvestatud aadressi sõna. Autoinkrementne - sarnane kaudsega, aga pärast operandi adresseerimist ja käsu täitmist registri sisu kasvatatakse registri sisu 2 võrra või 1 võrra. Autodekrementne - 17 sarnane kaudsega, enne operandi adresseerimist kahandatakse registri sisu 2 või 1 võrra. 1. Vahetu adresseerimine direct addressing Operandi määratlemiseks kasutatakse tema täisaadressi. Instruktsioon pääseb ligi alati ainult täpselt samale mälukohale, nii et väärtus võib muutuda, aga asukoht mitte. Saab kasutada globaalsete muutujate korral. 2. Otsene adresseerimine - Immediate Addressing
Käsukoodiga ei ole kaasas mitte operandi aadress vaid operand ise. Tähendab, programmi on kirjutatud konstant ja masinkoodi transleerituna on see käsukoodi juures. Otsene adresseerimine: Käsukoodiga tuleb kaasa operandi aadress. Programmis on otseselt määratud operandi asukoht mälus. Operandi väärtus võib muutuda aga aadress jjääb samaks. Kaudne adresseerimine: Käsuga antakse kaasa aadressi aadress ehk kaasa antav aadress näitab operandi aadressi asukoha mälus. AutoDEkrementne adresseerimine: on seotud pinumällu kirjutamiseg(PUSH) Alguses vähendatakse pinumälu osuti väärtust, et see näitaks esimesele vabale pesale pinumälu piirkonnas ja siis kirjutatakse operand mällu. Pinumälu osutis säilib viimasena kirjutatud sõna aadress. AutoINkrementne adresseerimine: on seotud pinumälust lugemisega(POP). Alguses loetakse sõna, millele osutab pinumälu osuti ja siis suurendadakse osutit nii, et see näitaks järgmisele sõnale pinumälu piirkonnas.
juures olev aadress. Väärtus võib aga muutuda. Käsukoodiga võib kaasas olla ka lühike aadress (asukoht registermälus). Kaudne adresseerimine – käsuga antakse kaasa aadressi aadress e käsuga kaasa antav aadress näitab operandi aadressi asukohta mälus. Aadress võib olla ka lühike aadress, mis viitab registrile, kus on operandi aadress. Selleks, et viidata uutele operandidele, tuleb vahetada vahepealse aadresside tabeli sisu. Autodekrementne ja autoinkrementne adresseerimine – seotud pinumäluga. Autodekrementnte – seotud pinumällu kirjutamisega. Algul vähendatakse pinumälu osuti väärtust, et ta näitaks esimesele vabale pesale ja siis kirjutatakse operand mällu. Osutis säilib viimasena kirjutatud sõna aadress. Autoinkrementne – seotud pinumälust lugemisega. Augul loetakse sõna, millele osutab osuti ja siis suurendatakse osutit nii, et see näitaks järgmisele sõnale
2. vahetu adresseerimine - Käsukoodiga antakse kaasa konstant. Konstant paikneb mälus käsukoodide vahel või on pandud samasse mälu sõnasse käsukoodi juurde. 3. kaudne adresseerimine Käsukoodiga antakse kaasa aadressi aadress. Sealjuures võib vahepealne aadressi tabel olla põhimälus või registermälus. 4. autoinkrementne adresseerimine Kastatakse pnumälust (STACK) lugemisel. Pikemalt käsitleti POP operatsiooni mälude juurest. 5. autodekrementne adresseerimine kasutatakse pinumällu (STACK) kirjutamisel. Pikemalt käsitleti PUSH operatsiooni mälude juures. 6. segmenteerimine Segmenteerimisel ja lehekülgedeks jagamisel on mälu jagatud osadeks (segmendid, leheküljed) ja siis on käsukoodiga kaasas lühem aadress, mis viitab operandile segmendi või lehekülje sees. Käsk muutub lühemaks, kuid programmist peab hoolitsema , et pöördumine toimuks õigesse segmenti. Segmendi või lehekülje number on eraldi registris.
3) Kaudne adresseerimine - Indirect Addressing. Määratava operand tuleb mälust ja läheb mällu, aga tema aadress ei ole instruktsiooniga püsivalt seotud. Selle asmel säilitatakse aadressi registris. Nii saab erinevate instruktsiooni täitmistega koos kasutada erinevaid mälu sõnu. 4) Autoinkrementne adresseerimine - Autoincrement Addressing loetakse operant välja ja aadress säilitatakse modifitseeritult. LIFO- pinumälu, Pinuosuti (Stack Pointer), CP+1 liidetakse. 5) Autodekrementne - Autodecrement Addressing lahutamine. (sama, mis eelmisel). 6) Segmenteerimine - Segmentation vanem osa aadr.-st hoitakse lehekülje nr alles ja modifitseeritakse. Segmendi aadress + operandi aadress 7) Adresseerimine indekseerimisega – Indexed Addressing käsu juurde kuulub pikk baasaadress ja liidetaske juurde nihe, mis annab uue aadressi. 8) A baseeerimisega – Based Addressing Käsukoodi juurde kuulub nihe, mis võib olla lühem kui pikk aadress.