Некоторые способы указания операндов в командах

 

Название Мнемоника Пояснение
Регистровая Косвенно-регистровая Автоинрементная Автодекрементная   Rn (Rn) (Rn)+ -(Rn)   Операнд в регистре Rn Операнд в ячейке ОЗУ, адрес которой в Rn То же, но после чтения Rn увеличивается на 1 То же, но перед чтением Rn уменьшается на 1  

 

В качестве иллюстрации разберем выполнение команды MOV(R1)+,RO

По этой команде сначала считывается информация из памяти по адресу, находящемуся в R1. После чтения значение R1 автоматически увеличивается, так что при последующем выполнении данной команды будет обрабатываться следующая ячейка. Операция завершается записью считанной из ОЗУ информации в регистр R0.

Из разобранного примера отчетливо видно, что имеющиеся у процессора PDP способы адресации позволяют удобно работать не только с одиночными данными, но и с массивами последовательно хранящейся в памяти информации. Кроме того, некоторые приемы использования счетчика команд R7 в качестве РОН могут давать еще более интересные эффекты. Пусть, например, в некоторой программе встречается команда

MOV (R7) + , R2

и в следующем за ней слове хранится число 6. Учитывая, что после извлечения команды из ОЗУ счетчик R7 немедленно увеличивается, в момент выполнения команды его содержимое уже показывает на слово памяти, где хранится число 6. Следовательно, в качестве операнда (R7) будет считано именно оно, и, кроме того, R7 автоматически «передвинется» на следующую за константой ячейку благодаря автоинкрементному способу адресация. Таким образом, описанный прием позволяет использовать в качестве операнда константу, хранящуюся непосредственно в команде. Завершая обсуждения основных принципов программирования процессора PDP. приведем примеры линейного, разветвляющегося и циклического фрагмента программы.

Пример I. Программа вычисления по формулам R1:=R2+R3; R4:=R3-R2.

Программа 131

MOV R2, Rl ; сразу складывать нельзя, так как сумма заменяет

;второй операнд

ADD R3, Rl

MOV R3, R4

SUB R2, R4

HLT

 

Пример 2. В Rl и R2 хранятся некоторые числа. Поместить большее из них в R5, а меньшее-в RO.

 

Программа 132

 

СМР Rl, R2 ;сравнить Rl и R2

BPL L1 ;переход при R1≥R2, если R2>R1

MOV Rl, R0

MOV R2, R5

BR L2

;если R1>R2

LI: MOV Rl, R5

MOV R2, R0

L2: HLT

 

Примечание. В тексте программы указаны переходы на метки, но в результате трансляции они будут автоматически преобразованы в переходы через заданное число слов.

Пример 3. Пусть в Rl задан начальный адрес массива ОЗУ, а в R2 - число ячеек в нем. Вычислить сумму элементов массива.

Программа 133

CLR R0 ;очистка суммы

LI: ADD (Rl) + , R0 ;добавить к сумме очередной элемент

DEC R2 ;уменьшить на единицу число оставшихся элементов

BNE L1 ;цикл, пока не останется 0 элементов

HLT

 

Примечание. В программе используется тот факт, что команда DEC автоматически сравнивает результат с нулем, что делает ненужной специальную команду сравнения СМР.

 

Контрольные вопросы и задания

1. Назовите преимущества, которые имеют интегральные микросхемы перед дискретными элементами. Ответ постарайтесь обосновать.

2. Для каких функций первоначально предполагалосьиспользовать микропроцессор?

3. Что такое разрядность МП? Чем она определялась и как изменялась? Какую максимальную разрядность имеют современные процессоры?

4. Вспомните, что вы читали о новых моделях микропроцессоров.

5. Какие микропроцессоры вы знаете? Известен ли вам тип процессора в компьютерах, с которыми вы имеете дело?

6. Подумайте, в каких устройствах, с которыми вы сталкиваетесь в повседневной жизни, могут быть микропроцессоры,

7. Что представляет собой микропроцессор с точки зрения программиста?

8. Каковы функции микропроцессора в целом?

9. Какие функции могут выполнять регистры процессора?

10. Вспомните основной цикл работы процессора ЭВМ. Какую роль в нем играет счетчик адреса команд?

11. От чего зависит объем контролируемого 32-разрядной ЭВМ адресного пространства?

12. Что такое методы адресации? Какие методы адресации ОЗУ вы знаете?

13. Объясните, как работает метод косвенной адресации.

14. Приведите 3-4 варианта сегментных адресов, указывающихна одну и ту жеячейку памяти.

15. Охарактеризуйте наиболее употребимые форматы данных.

16. Каким образом процессор может адресоваться к устройствам ввода-вывода? Что такое порт ввода- вывода?

17. Опишите примерным ход взаимодействия между процессором и принтером. Как вы считаете, что происходит раньше: очередной символ печатается на бумагу или появляется сигнал готовности к приему следующего?

18. Что такое прерывание и как оно работает?Проанализируйте приведенные в тексте аналогии и попробуйте придумать собственные.

19. Имеют ли место прерывания в следующей ситуации и почему: во время активной работы программы пользователь нажимает клавишу мыши и окно на экране, соответствующее другой программе, при этом сворачивается?

20. Каковы функции регистра слова состояния процессора?

21. Какие способы адресации используются в процессоре PDP?

22. В чем особенности реализации условных и безусловного переходов в процессоре PDP?

23. Как организована работа с операндами?