Строительный блокнот  Развитие полупроводниковой электроники 

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

Рйеишр Л

J-1.

Eli.

t 1

\ 1

1 t-

1 1

оманды RAR крайнему левому разряду регистра присваивается логическое значение признака переноса С, при выполнении команды RRC - то логическое значение, которое до выполнения операции имел крайний правый разряд. Подобная операция известна также под названием циклического сдвига. Из рис, 4.4 видно, что по командам RAL и RLC выполняются операции сдвига, аналогичные двум уже рассмотренным во всем, за исключением того обстоятельства, что сдвиг производится не вправо, а влево. При выполнении операции сдвига значения всех признаков, кроме признака переноса С, остаются неизменными.

Такова группа команд, предусматривающих выполнение арифметических и логических операций. Хотя на описание этих команд мы потратили достаточно много времени, по существу процессор КР580ИК80А выполняет всего две арифметические операции, т. е. операции сложения и вычитания. Известно, что этого вполне достаточно для выполнения любых вычислений, поскольку, например, операция умножения выполняется как ряд последовательных сложений, операция возведения в степень может быть выполнена как ряд последовательных умножений и т. д. Операции сложения и вычитания могут широко использоваться также при реализации невычислительных алгоритмов. Например, с помощью операции вычитания, как правило, производят простое сравнение двух чисел. Если добавить к сказанному, что такой перечень команд возник в результате обобщения огромного накопленного человечеством опыта, то анализ этого перечня может дать еще одно подтверждение тому, что процессор микропроцессорного комплекта не имеет никакой вычислительной специфики.

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

Команды ввода-вывода. Таких команд всего две. Их мнемонические коды и символическое описание имеют следующий вид:

OUT N: A-{N).

, Через N обозначается номер порта (или программируемого периферийного адаптера), а (Л) - это число, хранящееся в регистре порта.

Рассматриваемый перечень команд и соответствующие е.му возможности процессора КР580ИК80.4 таковы, что по одной команде может быть введено или выведено только одно слово. Следовательно, при вводе или выводе группы слов, а такие группы могут быть очень объемными, например, при обмене

4 1

Рис. 4.4. Порядок выполнения операций сдвига



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

Иными словами, при групповых операциях ввода-вывода ввод или вывод отдельного байта потребует на самом деле не одной, а нескольких команд, В перечнях команд больших ЭВМ, как правило, имеются специальные команды групповых операций ввода-вывода, предусматривающие ввод или вывод по одной команде целой группы слов. Следует ли считать столь бедный перечень команд ввода-вывода недостатком микропроцессорного комплекта?

Легко показать, что ответ на такой вопрос должен быть отрицательным. Независимо от вида команды каждый акт ввода или вывода одного слова требует выполнения одной и той же последовательности действий, т. е. формирования очередного адреса памяти, обращения к памяти, собственно передачи слова и так далее, как только что было рассмотрено. Если возникает необходимость передачи группы слов, то действия совершаются под управлением специальных устройств, входящих в состав процессора (например, регистра очередного адреса памяти, содержимое которого каждый раз увеличивается или уменьшается на заданную величину). Значит, введение групповой команды ввода-вывода влечет за собой усложнение процессора.

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

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

Мнемонический код и символическое описание первой из группы команд передачи управления имеют вид 1) PCHL: HL-PC

Как видите, все очень просто. Предполагается, что до данного момента команды выполнялись в своей естественной последовательности (надеемся, читатель помнит, что это такое), т. е. содержимое счетчика адресов команд (см. рнс. 2.7) каждый раз увеличивалось иа единицу. По команде PCHL естественная последовательность нарушается, и в счетчнк адресов команд PC передается одержимое регистровой пары HL. Это содержимое служит теперь адресом ячейки памяти, из которой будет извлечена новая подлежащая выполнению



конанда. Только что рассмотренная операция - это операция безусловного перехода по программе.

Вторая аналогичная команда имеет вид

2) JMP ADR:ADR-PC.

Это тоже команда, предусматривающая операцию безусловного перехода по программе. Единственное отлнчие от предыдущей состоит в том, что в счетчик адресов команд передается содержимое 2 байт трехбайтовой команды, обозначенное как ADR. После выполнения такой операции следующей выполняемой командой будет команда, код операции которой хранится в ячейке памяти с адресом ADR.

Рассматриваемую подгруппу завершает восемь команд условного перехода по программе. Все эти команды могут быть описаны одним мнемоническим кодом и одним символическим описанием:

3) J - CON ADR: ADR-PC.

Здесь CON - родовое имя условия - точно так же, как в командах однобайтовых пересылок R и R1 представляли собой родовые имена РОН. На самом деле прн написании реальных команд на место CON подставляется одно из следующих восьми описаний условий:

NZ - ненулевой результат, признак 2=0;

Z - нулевой результат, Z=l; NC - отсутствие переноса, С=0;

С 1 перенос, С=1; ро - нечетный результат, Р=0; ре - четный результат, Р=1;

Р - число неотрицательное, S=0;

М - число отрицательное, S=l.

В качестве примера рассмотрим порядок выполнения команды JNZ ADR. Если результат, хранящийся в регистре результата, действительно ненулевой и признак Z действительно равен нулю, естественная последовательность выполнения команд нарушается и следующей после данной будет исполняться команда, код операции которой хранится в ячейке памяти с адресом ADR. Иначе (если признак Z имеет логическое значение 1) естественная последовательность выполнения команд не нарушается и выполняется следующая по порядку команда. В качестве небольшого упражнения, способствующего лучшему пониманию реа.пьных механизмов выполнения команд, заметим, что команда fNZ ADR, очевидно, имеет трехбайтный формат. Поэтому если код операции команды fNZ ADR хранился, скажем, в ячейке памяти с адресом k, то код операции следующей по порядку команды должен храниться в ячейке памяти с адресом k + 3. Следовательно, прн выполнении команды JNZ ADR н если условие не удовлетворяется (Z=l), процессор автоматически увеличивает содержимое счетчика адресов команд на 3.

Все сказанное справедливо и для остальных семи разновидностей команды условного перехода. Следует заметить, что приведенное описание хорошо иллюстрирует роль регистра признаков. Условный переход по программе совершается или не совершается в зависимости от того, удовлетворяется или не удовлетворяется некоторое условие, касающееся операндов. Например, блок 1 алгоритма, приведенного на рис. 1.2, предусматривает сохранение естественной по-



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