Перечень операций подлежащих программированию
1. Сложение каких-либо двух элементов массива. 2. Сложение элементов массива с константой. 3. Нахождение наибольшего (наименьшего) из элементов массива. 4. Цикл (сложение всех элементов массива). 5. Переход к подпрограмме с передачей параметров через регистры. 6. Переход к подпрограмме с передачей параметров через стек. 7. Умножение двух элементов массива. В дополнение к семи операциям в каждом варианте должна присутствовать как заключительная операция загрузки программы. Для последней операции до загрузки программы помимо программы на машинном языке необходимо также представить ассемблерный код данной операции. Последовательность операций для каждого варианта задания определяется методом случайной выборки.
Архитектура микропроцессоров В настоящее время выпускается много моделей микропроцессоров с очень широким спектром параметров. Мы не будем пытаться изучить их все, а опишем гипотетический микропроцессор с архитектурой (т. е. структурой и языком), обладающей типичными чертами. Таким образом, мы сможем лучше осветить наиболее существенные аспекты функционирования микропроцессоров вообще, не вдаваясь в детали, характерные для тех или иных конкретных моделей. Хотя наш гипотетический микропроцессор и не выпускается промышленностью, он близок к некоторым реально существующим моделям, например к процессорам серии 8000 фирмы «Интел».
Микрокомпьютер Микрокомпьютер — это система с шинной организацией, состоящая из модулей, или блоков, реализованных в виде больших интегральных схем. Эти модули обрабатывают информацию, управляют потоком и интерпретацией команд, управляют работой шин, хранят информацию и осуществляют взаимодействие между компьютером и его окружением.
Первые четыре функции обычно выполняются одним функциональным блоком — микропроцессором. Функции хранения информации осуществляет запоминающее устройство. В него могут входить как постоянная память, так и оперативная. Наконец, внешние коммуникации осуществляют блоки, называемые портами ввода/вывода; Каждый такой порт является интерфейсом между микропроцессором и: каким-либо внешним устройством, например терминалом, внешней памятью для хранения больших объемов информации, контроллером технологических процессов или измерительным прибором.
Рис. 4.1. Структура микрокомпьютера с шинной организацией
Структура микрокомпьютера, состоящего из подобных блоков, приведена на рис. 4.1. Взаимодействие блоков осуществляется при помощи шин трех типов: адресных шин, шин данных и управляющих шин. В дальнейшем мы будем рассматривать именно такую структуру шин, хотя возможны и другие варианты.
Структура микропроцессора Общая структура нашего гипотетического иллюстративного микропроцессора представлена на рис. 4.2. Входящие в его состав компоненты говорят о том, что он является процессором с программным управлением. Некоторые компоненты, а именно программный счетчик (счетчик команд), стек и регистр команд, служат для обработки команд. Такие компоненты, как АЛУ, триггер переноса, общие регистры (или рабочие) и регистр адреса данных, служат для обработки данных. Все остальные компоненты, а именно дешифратор команд и блок управления и синхронизации (БУС), управляют работой других компонентов. Взаимодействие компонентов осуществляется по внутренним каналам передачи данных. Связь микропроцессора с другими блоками (ЗУ и устройствами ввода/вывода) происходит по адресной шине, шине данных и управляющей шине.
Микропроцессор работает со словами, состоящими из 8 битов. Такие слова, называемые байтами, удобны при выполнении арифметических и логических операций и используются в большинстве выпускаемых микропроцессоров. Поэтому мы будем предполагать, что все данные представляются именно такими словами. Если в расчетах встречаются числа «большей длины», то применяются специальные программы для вычислений с «двойной точностью», «тройной точностью» и т. д.
Рис. 4.2. Гипотетический микропроцессор. Числа в скобках указывают количество разрядов или линий
С другой стороны, адрес из 8 битов позволяет прямо адресовать только 28 = 256 ячеек памяти. Для реальных задач этого, конечно, мало. Поэтому для задания адреса памяти обычно используется 16 разрядов (два байта), и это позволяет прямо адресовать 216=65 536 ячеек). Информация к микропроцессору и от него передается по шинам. Шины данных в соответствии с длиной слова состоят из 8 линий, тогда как адресная шина состоит из 16 линий. Как показано на рис. 4.1, адресная шина однонаправленная, а шина данных двунаправленная. Управляющая шина состоит из 5 линий, ведущих к блоку управления и синхронизации и 8 выходящих из него линий. По этим линиям передаются управляющие и тактирующие сигналы между компонентами микропроцессора и между микропроцессором и другими блоками микрокомпьютера. Счетчик команд состоит из 16 битов и содержит адрес очередного байта команды, считываемого из памяти. Он автоматически увеличивается на единицу после чтения каждого байта. Существует связь между счетчиком команд и вершиной стека из 64 регистров. Одна из функций стека — сохранение адреса возврата из подпрограммы. В стеке могут также сохраняться данные из верхних трех общих регистров и триггера переноса. В то время как слово данных всегда состоит из одного байта, команда может состоять из одного, двух или трех байтов. Первый байт любой команды поступает из памяти по шине данных на регистр команд. Этот первый байт подается на вход дешифратора команд, который определяет ее смысл. В частности, дешифратор определяет, является ли команда однобайтовой, или она состоит из большего числа байтов. В последнем случае дополнительные байты передаются по шинам данных из памяти и принимаются или на регистр адреса данных, или на один из общих регистров.
Регистр адреса данных содержит адрес операнда для команд, обращающихся к памяти, адрес порта для команд ввода/вывода или адрес следующей команды для команд перехода. Пятнадцать 8-битовых общих регистров содержат операнды для всех команд, работающих с данными. Для указания этих регистров используются 4-битовые коды от 0000 до 1110. Регистр 0000 называется аккумулятором (АК) и участвует во всех арифметических и логических операциях. В частности, он содержит один из операндов перед выполнением операции и получает результат после ее завершения. Обычно обращения к общим регистрам осуществляются при помощи R-селектора или r-селектора. R-селектор позволяет обращаться к любому регистру, тогда как через r-селектор доступны только регистры 0000, 0001 и 0010. Очень полезная возможность, присутствующая во многих машинах,— это косвенная адресация. Некоторый вариант косвенной адресации встроен и в наш микропроцессор). Задание несуществующего регистра общего назначения 1111 используется как указание на то, что нужно обратиться к байту памяти по 16-разрядному адресу, который получается комбинированием содержимого двух фиксированных общих регистров. А именно, старшие 8 разрядов адреса — из регистра 0001, а младшие 8 разрядов адреса — из регистра 0010 (в дальнейшем эти два регистра мы будем называть Н и L соответственно; Н — от слова Higher, высший, или старший, L — от Lower, низший, или младший). Чтобы пояснить подобную косвенную адресацию, предположим, что регистр 0001, т. е. регистр Н, содержит 1011101,а регистр 0010, т. е. регистр L, содержит 00101011. Тогда любая команда, ссылающаяся на регистр 1111, вызовет выборку операнда из ячейки памяти с адресом 101110100101011. Все арифметические и логические операции выполняются в арифметико-логическом устройстве (АЛУ). Входами АЛ У служат две 8-битовые шины. Одна из них идет от аккумулятора (регистр 0000), а другая — от R -селектора, который выбирает либо один из регистров общего назначения от 0000 до 1110, либо ячейку памяти, если задана косвенная адресация. Еще одна входная линия поступает в АЛУ от триггера переноса С, который участвует в некоторых арифметических и логических операциях.
Результаты из АЛУ передаются в аккумулятор по выходной 8-битовой шине. Существуют еще две линии, идущие от АЛУ к блоку управления и синхронизации; они передают информацию о наличии или отсутствии двух особых условий: аккумулятор содержит нули (линия Z) и старший разряд аккумулятора равен 1 (линия N). Вторая линия очень удобна при работе с числами в дополнительном коде, когда старший разряд знаковый, причем 1 соответствует отрицательным числам. Триггер переноса и обе линии состояния АЛУ Z и N называются флажками и используются в командах условного перехода. Последний компонент микропроцессора — это блок управления и синхронизации (БУС). Он получает сигналы от дешифратора команд, который анализирует команду. Как уже упоминалось, в БУС из АЛУ и от триггера переноса поступают сигналы, по которым определяются условия для передач управления. Все остальные компоненты микропроцессора получают от БУС управляющие и синхронизирующие сигналы, необходимые для выполнения команды. С помощью 13 внешних линий реализуется интерфейс устройства управления с другими модулями микрокомпьютера. Назначение этих линий мы рассмотрим в следующем разделе.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|