Tryby adresowania

Tryby adresowania argumentów rozkazów przesłań i arytmetyczno-logicznych zależą od miejsca ich umieszczenia: w pamięci programu, wewnętrznej lub zewnętrznej pamięci danych.

Adresowanie argumentu znajdującego się w pamięci programu może być:
- natychmiastowe (argument bezpośredni),
- pośrednie, zawartością akumulatora (tylko w przesłaniach).

W adresowaniu pośrednim zawarty w akumulatorze adres jest 8- bitowy (mniej znaczące bity 12-bitowego adresu pamięci programu). Jest to więc adres na stronie trzeciej (MOVP3 - cztery bardziej znaczące bity są równe 0011) lub bieżącej (MOVP). W tym drugim przypadku bardziej znaczące bity adresu są określone przez zawartość bitów od 8 do 11 licznika rozkazów, po pobraniu rozkazu. Strona bieżąca jest więc stroną, na której jest umieszczony rozkaz, z wyjątkiem przypadku, gdy zajmuje on ostatnią komórkę na stronie (o adresie xFFH) - wtedy adres argumentu dotyczy strony następnej.

Adresowanie argumentu umieszczonego w wewnętrznej pamięci danych może być:
- bezpośrednie - tylko w bajtach traktowanych jako rejestry robocze ze wskazanego przez wskaźnik BS zbioru (adresy 0-7, gdy BS = 0; adresy 24-31, gdy BS = 1);
- pośrednie - w całej pamięci - zawartością wskaźników danych R0 i R1 z ustawionego zbioru rejestrów.

Zewnętrzna pamięć danych może być adresowana tylko pośrednio, przez wskaźniki R0 i R1. W rozkazach skoków jest możliwe adresowanie:
- bezpośrednie, z adresem 11-bitowym;
- bezpośrednie, z adresem 8-bitowym;
- pośrednie, zawartością akumulatora.

Bezpośredni adres 11-bitowy występuje w rozkazach skoku bezwarunkowego JMP adr i skoku do podprogramu CALL adr. Możliwe są więc skoki w obrębie jednego tomu pamięci. Wykonanie każdego z nich powoduje też wpisanie do bitu PC11 zawartości wskaźnika tomu DBF. W zestawieniu z rozkazem ustawienia wskaźnika tomu SEL MB rozkazy te pozwalają na wykonywanie skoków do dowolnego miejsca pamięci.

Bezpośredni adres 8-bitowy występuje we wszystkich rozkazach skoków warunkowych i oznacza adres w obrębie strony bieżącej. Ponieważ przy pobieraniu drugiego bajtu rozkazu skoku nie zwiększa się licznik rozkazów, to strona bieżąca jest zawsze tą, na której jest umieszczony drugi bajt rozkazu skoku.

Przy adresowaniu pośrednim - w jednobajtowym rozkazie JMP @A - zawartość akumulatora jest 8-bitowym adresem wpisywanym do mniej znaczących bitów licznika rozkazów (po pobraniu rozkazu skoku). Adres dotyczy więc strony bieżącej, rozumianej podobnie, jak w przypadku rozkazu MOVP.

Powrót