Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_k_kursovomu_proektu_VMSi....doc
Скачиваний:
4
Добавлен:
20.04.2019
Размер:
4.98 Mб
Скачать

4.6. Некоторые другие команды, специфичные для микропроцессоров

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

Арифметические и логические команды с операндами в главной памяти

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

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

Команды условных переходов

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

1. Переполнение при арифметических операциях.

  1. Четность (или нечетность) числа единиц в содержимом регистра.

  2. Строгая положительность содержимого регистра (положительно и не равно нулю).

4. Различные внешние условия, задаваемые сигналами на спе­циальных входных линиях.

Во многих микропроцессорах команды условных переходов реа­гируют на состояние отдельных флажковых триггеров.

Значения этих триггеров устанавливаются в момент выполнения определенных опе­раций. Например, может существовать флажок знака или флажок чет­ности. На состояние этих флажков влияют только арифметические и (или) логические команды, тогда как другие команды, например за­грузка аккумулятора, оставляют их неизменными. Таким образом, состояние каждого флажкового триггера будет отражать не обязатель­но текущее состояние того или иного регистра, а то его состояние, ко­торое было получено в результате выполнения последней из команд, принадлежащих некоторой категории. Этот подход заметно отлича­ется от принятого нами в иллюстративном микропроцессоре с двумя условиями N и Z, характеризующими состояние аккумулятора.

Обычно флажки состояний в микропроцессорах объединяются в специальный регистр. Содержимое этого регистра называется словом состояния программы и анализируется во всех командах условного перехода. Обычно предусматривается возможность передачи слова состояния программы на другие регистры микропроцессора или в главную память. В частности, слово состояния программы может сох­раняться в стеке при вызове подпрограммы. В этом случае, даже если подпрограмма изменит слово состояния программы, при возврате из подпрограммы его можно восстановить.

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