Некоторые способы указания операндов в командах
Название | Мнемоника | Пояснение |
Регистровая Косвенно-регистровая Автоинрементная Автодекрементная | 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. Как организована работа с операндами?