Главная - Литература

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [124] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169

ших. Например, первоначальное число 11101101 при циклическом сдвиге вправо на две позиции становится равным 01111011.

Команды перехода и вызова подпрограмм. Такие команды расширяют возможности микропроцессора, так как позволяют изменять последовательность выполнения команд программы [24].

Простейшей командой управления программой является команда безусловного перехода (JMP). Формат показан на рис. 15.10. По команде в регистр адреса команд ЦП автоматически загружается адрес ячейки памяти, указанный в команде, и происходит переход в другую точку программы. По указанному адресу производятся выборка команды и ее выполнение. Одна за другой выполняются команды новой последовательности до тех пор, пока не будет задана команда нового перехода или возврата к прежней программе. Кроме команды безусловного перехода в микропроцессорных системах применяются команды условного перехода. Они определяют последующее направление выполнения программы при выполнении заданного командой условия. Это условие задается кодом операции команды. Пример команды: осуществить переход в другую точку программы после проверки результата на нуль, отрицательное число или при наличии переноса или займа. Формат команды условного перехода аналогичен указанному на рис. 15.14, но в поле кода операции вместо JMP указывается команда с соответствующим условием перехода.

Команда перехода не позволяет вернуться к главной программе без соответствующей новой команды перехода. Для возврата к точке программы, от которой произошел переход, нужно адрес этой точки запомнить. При использовании команды вызова подпрограммы возврат к главной программе осуществляется автоматически.

Мнемоническая запись команд. Команда микропроцессора является двоичным числом, длина которого может равняться одному или нескольким байтам. Для кратности команду можно записать в восьмеричном или шестнадцатеричной коде. Однако и в этом случае программисту трудно запомнить числа. Для удобства запоминания при программировании применяют мнемоническую запись команд с помощью сокращения английских слов. Ранее в тексте уже встречались мнемонические записи команд: MOV от английского слова move (двигать, пересылать) и JMP от слова jump (прыгать, переходить). Широко применяются и другие мнемонические обозначения. Например, CLR от слова clear (очистить), HLT - halt (остановить), 1NC - increment (положительное приращение), DEC - decrement (отрицательное приращение).

15.5. СПОСОБЫ АДРЕСАЦИИ

При выполнении программ многие команды являются командами с обращением к памяти. При объеме памяти, например, 64К слов команды получаются очень длинными, так как только адресная часть команды будет иметь 16 бит, а в команде еще



должны быть поле кода операции и поле адреса регистра микропроцессора. В 16-разрядных микропроцессорах обычно применяют формат команды общей длиной в 16 бит [23].

При такой ограниченной длине всей команды и ограниченном числе битов для записи адреса приходится либо использовать не все ячейки памяти, либо воспользоваться информацией адресных полей команды для «вычисления» (формирования) исполнительного (эффективного) адреса.

В микропроцессорах применяются разные способы адресации в зависимости от конкретных команд. Ниже описываются способы адресации, наиболее широко применяемые в микропроцессорных системах [23, 24].

Прямая адресация. В адресное поле команды помещают исполнительный адрес. Преимуществом такой адресации является ее простота -не требуется вычисление исполнительного адреса. Недостаток - малое число битов для адреса, а следовательно, возможность доступа лишь к малой части адресного пространства памяти.

Косвенная адресация. Адресное поле команды указывает не адрес операнда, а лишь адрес ячейки, в которой хранится косвенный адрес, по которому можно получить операнд. Преимущество косвенной адресации перед прямой в том, что косвенный адрес операнда содержит больше битов, нежели число битов в адресном поле команды. Недостатком косвенной адресации является увеличение времени для извлечения операнда по сравнению с прямой адресацией.

Регистровая косвенная адресация. Косвенный адрес содержится в одном из регистров центрального процессора. Так как не требуется двукратное обращение к памяти, то быстродействие приближается к прямой адресации.

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

Такая адресация удобна, когда операнды расположены в памяти в виде списков (файлов) или таблиц.

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

Непосредственная адресация. Если данные включены в команду, то, собственно, никакой адресации для обращения к памяти не требуется. Такая адресация называется непосредственной. Исполнение команд с непосредственной адресацией является быстрым и применимо, как правило, для операций, предусматривающих действия с константами.



15.6. СИНХРОНИЗАЦИЯ МИКРОПРОЦЕССОРА

Все микропроцессоры являются синхронизированными системами. Все процессы в них синхронизируются последовательностями тактовых импульсов. Обычно тактовые импульсы, показанные на рис. 15.11 и обозначенные CLK, получаются делением частоты генератора, стабилизированного кварцем. Например, в микропроцессоре КМ1810ВМ86 частота тактовых импульсов 5 МГц получается делением частоты генератора с кварцем на частоту f=15 МГц.

На рис. 15.11 показаны временные диаграммы работы микропроцессора КМ1810ВМ86 при записи. Цикл записи образуют такты Т1-Т4. Сигнал М/10 указывает, какое из устройств: память М

или устройство ввода-вывода 10 - используется в данном цикле.

Из рисунка видно, что цикл записи начинается с выработки стробирующего сигнала адреса ALE, который служит для занесения адреса в адресный регистр. В такте Т1 на выводы процессора выставляется адрес. За время Т2 устанавливаются данные. Они остаются истинными на шине данных до окончания такта Т4.

Сигнал записи WR вырабатывается в начале такта Т2 и сохраняется до начала такта Т4. Передача данных, установившихся в такте Т2, в основном происходит в такты ТЗ и Т4.

В цикл считывания из памяти или из устройства ввода вместо сигнала WR подается сигнал RD. В остальном временная диаграмма аналогична показанной на рис. 15.11.

Синхронизация подтверждением готовности. Часто периферийные устройства имеют меньшее быстродействие, нежели центральный микропроцессор. В этом случае микропроцессор переходит в режим ожидания готовности в момент TW между тактами ТЗ и Т4 и записывает выполнение команды после поступления сигнала готовности READY от периферийного устройства.


Ш -

Данные

Рис. 15.11. Временные диаграммы работы микропроцессора в режиме записи



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [124] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169



0.0015