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

  1. Нарисуйте блок-схему компьютера.

  2. Каковы функции следующих блоков компьютера?

а. Блока управления.

б. Арифметико-логического устройства.

в. Памяти.

г. Ввода.

д. Вывода.

  1. Какова функция ROM (памяти только для чтения) ком­пьютера?

  2. Что показывает последовательность команд, которые должны быть выполнены?

  3. Чем определяется количество данных, которое может храниться в компьютере?

  4. Дайте определение программы.

  1. 2. Архитектура микропроцессора

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

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

Различные микропроцессоры отличаются друг от дру­га архитектурой и набором команд. На рис. 36-5 изобра­жены основные части многих 8-разрядных микропроцес­соров. Поскольку названия и количество регистров в раз­личных микропроцессорах различны, они изображены и перечислены отдельно.

Аккумулятор — это регистр наиболее часто используе­мый в микропроцессоре. Он используется для приема или хранения данных из памяти или устройства ввода/выво­да. Его работа также связана с работой арифметико-логи­ческого устройства. Количество разрядов в аккумуляторе определяет размер слова в микропроцессоре. В 8-разряд- ном микропроцессоре размер слова — 8 разрядов.

Регистр условия кода — это 8-разрядный регистр, по­зволяющий программисту проверить состояние микропро­цессора в некоторой точке программы. В зависимости от микропроцессора этот регистр может называться регистром состояния процессора, регистром состояния или флаговым регистром (регистром признака). Один разряд в этом реги­стре называется флаговым разрядом. Чаще всех встреча­ются флаг переполнения, нулевой флаг и флаг знака. Флаг переполнения используется во время арифметических дей-

Дешифратор команд

Арифметико-

логическое

устройство

Синхронизация и управление

Регистры

  • Аккумулятор

  • Кодусловия

  • Счетчик ко-

Манд • Указатель

стека

Микропроцессор

ствий для определения необходимости переноса или зае­ма. Нулевой флаг используется для определения наличия нулей во всех разрядах результата или команды. Флаг знака используется для указания знака числа — положи­тельный или отрицательный. Из 8 разрядов этого регист­ра процессоры Motorola 6800 и Zilog Z80 используют 6 раз­рядов; процессор Intel 8080А использует 5; процессор MOS Technology 6502 использует 7.

Счетчик команд — это 16-разрядный регистр, содер­жащий адрес команды, извлеченный из памяти. По мере того как команды выполняются, содержимое счетчика увеличивается на единицу для извлечения адреса следую­щей команды. Содержимое счетчика команд может толь­ко увеличиваться. ^Однако, последовательность команд может быть изменена с помощью команд ветвления или пе­рехода.

Указатель стека — это 16-разрядный регистр, содержа­щий адрес ячейки памяти данных, хранящихся в стеке. Стек будет обсуждаться немного позднее.

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

  1. Перемещение данных.

  2. Арифметические.

  3. Логические.

  4. Сравнение и проверка.

  5. Вращение и сдвиг.

  6. Управление программой.

  7. Стек.

  8. Ввод/вывод.

  9. Разные.

Команды перемещения данных перемещают данные из одного места в другое внутри микропроцессора и памяти (рис. 36-6). Данные перемещаются сразу по 8 бит в парал­лельном коде (одновременно) из одного места в другое.

Команды микропроцессора используют символические обо­значения, указывающие, как перемещать данные. В мик­ропроцессорах 6800 и 6502 стрелка перемещает слева направо. В микропроцессорах 8080А и Z80 стрелка переме­щает справа налево. В любом случае сообщение об операции одинаково. Данные перемещаются от источника к месту на­значения.

Описание

команды

Мнемони­

ческое

обозначение

Обозна­

чение

Источник

Место

назначения

Загрузить

аккумулятор

LDA

М-»А

Память

Аккуму­

лятор

Загрузить регистор X

LDX

М->Х

Память

Регистр X

Запомнить

содержимое

аккумулятора

STA

А->М

Аккуму­

лятор

Память

Запомнить содержимое регистра X

STX

Х->М

Регистр X

Память

Перенести содержимое аккумулятора в регистр X

TAX

А-»Х

Аккуму­

лятор

Регистр X

Перенести содержимое регистра X в аккумулятор

ТХА

Х->А

Регистр X

Аккуму­

лятор

Рис. 36-6. Команды перемещения данных.

Арифметические команды влияют на арифметико-логи­ческое устройство. Наиболее мощными командами явля­ются сложение, вычитание, приращение и уменьшение. Эти команды позволяют микропроцессору проводить вы­числения и обрабатывать данные. Они отличают компью­тер от произвольной логической цепи. Результат работы этих команд помещается в аккумулятор.

Логические команды — это команды, содержащие один или более Булевых операторов: И, ИЛИ и исключающее ИЛИ. Они работают одновременно с восемью битами в

АЛУ, а результаты работы этих команд помещаются в ак­кумулятор. Другой логической операцией является коман­да дополнения. Она включает дополнение до единицы и до­полнение до двух. Так как дополнение осуществляется с помощью дополнительной цепи, эта операция содержится не во всех микропроцессорах. Микропроцессоры 6502 не содержат команды дополнения. Микропроцессор 8080А имеет команду дополнения до единицы. Микропроцессо­ры 6800 и Z80 имеют команды дополнения до единицы и дополнения до двух.

Операции дополнения обеспечивают метод представле­ния чисел со знаками. Дополняющие числа позволяют АЛУ выполнять операции вычитания с помощью цепи сумматора. Следовательно, блок микропроцессора может использовать d-дни и те же цепи для сложения и вычитания.

Команды сравнения сравнивают данные в аккумуляторе с данными в ячейке памяти или в другом регистре. Резуль­тат сравнения не хранится в аккумуляторе, но в результа­те сравнения может измениться флаговый бит. Сравнение может быть выполнено путем наложения (маскирования) или путем поразрядной проверки. Маскирование — это процесс вычитания двух чисел, позволяющий вычитать только определенные разряды. Маска — это заранее опре­деленный набор разрядов, используемых для определения существования некоторых условий внутри микропроцессо­ра. Недостаток процедуры маскирования в том, что она использует команду И и, следовательно, разрушает содер­жимое аккумулятора. Хотя процедура побитовой провер­ки также использует команду И, она не разрушает содер­жимое аккумулятора. Команду побитовой проверки име­ют не все микропроцессоры.

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

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

Команды стека позволяют хранить и извлекать содер­жимое различных регистров микропроцессора в стек. Стек — это временная ячейка памяти, используемая для хранения содержимого счетчика команд в течение пе­рехода к подпрограмме. Разница между стеком и други­ми формами памяти в способе, с помощью которого осу­ществляется доступ к данным или их адресация. Коман­да «push» запоминает содержимое регистра, а команда «pull» находит содержимое регистра. Преимущество стека в том, что данные в нем можно сохранить или прочитать с помощью одноразрядных команд. Все данные передают­ся из верхней части стека в аккумулятор. Это означает, что аккумулятор сообщается только с верхней ячейкой стека.

В микропроцессорах 6800 и 6502 содержимое регистра запоминается в стеке, и после этого указатель стека умень­шается на 1. Это позволяет указателю стека отметить сле­дующую ячейку памяти, где могут быть сохранены данные. Указатель стека — это 16-разрядный регистр, использу­ющийся для определения ячейки памяти, действующей, как вершина стека. Когда используется команда «pull», указатель стека увеличивается на 1, данные извлекаются из стека и помещаются в соответствующий регистр. В про­цессоре 8080А вершина стека содержит указатель на пос­леднюю ячейку памяти. Команда «push» сначала умень­шает указатель стека на 1, а после этого помещает содер­жимое регистра в стек.

Команды ввода/вывода предназначены только для уп­равления устройствами ввода/вывода. Процессоры 8080А, 8085 и Z80 имеют команды ввода/вывода. Процессоры 6800 и 6502 специальных команд ввода/вывода не имеют. Если микропроцессор использует команды ввода/вывода для работы с внешними устройствами, то ввод/вывод на­зывается независимым.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]