- •Е.С. Тарасов эвм и периферийные устройства
- •230100 «Информатика и вычислительная техника»
- •Содержание
- •Пояснительная записка
- •Практическая работа № 1 «Изучение форматов команд в эвм»
- •8.1 Классификация команд.
- •5. Порядок выполнения работы:
- •6. Содержание отчета:
- •7. Контрольные вопросы:
- •8. Приложение
- •8.2 Способы адресации команд
- •8.2.1 Общие сведения
- •8.3 Формы представления команд и данных.
- •«Изучение алгоритмов выполнения команд, на основе базовой эвм»
- •8.2 Алгоритмы выполнения команд в базовой эвм.
- •8.2.1 Система команд базовой эвм.
- •8.2.2 Фазы выполнения машинных команд.
- •8.2.2.1 Выборка команды.
- •8.2.2.2 Выполнение команды.
- •8.2.2.3 Решение задачи.
- •8.2.2.4 Выполнение однословной команды пересылки.
- •8.2.2.5 Выполнение двухсловной команды бпу.
- •Практическая работа № 3 «Составление программ обработки данных на языке Assembler»
- •8.2 Способы адресаций.
- •8.3 Составление линейных программ на языке Assembler.
- •8.4 Составление нелинейных программ на языке Assembler.
- •Практическая работа № 4 «Исследование устройства и принципа работы пэвм»
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •8 Приложение
- •8.1 Подготовка к работе.
- •8.2 Сборка системы.
- •8.2.1 Установка системной платы.
- •8.2.2 Подключение блока питания.
- •8.2.3 Подключение к системной плате кабелей от устройств ввода – вывода и других соединителей.
- •8.2.4 Установка накопителей.
- •8.2.5 Установка видеоадаптера и плат расширения.
- •Практическая работа № 5 «Изучение конструкции системной платы современных пэвм»
- •8 Приложение
- •Практическая работа № 6 «Изучение методов установки и настройки ос Windows и программного обеспечения пэвм»
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •8 Приложение
- •Практическая работа № 7 «Исследование тестово – диагностических программ для пэвм»
- •8 Приложение
- •8.1 Виды диагностических программ.
- •8.2 Первичное тестирование пэвм.
- •8.3 Диагностические программы общего назначения.
- •8.4 Диагностические программы фирм производителей оборудования.
- •8.5 Диагностические программы операционной системы.
- •Практическая работа № 8 «Описание и моделирование систем логических функций»
- •5 Порядок выполнения работы:
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •Практическая работа № 9 «Описание и моделирование нерегулярных логических схем»
- •5 Порядок выполнения работы:
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •Практическая работа № 10 «Описание и моделирование регулярных (систологических) схем»
- •5 Порядок выполнения работы:
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •Практическая работа № 11 «Описание и моделирование триггеров и конечных автоматов»
- •5 Порядок выполнения работы:
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •Практическая работа № 12 «Изучение функций и процедур»
- •5 Порядок выполнения работы:
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •Практическая работа 13 «Изучение методов построения оперативной памяти пэвм»
- •1 Цель работы:
- •Литература:
- •Задание:
- •Содержание отчета:
- •5 Контрольные вопросы:
- •6 Приложение:
- •6.1 Виды запоминающих устройств.
- •6.1.1 Основные характеристики зу.
- •6.1.2 Классификация запоминающих устройств.
- •6.1.3 Иерархический принцип построения памяти.
- •6.2 Организация внутренней памяти.
- •6.2.1 Структура запоминающих устройств малой емкости.
- •6.2.2 Построение озу большой емкости.
- •Практическая работа № 14 «Изучение конструкции и принципа работы взу»
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •8 Приложение
- •8.1 Накопители на гибких магнитных дисках.
- •8.1.1 Характеристики нгмд.
- •8.1.2 Конструкция дискеты 3,5 дюйма.
- •8.1.3 Конструкция нгмд.
- •8.2 Накопители на жестких магнитных дисках
- •8.2.1 Принцип работы накопителей на жестких дисках (нжмд).
- •8.2.2 Конструкция нжмд.
- •8.2.2.1 Основные узлы нжмд.
- •8.2.2.2 Диски.
- •8.2.2.3 Головки чтения/записи.
- •8.2.2.4 Механизм привода головок.
- •8.2.2.5 Воздушные фильтры.
- •8.2.2.6 Шпиндельный двигатель.
- •8.2.2.7 Плата управления.
- •8.2.2.8 Кабели и разъемы.
- •8.2.3 Характеристики нжмд.
- •8.3 Накопители на оптических дисках
- •8.3.1 Оптические технологии на cd дисках.
- •8.3.2 Оптические технологии на dvd дисках
- •8.3.3 Характеристики нод.
- •8.3.3.1 Скорость передачи данных.
- •8.3.3.2 Скорость накопителей на компакт – дисках.
- •8.3.3.3 Скорость накопителей dvd.
- •8.3.3.4 Время доступа.
- •8.3.4 Конструкция нод.
- •Практическая работа 15 «Изучение режимов сканирования изображений»
- •5 Порядок выполнения работы:
- •6 Содержание отчета:
- •7 Контрольные вопросы:
- •8 Приложение
- •8.1 Общие сведения о сканерах
- •8.2 Классификацию сканеров
- •8.2.1 По конструктивному исполнению.
- •8.2.2 По типу обрабатываемых изображений.
- •8.3 Интерфейсы подключения сканера.
- •8.3.1 Аппаратный интерфейс.
- •8.4 Параметры сканирования
- •8.4.1 Размер обрабатываемых изображений.
- •8.4.3 Контрастность и яркость.
- •8.4.4 Быстродействие.
- •8.4.5 Сшивание изображения.
- •8.4.6 Порог чувствительности.
- •8.5 Принцип работы черно-белого сканера
- •8.6 Принцип работы цветного сканера
- •8.7 Линейка полупроводниковых приборов с зарядовой связью пзс
- •8.8 Форматы и субформаты графических файлов
- •8.9 Программное обеспечение сканеров
- •8.9.1 Ocr. Распознавание образов
- •8.9.2 Распознавание текстов.
- •Практическая работа 16 «Изучение последовательных и параллельных интерфейсов эвм»
- •6 Приложение
- •6.1 Параллельные интерфейсы
- •6.2 Последовательный интерфейсы
- •6.3 Интерфейс физического уровня rs - 232c
- •6.4 Нулевой модем
- •6.5 Интерфейсы глобальных систем
- •Практическая работа 17 «Оснащение учебно-вычислительного центра вычислительной и оргтехникой»
- •1 Цель работы:
- •2 Литература:
- •3 Задание:
- •4 Содержание отчета:
- •5 Приложение
- •5.1 Требования к учебно-вычислительному центру.
- •5.2 Требования к проекту
- •5.3 Утверждение проекта
8.4 Составление нелинейных программ на языке Assembler.
Нелинейные программы подразумевают наличие условий, в зависимости от их выполнения или нет выбирается порядок выполнения программы. Кроме того, к нелинейным программам относятся программы с циклами.
Рассмотрим пример программы с условием.
Задача. Проанализировать содержимое младшего разряда числа, хранящегося в регистре В. Если оно равно нулю, то к содержимому регистра В следует прибавить содержимое регистра С, если оно равно единицы, то к содержимому регистра В нужно прибавить содержимое регистра D. Результат записать в регистр В.
Решение данной задачи сразу представим в виде блок – схемы (рисунок 7).
Для того, что бы выполнить сложение двух чисел, по условию задачи, необходимо проанализировать младший разряд числа, записанного в регистре В. Для этого, надо число из регистра В переслать в аккумулятор. После этого, надо сдвинуть число вправо. В данном случае не важно используется триггер Тс или нет, поскольку главное, что бы младший разряд записался в триггер Тс. Теперь можно проанализировать состояние триггера Тс, и в зависимости от этого к содержимому регистра В прибавить либо содержимого регистра С, либо регистра D. Но теперь, после сдвига, в аккумуляторе нет числа из регистра В. Поэтому, для упращения программы, если в триггере Тс будет ноль, то в аккумулятор пересылается содержимое регистра С, если в нем будет единица, то в аккумулятор пересылается содержимое регистра D. После этого, к содержимому регистра А прибавляется содержимое регистра В. Результат сложения пересылается в регистр В.
В таких задачах, прежде чем писать программу желательно сначала присвоить всем командам адреса ячеек памяти, где они будут храниться. На рисунке 7 они расставлены с учетом количества байт, которое содержит каждая команда. Количество байт можно узнать из таблицы 1. Назначение и структура почти всех команд алгоритма на рисунке 7 были рассмотрены выше. Новыми командами являются команды передачи управления. В данной программе встречаются два вида команд передачи управления: условной (УПУ) и безусловной (БПУ).
В данном примере команда УПУ применяется при определении состояния младшего разряда числа, которое хранилось в регистре В. Условие выполняется по стоянию триггера Тс Команда условие может быть выбрана по нулю и по единице. На рисунке 7 выбрана команда УПУ по единице. Смысл заключается в следующем. Если условие по единице выполняется, т. е. в триггере Тс единица, то следующей выполняется команда, хранящаяся в ячейке памяти, адрес которой записан во втором и третьем байте команды. В данном примере будет выполнятся команда, которая хранится в ячейке памяти 0059. То есть, если в триггере Тс записана единица, то в регистр А записывается число из регистра D.
Рисунок 7 – Алгоритм выполнения программы с условием
Если условие по единице не выполняется, то есть в триггере Тс ноль, то выполняется команда, которая хранится в следующей ячейке памяти после команды УПУ. В нашем случае это команда, которая хранится в ячейке памяти 0055. То есть если в триггере Тс будет ноль, то в регистр А будет записано содержимое регистра С.
Ранее говорилось,
что при загрузки программы в ОЗУ, все
команды записываются в ячейки памяти
с порядковыми по возрастанию адресами.
Команды выбираются по порядку из ячеек
памяти. Из алгоритма, показанного на
рисунке 7 видно, что после загрузки в
аккумулятор числа из регистра С (команда
из ячейки памяти 0055) или из регистра D
(команда из ячейки памяти 0059) должна
выполнятся команда сложения содержимого
аккумулятора с содержимым регистра В.
Значит, команда сложения должна находиться
в следующей ячейке памяти и по отношению
к команде в ячейке памяти 0055 и по отношению
к команде в ячейке памяти 0059. Но это не
возможно, или программа будет громоздкой
и занимать много места. Поэтому можно
использовать команду безусловной
передачи управления (БПУ). Команда
сложения находиться в соседней ячейке
памяти (005А) после команды пересылки
(0059). Но эта же команда сложения находится
не в соседней ячейки памяти по отношению
к команде пересылки
(адрес 0055). Для того, что бы сохранить
последовательность выполнения команд
в программе, после команды пересылки
поставлена команда БПУ. Она трехбайтовая.
Во втором и третьем байтах находится
адрес той команды, которая должна
выполнятся следующей. В нашем случае,
в этих байтах будет храниться адрес
005А. Если команды БПУ не будет, то смениться
адресация команд в программе, но будет
нарушена логика выполнения программы.
В таблице 4 показана программа выполнения алгоритма, показанного на рисунке 7. Команда RRC выбрана произвольно, т. к. в данной программе не важно какой сдвиг, с учетом триггера Тс или без него. Команда JC относится к группе команд «Операций перехода» (таблица 1). Все команды этой группы, за исключение команды БПУ (JMP), имеют общий формат 11К4010. Все эти команды трехбайтовые. Во втором и третьем байте всегда пишется адрес ячейки памяти, где хранится команда, которая должна выполнятся следующей. Для каждого триггера регистра признаков предусмотрено две команды, одна по нулю, другая по единице.
Таблица 4
Адрес хранения команды |
Мнемоника |
Структура |
Описание |
|
2 - ая |
16 - ая |
|||
0050 |
MOV A, В |
01111000 |
78 |
|
0051 |
RRC |
00001111 |
0F |
Сдв. в П (А) |
0052 |
JC |
11011010 |
DA |
УПУ по Тс = 1 |
0053 |
- |
01011001 |
59 |
В2 = 59 |
0054 |
- |
00000000 |
00 |
В3 = 00 |
0055 |
MOV A, С |
01111100 |
79 |
|
0056 |
JMP |
11000011 |
C3 |
БПУ |
0057 |
- |
00001010 |
0А |
В2 = 0А |
0058 |
- |
00000000 |
00 |
В3 = 00 |
0059 |
MOV A, D |
01111010 |
7A |
|
005A |
ADD В |
10000000 |
80 |
|
005B |
MOV В, A |
01000111 |
47 |
|
Рассмотрим построение программ с организацией циклов.
Задача. Выполнить умножение двух восьмиразрядных чисел.
Решение. Пусть множимое хранится в регистре D, множитель в аккумуляторе. Произведение будет формироваться в паре регистров HL. Будем анализировать разряды множителя, начиная с его старшего разряда. Поэтому, полученные частные произведения, начиная с восьмого, будут прибавляться к содержимому пары регистров HL. После каждого суммирования частного произведения, содержимое пары регистров HL будет сдвигаться влево путем удвоения их содержимого. Весь этот процесс должен повториться восемь раз. Поэтому необходим счетчик. Его можно организовать на каком – либо регистре, например В. В него записывается число восемь. После каждого цикла значение счетчика уменьшается на единицу и содержимое регистра проверяется на нулевое значение. Как только в регистре В будет ноль, то происходит выход из цикла.
На рисунке 8 показан алгоритм умножения двух чисел. Первая команда в алгоритме позволяет организовать счетчик, загрузив в регистр В число восемь. Дальше начинается цикл. Он начинается с того, что происходит сдвиг содержимого пары регистров HL вправо, путем удвоения. Но в системе команд для МПК КР580 нет команды умножения на два. Но есть команда сложения содержимого пары регистров HL с любой другой парой регистров, в том числе и с собой. Эта команда DAD, которая находиться в группе команд «Арифметических операций» (таблица 1). Поэтому удваивать содержимое пары регистров HL путем сложения их содержимого с самим собой. Сдвиг в лево осуществляется для того, что бы через триггер Тс определить состояние разряда: ноль или единица. Потом используется команда УПУ по нулю. Если условие не выполняется, т. е. разряд множителя равен единице, то к содержимому пары регистров HL прибавляется содержимое регистра D. Но поскольку складывать содержимое одного регистра и пары регистров нельзя, то складывается пара регистров HL с парой регистров DE.
Если условие по нулю выполняется, т. е. разряд множимого равен нулю, то прибавлять к паре регистров ни чего не надо, т. к. частное произведение будет равно нулю. Поэтому команда УПУ передаст управление команде уменьшения значения регистра В. Это обозначает, что прошел один цикл выполнения умножения. Значит, значение счетчика уменьшается на единицу. После этого содержимое регистра (счетчика) проверяется на наличие нуля с помощью триггера нуля (ТZ). Напомним, что этот триггер принимает значение единицы в том случае, если в каком – либо регистре появляется нулевое значение. В данном случае команда УПУ берется по нулю. Если условие выполняется, и в триггере Тz нулевое значение, т. е. значение счетчика не равно нулю, то команда УПУ передает управление команде, хранящейся в ячейке памяти с адресом 0052, где хранится команда сдвига пары регистра HL. Таким образом, выполнение программы повторяется.
Если условие команды УПУ по триггеру Тz не выполняется, т. е. в этом триггере появилась единица, значит счетчик в регистре В обнулился и умножение произошло восемь раз. Тогда происходит выход из цикла и выполняется следующая команда, вслед за командой УПУ. В нашем случае программа заканчивается, т. к. умножение завершилось и задача выполнена.
В таблице 5 приведена программа, реализующая алгоритм, показанного на рисунке 8.
Команда DAD имеет свою особенность в структуре. Если посмотреть на ее мнемонику, то после самой команды указывается регистр, который стоит вторым в паре. Так команда, которая хранится в ячейке памяти 0057, осуществляет сложение пары регистров HL с парой регистров DE. В мнемонике этой команды показано DAD E, т. е. указан второй регистр в паре DE. Структуру и принцип работы остальных команд был разобран выше.
Рисунок 8 – Алгоритм умножения восьмиразрядных чисел
Таблица 5
Адрес хранения команды |
Мнемоника |
Структура |
Описание |
|
2 - ая |
16 - ая |
|||
0050 |
MVI В |
00000110 |
06 |
|
0051 |
- |
00001000 |
08 |
B2 = 08 |
0052 |
DAD L |
00101001 |
29 |
|
0053 |
RLC |
00000111 |
07 |
Сдв. в Л (А) |
0054 |
JNC |
11010010 |
D2 |
УПУ по Тс = 0 |
0055 |
- |
01011000 |
58 |
В2 = 58 |
0056 |
- |
00000000 |
00 |
В3 = 00 |
0057 |
DAD E |
00011001 |
19 |
|
0058 |
DCR B |
00000101 |
05 |
|
0059 |
JNZ |
11000010 |
C2 |
УПУ по Тz = 0 |
005A |
- |
01010010 |
52 |
В2 = 52 |
005B |
- |
00000000 |
00 |
В3 = 00 |
