Прямая адресация
1. Регистровый
MOV R0, R1
0 1 | 0 0 0 1
Регистр
Метод адресации
Код команды
В этом случае данные передаются из регистра R1 в регистр R0.
2. Автоинкрементный
0 1 | 2 0 0 1
До выполнения команды:
R0 = 1000
1000 = 77
R1 = 00
После выполнения команды:
R0 = 1002
1000 = 77
R1 = 77
Регистр R1 загружается данными, которые хранятся по адресу, указанному в регистре R0. После выполнения команды содержимое R0 увеличивается на 1, если команда однобайтная, и на 2 – если двухбайтная.
Мнемоника записи MOV (R0)+, R1
3. Автодекрементный
По аналогии с автоинкрементным, только содержимое R0 уменьшается на 2 или 1.
Мнемоника записи MOV (R0)-, R1
4. Индексный
0 1 | 6 0 0 1
Содержимое индексного регистра – 200
До выполнения команды:
R0 = 1000
R1 = 0
1200 = 77
После выполнения команды:
R1 = 77
При индексной адресации адрес, из которого пересылаются данные в регистр R1, вычисляется путем сложения содержимого R0 и индексного регистра.
Косвенная адресация
1. Регистровый
0 1 1 0 0 1
В регистре R0 указывается адрес ячейки памяти, в которой хранятся данные для передачи в R2.
2. Автоинкрементный
0 1 3 0 0 1
До выполнения команды:
R0 = 1000
R1 = 0
1000 = 2000
2000 = 10
После выполнения команды:
R0 = 1002
R1 = 1
Регистр R0 содержит адрес ячейки памяти, которая ссылается на другую ячейку памяти. Эта ячейка памяти содержит число, необходимое для передачи в R1. После выполнения команды происходит увеличение содержимого R0 на 1 или 2 в зависимости от длины команды.
Мнемоника записи MOV @(R0)+, R1
3. Автодекрементный
По аналогии с автоинкрементным, только содержимое R0 уменьшается на 2 или 1.
Мнемоника записи MOV @(R0)-, R1
4. Индексный
0 1 7 0 0 1
Содержимое индексного регистра – 200
До выполнения команды:
R0 = 1000
1200 = 2000
2000 = 70
После выполнения команды:
R1 = 70
При индексной адресации сначала вычисляется первый адрес путем сложения содержимого R0 и индексного регистра. Этот адрес, в свою очередь, содержит адрес той ячейки памяти, из которой следует загружать данные в регистр R1.
Адресация относительно счетчика команд
Память разделяется на блоки, в каждом из которых содержится определенное число машинных слов. Такой блок называется страницей. Блок может быть организован таким образом, что первый байт адреса будет одним и те же для всех слов памяти на странице. Когда код команды и ее операнд находится на одной странице, первый байт содержимого счетчика команд может быть использован в качестве первого байта адреса памяти. Таким образом, в команде достаточно указать значение второго байта памяти.
Новошицкий И.Е. ВМ – 01
Лекция за 16.11.2002г.
Методы адресации.
Группы:
а)прямые;
б)косвенные;
6 разрядов коп
8 регистров и 8 методов
М Rx M Rx
M – метод адресации Rx – регистр
Методы (принадлежат прямым и косвенным):
Прямая: команда источник приемник
1)Регистровый 0 MOV R0,R1 01 00 01
2)Инкремент 2 01 20 01 (по регистру находится адрес)
!!! Если метод М != 0, то метод адресации можно считать косвенным
3)Декремент 4
4) Индексный 6
Косвенная:
1)Регистровый 1
2)Инкремент 3
3)Декремент 5
4)Индексный 7
Прямая:
1)Регистровая требует 1 цикл;
2)Инкрементная (2) 01 20 01
R0 = 1000 1002 на 2 - если слово; на 1 – если байт
1000 = 77 77
R1 = 00 77
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.