курсовая работа Вычислительные машины, системы и сети

Описание:
Доступные действия
Введите защитный код для скачивания файла и нажмите "Скачать файл"
Защитный код
Введите защитный код

Нажмите на изображение для генерации защитного кода

Текст:

МИНОБРНАУКИ  РОССИИ

Филиал федерального государственного бюджетного образовательного учреждения высшего образования

«Самарский государственный технический университет»

в г. Сызрань

Кафедра «Информатика и

системы управления»

Расчетно-пояснительная записка

к курсовой работе

«Вычислительные машины, системы и сети»

Вариант 5346127 max

    Исполнитель: студент гр. ЭАБЗ-301(т)

______ Баракин В.С.

 Руководитель КР: к.п.н., доцент

 ______ Тараканов А.В.

_____________________________

       (оценка работы)

_____________________________

                (дата)

2016

СОДЕРЖАНИЕ

1.                 Введение

2.                 Задание на курсовое проектирование

3.                 Описание иллюстрированного процессора

4.                 Описание операций

4.1                Блок-схема для операции загрузка

4.2                Блок-схема для операции №5

4.3                 Блок-схема для операции №3

4.4                Блок-схема для операции №4

4.5                Блок-схема для операции №6

4.6                Блок-схема для операции №1

4.7                Блок-схема для операции №2

4.8                Блок-схема для операции №7

5.               Код программы для иллюстрированного процессора

6.               Карты инфопотоков для операции №1

7.               Временная диаграмма обменов для операции №1

8.               Заключение

9.               Библиографический список использованной  литературы

стр.

3

4

4

7

12

13

14

15

16

17

18

19

20

27

30

31

31

1.Введение

В настоящее время выпускается много моделей микропроцессоров с очень широким спектром параметров. Опишем гипотетический микропроцессор с архитектурой (т. е. структурой и языком), обладающей типичными чертами. Таким образом, мы сможем лучше осветить наиболее существенные аспекты функционирования микропроцессоров вообще, не вдаваясь в детали, характерные для тех или иных конкретных моделей. Хотя наш гипо­тетический микропроцессор и не выпускается промышленностью, он близок к некоторым реально существующим моделям, например к про­цессорам серии 8000 фирмы «Интел».

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

Первые четыре функции обычно выполняются одним функцио­нальным блоком — микропроцессором. Функции хранения инфор­мации осуществляет запоминающее устройство. В него могут входить как постоянная память, так и оперативная. Наконец, внешние ком­муникации осуществляют блоки, называемые портами ввода/вывода; Каждый такой порт является интерфейсом между микропроцессором и: каким-либо внешним устройством, например терминалом, внешней памятью для хранения больших объемов информации, контроллером технологических процессов или измерительным прибором.

Рис.1. Структура микрокомпьютера с шинной организацией

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


2.Задание на курсовое проектирование

Задан массив из пяти элементов - целых положительных чисел. Необходимо написать программу для гипотетического (иллюстрированного) микропроцессора. Эта программа позволит выполнять различные манипуляции с элементами массива.

1. Операция №2, Сложение  элементов массива с константой

2. Операция №1, Сложение каких-либо двух элементов массива

3. Операция №6, Переход к подпрограмме с передачей параметров через стек

4. Операция №5, Переход к подпрограмме с передачей параметров через регистры.

5. Операция №7, Умножение двух элементов массива

6. Операция №4, Цикл (сложение всех элементов массива)

7. Операция №3, Нахождение наибольшего из элементов массива

В качестве дополнительной операции привести операцию загрузки программы.

Написать программу, выполняющую те же операции, на языке Ассемблер для процессора i8086.

Для одной из операций должны быть приведены карты инфопотоков и временные диаграммы обменов.

3. Описание иллюстрированного процессора.

Общая структура гипотетического иллюстративного микропроцессора представлена на рисунке 2. Входящие в его состав компоненты говорят о том, что он является процессором с программным управлением. Некоторые компоненты, а именно программный счетчик (счетчик команд), стек и регистр команд, служат для обработки команд.

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

Микропроцессор работает со словами, состоящими из 8 бит. Такие слова, называемые байтами, удобны при выполнении арифметических и логических операций. Если в расчетах встречаются числа "большей длины", то применяются специальные программы для вычислений с "двойной точностью", "тройной точностью" и т. д.

С другой стороны, адрес из 8 битов позволяет прямо адресовать только 28 = 256 ячеек памяти. Для реальных задач этого, конечно, мало. Поэтому для задания адреса памяти обычно используется 16 разрядов (два байта), и это позволяет прямо адресовать

216=65 536 ячеек.

Информация к микропроцессору и от него передается по шинам. Шины данных в соответствии с длиной слова состоят из 8 линий, тогда как адресная шина состоит из 16 линий. Как показано на рисунке 1, адресная шина однонаправленная, а шина данных двунаправленная. Управляющая шина состоит из 5 линий, ведущих к блоку управления и синхронизации и 8 выходящих из него линий. По этим линиям передаются управляющие и тактирующие сигналы между компонентами микропроцессора и между микропроцессором и другими блоками микрокомпьютера.

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

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

Регистр адреса данных содержит адрес операнда для команд, обращающихся к памяти, адрес порта для команд ввода/вывода или адрес следующей команды для команд перехода.

Пятнадцать 8-битовых общих регистров содержат операнды для всех команд, работающих с данными. Для указания этих регистров используются 4-битовые коды от 0000 до 1110. Регистр 0000 называется аккумулятором (Асс) и участвует во всех арифметических и логических операциях. В частности, он содержит один из операндов перед выполнением операции и получает результат после ее завершения. Обычно обращения к общим регистрам осуществляются при помощи К-селектора или г-селектора. R-селектор позволяет обращаться к любому регистру, тогда как через r-селектор доступны только регистры 0000,0001 и 0010.

Очень полезная возможность, присутствующая во многих машинах, это косвенная адресация. Задание несуществующего регистра общего назначения 1111 используется как указание на то, что нужно обратиться к байту памяти по 16-разрядному адресу, который получается комбинированием содержимого двух фиксированных общих регистров. А именно, старшие 8 разрядов адреса из регистра 0001 (Н), а младшие 8 разрядов адреса из регистра 0010(L).

Все арифметические и логические операции выполняются в арифметико-логическом устройстве (АЛУ). Входами АЛУ служат две 8-битовые шины. Одна из них идет от аккумулятора (регистр 0000), а другая от К. -селектора, который выбирает либо один из регистров общего назначения от 0000 до 1110, либо ячейку памяти, если задана косвенная адресация. Еще одна входная линия поступает в АЛУ от триггера переноса С, который участвует в некоторых арифметических и логических операциях.

Результаты из АЛУ передаются в аккумулятор по выходной 8-битовой шине. Существуют еще две линии, идущие от АЛУ к блоку управления и синхронизации; они передают информацию о наличии или отсутствии двух особых условий: аккумулятор содержит нули (линия Z) и старший разряд аккумулятора равен 1 (линия N). Вторая линия очень удобна при работе с числами в дополнительном коде, когда старший разряд знаковый, причем 1 соответствует отрицательным числам. Триггер переноса и обе линии состояния АЛУ Z и N называются флажками и используются в командах условного перехода.

Последний компонент микропроцессора это блок управления и синхронизации (БУС). Он получает сигналы от дешифратора команд, который анализирует команду. Как уже упоминалось, в БУС из АЛУ и от триггера переноса поступают сигналы, по которым определяются условия для передач управления. Все остальные компоненты микропроцессора получают от БУС управляющие и синхронизирующие сигналы, необходимые для выполнения команды. С помощью 13-ти внешних линий реализуется интерфейс устройства управления с другими модулями микрокомпьютера.

Рис.2. Структура гипотетического микропроцессора

4. Описание операций.

  1. Операция загрузки программы.

Специальная программа-загрузчик вы­полняет операции по вводу требуемой программы с некоторого устрой­ства ввода и размещению ее в памяти. Главная процедура четырежды обращается к подпрограмме ввода для ввода первых четырех адресных слов, передавая эти слова каждый-раз в новые общие регистры. Затем начинается цикл передачи вводи­мых слов в память. Каждое слово вводится подпрограммой ввода и за­тем передается в соответствующую ячейку памяти, адрес которой за­дается текущим значением адреса (ТА). ТА увеличивается на 1 при каждом прохождении цикла, т. е. при поступлении каждого слова. В конце цикла происходит проверка, не превышает ли ТА значение конечного адреса (КА). Если это так, процедура загрузки заканчива­ется; в противном случае — цикл повторяется. Программа-загрузчик начинается в ячейке 0000.Программа обраща­ется к двум портам ввода: к порту 00 — за информацией о состоянии и к порту 01 — за данными. Первая группа команд соответствует главной процедуре. Подпро­грамма ввода начинается с ячейки 001D. Общие регистры 1, 2, 3 и 4 хранят соответственно ТАН TAL, KAH и KAL. Они загружаются адресной информацией, поступающей с устройства ввода. Для этого каждый раз выполняется команда перехода на подпрограмму и команда пересылки.

Цикл начинается командой перехода на подпрограмму ввода. После возврата из нее очередное введенное слово находится в аккумуляторе. Это слово переда­ется в ячейку памяти с помощью имеющегося в иллюстративном мик­ропроцессоре механизма косвенной адресации. А именно, команда MOV О to F передает содержимое аккумулятора в ячейку памяти, адрес которой задан содержимым регистров 1 и 2 (т. е. Н и L). Поскольку эти регистры содержат значение ТА, слово попадает в нужное место памяти. Следующая команда, IHL, увеличивает на 1 значение ТА. Сравнение адресов ТА и КА осуществляется при помощи проце­дуры вычитания с двойной точностью и последующего условного пе­рехода. Для вычитания с двойной точностью сначала вычитаются младшие части ТА и КА, а затем старшие части с участием заема, оставшегося от младших частей. Окончательный заем остается в триг­гере С. Следующая команда — «переход при нулевом переносе» на начало цикла. При С=0 снова входим в цикл, при С= 1 программа ос­танавливается.

2. Операция № 2 – сложение  элементов массива с константой.

Команда LDR 1 загружает в регистр 1 константу 4D, команда LDR 0 осуществляет загрузку  1 элемента заданного массива в аккумулятор. Затем с использованием команды ADD 1 происходит сложение значения, которое хранится в аккумуляторе, со значением, которое храниться в регистре 1. Результат суммы передается в ячейку памяти с использованием команды STR.  Затем в аккумулятор аналогично загружаются  оставшиеся элементы массива 2,3,4,5, складываются с константой. Однобайтовая константа загружается  в регистр R3, в регистре R5 находится счётчик для цикла перебора всех элементов массива.

3. Операция №1 – сложение каких-либо двух элементов массива.

Команда LDR 0 загружает в аккумулятор 1-ое число, команда LDR 1 загружает в регистр 1 второе число. Затем происходит сложение загруженных чисел с использованием команды ADD 1. Результат суммы сохраняется в аккумуляторе. Команда STR 0 передаёт значение аккумулятора в ячейку памяти.

4. Операции  №6 – операция перехода к подпрограмме с передачей параметров через стек.

Первые две команды заполняют регистры  H и L старшей и младшей частями адреса первого числа соответственно. Следующая команда PUSH отправляет значения этих регистров в стек. После чего стек опускается дважды. Второе число отправляется в стек аналогичным образом. После того, как данные отправились в стек, происходит переход на подпрограмму, которая осуществляет разгрузку стека с использованием команды  POP. Извлечённые из стека данные передаются в ячейки памяти  командой STR. Команда RET – выход из подпрограммы.

5. Операция №5 – операция перехода к подпрограмме с передачей параметров через регистры.

Команда LDR 0 загружает первое число в аккумулятор, затем команда MOV передаёт данные в регистр 5. Далее происходит загрузка второго числа в аккумулятор и передача данных в регистр 6. Аналогично загружается третье число, данные передаются в регистр 7. Затем происходит переход к подпрограмме, которая передаёт данные из регистров 5, 6, 7 в ячейки памяти с использованием команд MOV и STR. Команда RET – выход из подпрограммы.

6. Операция  №7 – операция умножения двух элементов массива.

Регистры рас­пределены следующим образом: R2—счетчик итераций, R3—мно­жимое 1 элемент массива, R4—множитель 2 элемент, R5—старшая часть произведения рн, R6— младшая часть произведения PL. Операция начинается с инициализа­ции цикла – установка нулей в регистрах старшей и младшей части произведений, установка начального значения счётчика. Затем происходит загрузка множителя 1-го в аккуму­лятор из регистра 4, сдвиг множителя циклически вправо и воз­вращение результата  в регистр 4. Таким образом, очередной разряд множителя, определяющий частное произведение, оказывается на триггере пере­носа С. Затем для подготовки сложения и сдвигов старшая часть про­изведения рн переносится в аккумулятор. Тестирование С = 1 осуществляется коман­дой «переход при ненулевом переносе». Она обеспечивает пропуск следующей команды при С=0. Эта следующая команда прибавляет множимое 2-ой к аккумулятору (который содержит рн) и сохраняет перенос из старшего разряда в С. Затем Рн и С циклически сдвига­ются вправо командой RTR. После сдвига новое значение рн воз­вращается в регистр 5. Затем pl и С сдвигаются вправо, для чего pl из регистра 6 загружается в аккумулятор, циклически сдвигается вместе с С и результат возвращается в регистр 6. После этого счет­чик в регистре 2 уменьшается на 1 командой DHL,  результат переда­ется в аккумулятор и тестируется командой «переход при ненулевом аккумуляторе». Если аккумулятор содержит 0, то выполняется вы­ход из подпрограммы; в противном случае управление передается на начало цикла.

7. Операция  №4 – сложение  всех  элементов массива. 

Первые две команды заносят в Н и L адрес первого числа. Затем в регистр 3 помещается начальное значение, равное 5. Регистр 3 бу­дет выполнять функции счетчика количества суммируемых чисел. Сумма накапливается в общем регистре 4, в него заносится нулевое начальное значение. Наконец, в общий регистр 5 загру­жается константа 1, которая будет вычитаться из счетчика в процессе суммирования чисел. Рабочая часть цикла начинается с загрузки текущей частной суммы в аккумулятор из регистра 4. Далее следует команда сложения ADD F, содержащая специальный указатель F, который на самом деле соответствует ячейке главной памяти с адресом в паре регистров Н и L. Содержимое этой ячейки прибавляется к частной сумме в аккумуляторе.

После этого результат передается в общий регистр 4. Далее команда IHL модифицирует регистры Н и L, так, чтобы они содержали адрес данных, которые должны обрабатываться при следующей итерации. Затем содержимое счетчика цикла передается в аккумулятор, уменьшается на 1 и снова возвра­щается в регистр 3. Когда вычисления завершаются, в аккумуляторе будет 0. Это условие тестируется командой «условный переход при ненулевом аккумуляторе». Если в аккумуляторе 0, тогда переход не происходит, и программа выходит на команду останова, в противном случае выполняется следующая итерация.

8. Операция № 3 – нахождение наибольшего из элементов массива.

Команда LDR 0 загружает 1 элемент в аккумуля­тор,  команда LDR 1 помещает 2 элемент в общий регистр 1. Затем осуществляется их сравнение путем вычитания 2 из 1. Если 2 элемент строго больше первого, тогда возникает заем в старший разряд, который сохраняется в виде еди­ницы в триггере переноса С. Однако еще до проверки переноса С значение 1-ого, как «пробное» наибольшее из 1-го и 2-го загружается в регистр 2.

Затем выполняется команда условного перехода по значению С. Если С не равно нулю, то претендент на роль наибольшего, т. е. 1 элемент, заменяется на 2 элемент. Если С=0, то происходит переход на загрузку третьего элемента массива, и в этом случае в качестве большего значения остается третий - происходит вычитание  из наибольшего  чисел 1 и 2, проверяется наличие заёма. Если заем есть, то 3-ий больше и происходит передача 3-его в регистр 2, заменяющая наибольшее из 1 и 2. При любом варианте наибольшее значение из чисел находится в регистре 2, и оно будет аналогичным образом срав­ниваться со следующим 4 элементом, а затем пятым элементом массива. После сравнения всех 5 чисел, команда STR 2 осуществляет передачу содержимого регистра 2, т.е. наибольшего значения из чисел в ячейку памяти.


4.1 Блок-схема для операции загрузка

 


4.2 Блок-схема для операции №5.

Переход к подпрограмме с передачей параметров через регистры.

Рис 3.1 Блок-схема для операции №5

 


4.3 Блок-схема для операции №3

Нахождение наибольшего элемента массива.

Рис.3.2 Блок-схема для операции №3

 


4.4 Блок-схема для операции №4  Сложение всех элементов массива.


4.5  Блок-схема для операции №6

Переход к подпрограмме с передачей параметров чрез стек.

4.6 Блок-схема для операции №1

Сложение каких-нибудь двух элементов массива.

4.7 Блок-схема для операции №2.

Сложение  элементов массива с константой.

Рис 3.6 Блок-схема для операции №2

 

4.8 Блок-схема для операции №7. Умножение двух элементов массива.


5. Код программы для иллюстрированного процессора

Ячейка

памяти

Команда на машин­ном языке

Команда в символической форме

Комментарий

Программа-загрузчик

0000

7F

JMS

Обращение к подпрограмме ввода за ТАН

0001

00

00

0002

1F

1F

0003

01

MOV 0 to 1

0004

7F

JMS

Обращение за ТАL

0005

00

00

0006

1F

1F

0007

02

MOV 0 to 2

0008

7F

JMS

Обращение за КАН

0009

00

00

000A

1F

1F

000B

03

MOV 0 to 3

000C

7F

JMS

Обращение за KAL

000D

00

00

000E

1F

1F

000F

04

MOV 0 to 4

0010

7F

JMS

Начинается цикл ввода слов

0011

00

00

0012

1F

1F

0013

OF

MOV 0 to F

Передача слова в М[ТА]

0014

F5

IHL

ТА + 1 — >ТА.

0015

14

MOV 0 from 4

Вычитание с двойной точностью ТА из КА

0016

A2

SUB 2

Устанавливается С=1, если ТА > КА

0017

13

MOV 0 from 3

0018

Bl

SBC 1

0019

7C

JCZ

Проверка  заема  в  С.   Если   нет  заема

001A

00

00

ввод нового слова

001В

10

10

001С

7B

JMP

Переход к операциям

001D

00

00

001E

27

27

001F

FD

INP

Начало программы ввода. Ввод слова

0020

00

00

состояния.

0021

7A

JAP

Проверка разряда знака в слове состояния.

0022

00

00

Если 0, повторить проверку

0023

1F

1F

0024

FD

INP

Ввод слова в аккумулятор из устройства

0025

01

01

ввода

0026

F8

RET

Возврат из подпрограммы

                              Операция №5                          

008B

70

LDR 0

Загрузка первого аргумента в регистр 5

008С

01

01

008D

02

02

008E

0D

MOV 0 to 5

008F

70

LDR 0

Загрузка второго аргумента в регистр 6

0090

01

01

0091

03

03

0092

0D

MOV 0 to 6

0093

70

LDR 0

Загрузка третьего аргумента в регистр 7

0094

01

01

0095

04

04

0096

0D

MOV 0 to 7

0097

7F

JMS

Переход на подпрограмму в ячейку 00E7

0098

00

00

0099

E7

E7

Операция №3

009A

70

LDR 0

Передача 1го элемента из памяти в Асс

009B

01

01

009C

02

02

009D

71

LDR 1

Передача 2го из памяти в регистр 1

009E

01

01

009F

03

03

00A0

A1

SUB 1

Вычитание 2 эл. из 1эл. Триггер C устанавливается, если 2 эл. больше, чем 1

00A1

72

LDR 2

Передача 1числа в регистр 2, как возможно большего

00A2

01

01

00A3

02

02

00A4

7C

JCZ

Проверка С на наличие заема. Если нет заема, то 1 > 2, и  следующая команда опускается

00A5

00

00

00A6

41

41

00A7

72

LDR 2

Передача 2 элемента массива в регистр 2, заменяющая 1, если 2 > 1

00A8

01

01

00A9

03

03

00AA

71

LDR 1

Передача 3 элемента массива из памяти в регистр 1

00AB

01

01

00AC

04

04

00AD

12

MOV 0 from 2

Передача наибольшего из 1го и 2го в аккумулятор из рег. 2

00AE

A1

SUB 1

Вычитание 3его из наибольшего среди 1,2 чисел. С устанавливается, если 3 больше

00AF

7C

JCZ

Проверка С на наличие заема. Если заем есть, то 3 больше, в противном случае, следующая команда опускается.

00B0

00

00

00B1

4C

4C

00B2

72

LDR 2

Передача 3его  в регистр 2, заменяющий наибольшее из 1 и 2 чисел, если  3 больше

00В3

01

01

00В4

04

04

00В5

71

LDR 1

Передача 4 элемента массива из памяти в регистр 1

00В6

01

01

00В7

05

05

00В8

12

MOV 0 from 2

Передача наибольшего из 1,2,3 чисел  в аккумулятор из регистра 2

00В9

A1

SUB 1

Вычитание 4го из наибольшего среди 1,2,3.

 С устанавливается, если 4ый больше.

00BA

JCZ

Проверка С на наличие заема. Если заем есть, то 4

00BB

00

00

больше, в противном случае, следующая команда опускается.

00BC

57

57

00BD

72

LDR 2

Передача 4ого в регистр 2, заменяющая наибольшее из массива 1,2,3 если 4 больше

00BE

01

01

00BF

05

05

00C0

71

LDR 1

Передача 5 элемента массива из памяти в регистр 1

00C1

01

01

00C2

06

06

00C3

12

MOV 0 from 2

Передача наибольшего из элементов массива 1,2,3,4 в аккумулятор из регистра 2

00C4

A1

SUB 1

Вычитание 5 из наибольшего среди 1,2,3,4.

С устанавливается, если 5 больше

00C5

7C

JCZ

Проверка С на наличие заема, если заем есть, то 5 больше,

00C6

00

00

в противном случае, следующая команда опускается.

00C7

62

62

00C8

72

LDR 2

Передача 5 в регистр 2, заменяющая наибольшее из 1,2,3,4, если 5 больше.

00C9

01

01

00CA

06

06

00CB

76

STR 2

Передача наибольшего элемента в ячейку 0108

00CC

01

01

00CD

08

08

Операция №4

00CE

61

LRI 1

Установка в регистрах H и L адреса

00CF

01

01

первого элемента

00D0

62

LRI 2           

00D1

02

02

00D2

63

LRI 3           

Установка начального значения

00D3

05

05                        

счетчика цикла равным 5

00D4

64

LRI 4

Установка частной суммы равной  0

00D5

00

00                       

00D6

65

LRI 5     

Загрузка константы 1 для уменьшения счетчика

00D7

01

01                        

00D8

14

MOV 0 from 4

Прибавление числа

00D9

8F

ADD F           

00DA

04

MOV 0 to 4   

00DB

F5

IHL                    

Увеличение H и L

00DC

13

MOV 0 from 3

Загрузка начального значения счётчика в Асс

00DD

A5

SUB 5           

Уменьшение счетчика на 1

00DE

03

MOV 0 to 3     

00DF

7D

JAN

Проверка конца цикла

00E0

00

00

00E1

CB

CB

00E2

14

MOV 0 from 4

Загрузка данных из 4 регистра в Асс

00E3

74

STR 0

Передача содержимого Асс в ячейку  0110

00E4

01

01    

00E5

10

10

Операция №6

0056

61

LRI 1

Установка в регистрах H и L адреса

0057

01

01

первого элемента

0058

62

LRI 2

0059

02

02 

005А

77

PUSH

Передача в стек

005B

61

LRI 1

Установка в регистрах H и L адреса

005C

01

01

второго элемента

005D

62

LRI 2

005E

03

03

005F

77

PUSH

Передача в стек

0060

7F

JMS

Переход к подпрограмме в ячейку 00F4

0061

00

00               

0062

F4

F4

Операция №1

0027

70

LDR 0

Передача содержимого ячейки памяти

0028

01

01

0102 в Асс

0029

02

02

002A

70

LDR 1

Передача содержимого ячейки памяти

002B

01

01

0103 в регистр 1

002C

03

03

002D

81

ADD 1

Сложение 0 и 1 регистров, сумма Асс

002E

74

STR 0

Передача содержимого Асс в ячейку 0107

002F

01

01

0030

07

07

Операция №2

0040

0C

0C

0041

70

LDR 0

Передача содержимого ячейки памяти

0042

01

01

0104 в Асс

0043

04

04

0044

81

ADD 1

Сложение 3 числа с константой, сумма Асс

0045

74

STR 0

Передача содержимого Асс в ячейку 010D

0046

01

01

0047

0D

0D

0048

70

LDR 0

Передача содержимого ячейки памяти

0049

01

01

0105 в Асс

004A

05

05

004B

81

ADD 1

Сложение 4 числа с константой, сумма Асс

004C

74

STR 0

Передача содержимого Асс в ячейку 010E

004D

01

01

004E

0E

0E

004F

70

LDR 0

Передача содержимого ячейки памяти

0050

01

01

0106 в Асс

0051

06

06

0052

81

ADD 1

Сложение 5 числа с константой, сумма Асс

0053

74

STR 0

Передача содержимого Асс в ячейку 010F

0054

01

01

0055

0F

0F

Операция №7

0063

65

LRI  5

Установка нулевых значений в Rн и RL

0064

00

00

0065

66

LRI 6

0066

00

00

0067

61

LRI 1

0068

00

00

0069

62

LRI  2

Установка на счетчике начального

006A

08

08

значения 8

006B

74

LDR 4

Загрузка множителя в регистр 4

006C

01

01

006D

02

02

006E

14

MOV 0 from 4

Загрузка множителя в Асс

006F

F2

RTR

Циклический сдвиг вправо, мл.бит Асс попадает в С

0070

04

MOV 0 to 4

Запоминание сдвинутого множителя

0071

15

MOV 0 from 5

Загрузка ст. части произведения в Асс

0072

JCZ

Тест бита множителя. Переход при 0

0073

00

00

0074

7B

7B

0075

73

LDR 3

Загрузка множимого в регистр 3

0076

01

01

0077

03

03

0078

83

ADD 3

Сложение множимого со ст. частью  произведения

0079

F2

RTR

Сдвиг Рн вправо, мл. бит в С

007A

05

MOV 0 to 5

Запоминание сдвинутого Rн

007B

16

MOV 0 from 6

Загрузка мл. части произведения в Асс

007C

F2

RTR

Сдвиг С и мл. части произведения  вправо

007D

06

MOV 0 to 6

Запоминание сдвинутого RL

007E

F6

DHL

Уменьшение счетчика на 1

007F

12

MOV 0 from 2

Загрузка счетчика в аккумулятор

0080

7D

JAN

Тестирование  Асс. Повторение

0081

00

00

цикла, если не нуль

0082

70

70

0083

35

MOV 1 from 5

Передача ст.части произведения в регистр 1

0084

56

MOV 2 from 6

Передача мл.части произведения в регистр 2

0085

75

SТR 1

Передача содержимого регистра 1 в ячейку 0109

0086

01

01

0087

09

09

0088

76

SТR 2

Передача содержимого регистра 2 в ячейку 010А

0089

01

01

008A

Завершение операций

00E6

FA

HLT

Остановка программы

00E7

11

MOV 0 from 5

Начало подпрограммы для операции №5. Передача содержимого регистра 5 в Асс

00E8

74

STR 0

Передача содержимого Асс в ячейку 0111

00E9

01

01

00EA

11

11

00EB

11

MOV 1 from 6

Передача содержимого регистра 6 в регистр 1

00EC

75

STR 1

Передача содержимого регистра 1 в ячейку 0112

00ED

01

01

00EE

12

12

00EF

11

MOV 2 from 7

Передача содержимого регистра 7 в регистр 2

00F0

76

STR 2

Передача содержимого регистра 2 в ячейку 0113

00F1

01

01

00F2

13

13

00F3

F8

RET  

Возврат из  подпрограммы операции № 5

00F4

73

POP                                                                                  
                                                                                 
                                                                                 
                                                                                 
                                                                                 
                                                                                 
                                                                                 
                                                                       

Начало подпрограммы для операции №6. Извлечение данных из стека

00F5

75

STR 1

Передача содержимого регистра 1 в ячейку 0114

00F6

01

01

00F7

14

14

00F8

76

STR 2

Передача содержимого регистра 2 в ячейку 0115

00F9

01

01

00FA

15

15

00FB

73

POP                                                                                  
                                                                                 
                                                                                 
                                                                                 
                                                                                 
                                                                                 
                                                                                 
                                                                       

Извлечение данных из стека

00FC

75

STR 1

Передача содержимого регистра 1 в ячейку 0116

01

01

00FD

16

16

00FE

76

STR 2

Передача содержимого регистра 2 в ячейку 0117

00FF

01

01

0100

17

17

0101

F8

RET

Возврата из подпрограммы операции № 6

0102

1 элемент массива

0103

2 элемент массива

0104

3 элемент массива

0105

4 элемент массива

0106

5 элемент массива

0107

Результат сложения 2 чисел

0108

Результат нахождения наибольшего числа

0109

Результат умножения двух чисел (ст.часть)

010A

Результат умножения двух чисел (мл.часть)

010B

Результат сложения 1 числа с константой

010C

Результат сложения 2 числа с константой

010D

Результат сложения 3 числа с константой

010E

Результат сложения 4 числа с константой

010F

Результат сложения 5 числа с константой

0110

Результат сложения всех чисел

0111

Данные из регистра

0112

Данные из регистра

0113

Данные из регистра

0114

Данные из стека

0115

Данные из стека

0116

Данные из стека

0117

Данные из стека

6 КАРТЫ ИНФОРМАЦИОННЫХ ПОТОКОВ

В данном пункте представлены карты информационных потоков для операции № 1 – сложение каких-либо двух элементов массива. Данная операция включает в себя такие команды как: LDR R, ADD R, STR R.

Выполнение любой команды состоит из двух этапов. Первый этап – это чтение команды из памяти. Чтение каждого байта занимает один машинный цикл. 16-битовый адрес  первого байта команды передается в память по шине адреса с программного счетчика. Устройство управления формирует сигнал «чтение», благодаря которому  содержимое ячейки  выдается из памяти на шину данных  и затем  принимается в регистр команд. После считывания первого байта (код операции), который попадает в регистр команд, блок управления определяет, из какого количества байт состоит команда. Если есть еще один или два байта, то соответственно затрачивается один или два машинных цикла на их считывание. Эти байты попадают в регистр адреса данных. Второй этап – это выполнение команды.

Более подробно остановимся на рассмотрении фазы выполнения команд операции №1.

Рисунок 3 – Информационные потоки команды LDR R

Команда LDR r занимает 3 байта и производит загрузку регистра. После фазы выборки-дешифрации командного цикла происходит передача второго и третьего байтов, определяющий адрес ячейки, из которой требуется извлечь данные, на регистр адреса данных. Данная передача занимает 2 цикла. Затем содержимое регистра адреса данных подается на адресную шину, а содержимое шины данных – данные из ячейки памяти – подается на общий регистр r. Фаза выполнения требует одного внешнего обмена и занимает один машинный цикл. Следовательно, полный командный цикл занимает четыре машинных цикла: три на фазу выборки-дешифрации и один на фазу выполнения.

Рисунок 4 – Информационные потоки в фазе выполнения команды ADD R.

ADD R – команда обработки информации, складывающая содержимое аккумулятора с содержимым регистра R. Команда ADD R – это однобайтовая команда. Следовательно, после второго синхроимпульса первого и единственного машинного цикла содержимое акку­мулятора и регистра R может быть подано на входы АЛУ в качестве операндов. АЛУ по этим двум операндам вычисляет 8-разрядную сумму и значение переноса. Таким образом, по третьему синхроимпульсу машинного цикла сумма передается в аккумулятор.

Рисунок 5 – Информационные потоки команды STR R

Команда STR R является трехбайтовой. Она служит для запоминания регистра, причем во втором и третьем байте этой команды содержатся старшая и младшая часть ячейки памяти, в которую необходимо сохранить содержимое нужного нам регистра. Содержимое регистра адреса данных, загруженного в фазе выборки-дешифрации вторым и третьим байтами команды, подается на адресную шину, а содержимое общего регистра r подается на шину данных. Затем устройство управления формирует сигнал «запись», стробирующий запись данных в адресуемую ячейку памяти. Фаза выполнения требует одного внешнего обмена и занимает один машинный цикл. Следовательно, полный командный цикл занимает четыре машинных цикла: три на фазу выборки-дешифрации и один на фазу выполнения.

7.Временная диаграмма обменов для операции №5

Рис. 6 Временные диаграммы обменов для операции №5

8 ЗАКЛЮЧЕНИЕ

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

9 СПИСОК  ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1.     Методические указания к выполнению курсового проекта для студентов   2102, по дисциплине "Вычислительные, машины системы и сети". 2003 г.

2.     Каган Б.М. Электронные вычислительные машины и системы.

     – М.: Энегроатомиздат, 1997.

3.     Пятибратов А.П., Гудыно Л.П., Кириченко А.А. Вычислительные

     системы, сети и телекоммуникации. – М.: Финансы и статистика, 2002.

4.     Гивоне Д., Россер Р. Микропроцессоры и микрокомпьютеры. – М.: Мир,

     1993.

5.     Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов.

           – М.: Мир, 1991.

6.     Вирт Н Алгоритмы и структуры данных. – М.: Мир, 1999.

7.     Пильщиков В.Н. Программирование на языке ассемблера IBM РС.

          – М.: Диалог-Мифи, 1996.

Информация о файле
Название файла курсовая работа Вычислительные машины, системы и сети от пользователя Ирина Дмитрова
Дата добавления 10.5.2020, 20:25
Дата обновления 10.5.2020, 20:25
Тип файла Тип файла (zip - application/zip)
Скриншот Не доступно
Статистика
Размер файла 879.76 килобайт (Примерное время скачивания)
Просмотров 450
Скачиваний 137
Оценить файл