Što je način adresiranja registra?
Evo nekih uobičajenih načina adresiranja registara:
1. Registrirajte izravno adresiranje:
U izravnom adresiranju registra, operand je sam registar. Operacijski kod instrukcije specificira registar koji će se koristiti. Primjer:
```sklop
DODAJTE R1, R2; Dodaje sadržaj R2 u R1 i pohranjuje rezultat u R1
```
2. Registrirajte neizravno adresiranje:
U neizravnom adresiranju registara, operand je memorijska adresa pohranjena u registru. Sadržaj registra koristi se kao adresa s koje se dohvaća stvarni operand. Primjer:
```sklop
ADD (R1), R2; Dodaje sadržaj memorijske lokacije na koju ukazuje R1 u R2 i pohranjuje rezultat u R2
```
3. Registrirajte relativno adresiranje:
U relativnom adresiranju registra, vrijednost pomaka dodaje se sadržaju registra da bi se formirala efektivna adresa operanda. Pomak može biti konstanta ili vrijednost nekog drugog registra. Primjer:
```sklop
ADD [R1+10], R2; Dodaje sadržaj memorijske lokacije na adresi R1+10 u R2 i pohranjuje rezultat u R2
```
4. Registrirajte adresiranje pomaka:
U adresiranju pomaka registra, sadržaj registra dodaje se osnovnoj adresi da bi se formirala efektivna adresa operanda. Osnovna adresa je obično konstanta. Primjer:
```sklop
ADD [1000+R1], R2; Dodaje sadržaj memorijske lokacije na adresi 1000+R1 u R2 i pohranjuje rezultat u R2
```
5. Indeksirano adresiranje:
Indeksirani način adresiranja koristi indeksni registar za izmjenu osnovne adrese. Kombinira osnovnu adresu sa skaliranom vrijednošću indeksnog registra. Primjer:
```sklop
DODATI [R1+R2], R3; Dodaje sadržaj memorijske lokacije na adresi R1+2*R2 u R3 i pohranjuje rezultat u R3
```
6. Adresiranje s automatskim povećanjem/automatskim smanjivanjem:
U načinu adresiranja s automatskim povećanjem, registar koji sadrži adresu se povećava nakon što se pristupi operandu. U načinu adresiranja s automatskim smanjivanjem, on se smanjuje prije pristupanja operandu. Ovo se obično koristi za iterativne operacije. Primjer:
```sklop
DODAJTE [R1++], R2; Dodaje sadržaj memorijske lokacije na adresi R1 do R2 i povećava R1
```
Ovo je samo nekoliko primjera načina adresiranja registara. Različite arhitekture skupova instrukcija (ISA) mogu imati različite načine adresiranja, svaki sa svojim prednostima i upotrebom.