Курс лекций «Организация ЭВМ и систем»: Методическое пособие, страница 27

Автоинкремент метод требует от 2 циклов

MOV (R0) +, R1 – мнемоника     

В R0 содержится адрес, из которого нужно взять.

3)Декремент (4)

MOV – (R0), R1 – мнемоника записи

4)Индексный (6)                            01 60 01

                                                                               200 – индекс

R0           =  1000                      (min – 3МЦ)

R1           =   0             R1 = 77

1200  =  77

Пример:      01 06 61  ( требуется 6 циклов или 5)

Косвенная:

1)Регистровый (1):                      01 10 01

R0 = 1000                        (min 3МЦ)

R1 = 0

1200 = 7                              MOV (R0),R1      в R0 содержится адрес

2)Инкремент (3)                          01 30 01

R0 – двойной косвенности

                                 R0  =  1000                                  в регистре адрес, в котором адрес данных

R1  =  0                                        (R0 автоинкремент на 2(1) (=1002))

1000 = 2000                                 R1 = 10

2000 = 10

MOV@(R0)+,R1 - мнемоника записи

Данный метод позволяет обеспечить независимость программ (позиционно независимое кодирование).

R7 счетчик команд; содержит адрес выполняемой команды     MOV@(R7)+,R1

4)Индексный (7)

MOV@200(R0),R1

1.  Код команды

2.  Считает индекс

3.  Считает адрес

 


R0  =  1000

1200 = 2000                               R1 = 70

2000 = 70

Адресация относительно счетчика команд

2 типа:

27 – за кодом команды лежат данные (прямые)

37 – за кодом команды лежит адрес данных (метод добавляет косвенность)

Выполнил Кузьмин А. ПО-01

Методы адресации.

Адресация

Прямая                                                   Косвенная

Команда

Источник

Приёмник

M

Rx

M

Rx

Прямой

Косвенный

1

0

1

2

2

3

3

4

5

4

6

7

4 метода:

1.работа через регистр

2.автоинкримент

3.автодекремент

4.индексный

если команда словная, то адрес увеличивается на 2, если команда битная то на 1

 
Прямые методы

до выполнения команды

после выполнения команды

20=1000

1002

1000=77

77

R1=00

77

1. 01/00 01

2. 01/20 01       =>                                мнемокод

MOV (R0)+,R1                                          

3. 01/40 01

мнемокод

Пример: 01 60 61

200

400 

1

01 60 61

2

R0=200

3

R1=400

4

R0+200

5

R1+400

6

запись в R1

 
MOV -(R0),R1

4. 01/60 01

до выполнения команды

после выполнения команды

20=1000

R1=00

77

1200=77

200       

до выполнения команды

после выполнения команды

R0=1000

1002

R1=0

10

1000=2000

2000=10

 
Косвенные методы

1. 01/10 01                      R0=1000

MOV (R0),R1                 R1=0

1200=7

2. 01/30 01

MOV @(R0)+,R1            =>