Ассемблер PDP-11: как работают «инструкции с одним операндом» - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь понять сборку PDP-11.Для этого я просматриваю этот документ.

PDP-11 имеет несколько наборов типов команд.Один из них - инструкции с одним операндом, другой - инструкции с двумя операндами.Например, инструкции с двойным операндом:

MOV   @(R0)+,R1

... который (если я правильно понял) выбирает данные из памяти, на которую указывает R0, затем увеличивает R0 и затем сохраняет полученные данныеиз памяти в R1.

Но как насчет инструкций с одним операндом?Например:

INC  @(R0)+

Что будет?Будет ли это:

  1. получить значение, на которое указывает R0
  2. увеличить R0
  3. увеличить значение
  4. сохранить результат в новом указанном адресена R0?
  5. снова увеличить R0?

или 2 пропущено или 5 пропущено?

1 Ответ

0 голосов
/ 23 сентября 2018

Это руководство содержит пример INC -(R0) в §3.3.3, который поясняет, что увеличение / уменьшение происходит один раз до / после основной операции инструкции:

3.3.3 Режим автоматического декодирования

...

Примеры режимов автоматического декодирования

  1. Символическое значение: INC -(R0), Восьмеричный код: 005240, ИнструкцияИмя: Инкремент

    Операция: Содержимое R0 уменьшается на два и используется в качестве адреса операнда.Операнд увеличивается на единицу.

  2. Символическое значение: INCB -(R0), Восьмеричный код: 105240, Название инструкции: Увеличение

    Операция: Содержимое R0 уменьшается на единицу и используется какадрес операнда.Операнд увеличивается на единицу.

...