Введение в электронику
Шрифт:
Рис. 36-6. Команды перемещения данных.
Команды микропроцессора используют символические обозначения, указывающие, как перемещать данные. В микропроцессорах 6800 и 6502 стрелка перемещает слева направо. В микропроцессорах 8080А и Z80 стрелка перемещает справа налево. В любом случае сообщение об операции одинаково. Данные перемещаются от источника к месту назначения.
Арифметические
Логические команды — это команды, содержащие один или более Булевых операторов: И, ИЛИ и исключающее ИЛИ. Они работают одновременно с восемью битами в АЛУ, а результаты работы этих команд помещаются в аккумулятор. Другой логической операцией является команда дополнения. Она включает дополнение до единицы и дополнение до двух. Так как дополнение осуществляется с помощью дополнительной цепи, эта операция содержится не во всех микропроцессорах. Микропроцессоры 6502 не содержат команды дополнения. Микропроцессор 8080А имеет команду дополнения до единицы. Микропроцессоры 6800 и Z80 имеют команды дополнения до единицы и дополнения до двух.
Операции дополнения обеспечивают метод представления чисел со знаками. Дополняющие числа позволяют АЛУ выполнять операции вычитания с помощью цепи сумматора. Следовательно, блок микропроцессора может использовать Одни и те же цепи для сложения и вычитания.
Команды сравнения сравнивают данные в аккумуляторе с данными в ячейке памяти или в другом регистре. Результат сравнения не хранится в аккумуляторе, но в результате сравнения может измениться флаговый бит. Сравнение может быть выполнено путем наложения (маскирования) или путем поразрядной проверки. Маскирование — это процесс вычитания двух чисел, позволяющий вычитать только определенные разряды. Маска — это заранее определенный набор разрядов, используемых для определения существования некоторых условий внутри микропроцессора. Недостаток процедуры маскирования в том, что она использует команду И и, следовательно, разрушает содержимое аккумулятора. Хотя процедура побитовой проверки также использует команду И, она не разрушает содержимое аккумулятора. Команду побитовой проверки имеют не все микропроцессоры.
Команды вращения и сдвига изменяют данные в регистре или в памяти путем перемещения данных вправо или влево на один разряд. Обе команды используют разряд переноса. Разница между этими командами состоит в том, что команда вращения сохраняет данные, а команда сдвига разрушает их.
Команды управления программой изменяют содержимое счетчика команд. Эти команды позволяют микропроцессору выбирать определенные ячейки памяти для выполнения различных программ или для повторения части той же программы. Команды могут быть безусловными, изменяющими содержимое счетчика команд, или условными, которые сначала проверяют состояние флагового бита для того, чтобы узнать, можно ли изменить содержимое счетчика команд. Если условие флагового бита не удовлетворяется, то выполняется следующая команда.
Команды стека позволяют хранить и извлекать содержимое различных регистров микропроцессора в стек.
Стек — это временная ячейка памяти, используемая для хранения содержимого счетчика команд в течение перехода к подпрограмме. Разница между стеком и другими формами памяти в способе, с помощью которого осуществляется доступ к данным или их адресация. Команда «push» запоминает содержимое регистра,
В микропроцессорах 6800 и 6502 содержимое регистра запоминается в стеке, и после этого указатель стека уменьшается на 1. Это позволяет указателю стека отметить следующую ячейку памяти, где могут быть сохранены данные. Указатель стека — это 16-разрядный регистр, использующийся для определения ячейки памяти, действующей, как вершина стека. Когда используется команда «pull», указатель стека увеличивается на 1, данные извлекаются из стека и помещаются в соответствующий регистр. В процессоре 8080А вершина стека содержит указатель на последнюю ячейку памяти. Команда «push» сначала уменьшает указатель стека на 1, а после этого помещает содержимое регистра в стек.
Команды ввода/вывода предназначены только для управления устройствами ввода/вывода. Процессоры 8080А, 8085 и Z80 имеют команды ввода/вывода. Процессоры 6800 и 6502 специальных команд ввода/вывода не имеют. Если микропроцессор использует команды ввода/вывода для работы с внешними устройствами, то ввод/вывод называется независимым.
Некоторые команды не попадают ни в одну из перечисленных категорий. Эти команды объединены вместе и названы разными командами. Среди этих команд находятся те, которые разрешают и запрещают линии прерываний, очищают или устанавливают флаговые биты, или позволяют микропроцессору выполнять арифметические операции в двоично-десятичном коде. Среди них также содержатся команды, останавливающие или временно прерывающие выполнение программ.
36-2. ВОПРОСЫ
1. Каковы основные части микропроцессора?
2. Какие регистры находятся в микропроцессоре?
3. На какие основные категории делятся команды микропроцессора?
РЕЗЮМЕ
• Компьютеры состоят из блока управления, арифметико-логического устройства, памяти и блока ввода/вывода.
• Блок управления дешифрует команды и выдает импульсы, необходимые для работы компьютера.
• Арифметико-логическое устройство выполняет математические и логические операции, а также операции, связанные с принятием решений.
• Память — это место, где хранятся данные и программы, ожидающие работы с ними.
• Блоки ввода/вывода позволяют вводить данные в компьютер и выводить их из компьютера.
• Блок управления и арифметико-логическое устройство могут находиться в одном корпусе, который называется микропроцессором.
• Программа — это набор команд, расположенных в последовательном порядке для решения определенной задачи.
• Микропроцессор содержит регистры, арифметико-логическое устройство, цепи синхронизации и управления и цепи дешифрации.
• Команды микропроцессора делятся на девять категорий:
— Перемещение данных.
— Арифметические.
— Логические.
— Сравнение и проверка.
— Вращение и сдвиг.
— Управление программой.
— Стек.
— Ввод/вывод.
— Разные.
Глава 36. САМОПРОВЕРКА
1. Опишите, как работает компьютер.
2. Каким образом компьютер, связанный с внешним миром, осуществляет получение данных от внешних устройств?
3. В чем разница между микрокомпьютером и микропроцессором?
4. Каковы функции микропроцессора?