Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫЙ ПРАКТИКУМ 2012.docx
Скачиваний:
24
Добавлен:
16.08.2019
Размер:
1.27 Mб
Скачать

Министерство образования и науки

Российской Федерации

Федеральное бюджетное Государственное образовательное учреждение

высшего профессионального образования

«Алтайский государственный технический

университет им. И.И.Ползунова»

В.И.Грозов

Лабораторный практикум

АППАРАТНЫЕ СРЕДСТВА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Барнаул – 2012

УДК 004.3

Грозов, В.И. АППАРАТНЫЕ СРЕДСТВА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ: методическое пособие/ В.И. Грозов; АлтГТУ им. И.И. Ползунова. – Барнаул, Изд-во АлтГТУ, 2012. – 88 c., ил.

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

Методическое пособие предназначено для студентов, обучающихся по направлению 230100 «Информатика и вычислительная техника» (090900 «Информационная безопасность».

Методическое пособие рассмотрено на заседании кафедры «Вычислительные системы и информационная безопасность», протокол № 3 от 03.09.2010 г.

Рецензент:

Оглавление

ЛАБОРАТОРНЫЙ ПРАКТИКУМ 4

Тема: Система команд процессоров и методы адресации 4

a) Абсолютная адресация 8

б) относительная адресация 10

в) вариант программы с использованием только регистров и стековой памяти 12

Тема: Команды сравнения и переходов 13

Первый вариант: 16

Второй вариант: 17

Третий вариант: 18

Варианты заданий к лабораторной работе 18

Тема: Организация подпрограмм и внутренние механизмы передачи параметров 20

а) Передача параметров через регистры 21

b) Пример передачи параметров через общую область памяти. 22

c) Передача параметров через стек. 24

d) Передача параметров через таблицу адресов 25

Варианты заданий для лабораторной работы 26

Тема: Организация прерываний 27

Варианты заданий к лабораторной работе выбираются из таблицы 3. 30

Тема: Введение в архитектуру IBM PC 30

Пример реализации программ в среде отладчика Debug 30

Тема: Трансляция, компоновка и отладка программ 36

Тема: Режимы адресации 45

Тема: Программирование ветвлений и циклов 51

Тема: Арифметические операции целочисленной обработки информации 58

Тема: Программирование операций ввода-вывода 63

Приложение 1 Функциональная модель микроЭВМ-2 69

Приложение 2. 70

2.1.1. Представление чисел и перевод из одного счисления в другое. 70

2.1.2. Сложение положительных чисел 72

2.1.3. Сложение и вычитание чисел со знаком 72

2.2.1. Преобразование двоичных чисел в десятичные 76

2.2.2. Преобразование десятичных чисел в двоичные 77

2.3. Двоично-десятичная система счисления 79

2.4. Восьмеричная система счисления 80

2.5. Шестнадцатеричная система счисления 81

Приложение 3 Программная модель микропроцессора Intel (Pentium III) 82

Приложение 4 Система команд микропроцессора Intel 8086 84

Приложение 5 Коды ASCII (диапазон 0-127) 87

Лабораторный практикум

Данный раздел содержит задания к лабораторным работам и примеры их выполнения по курсу “Аппаратные средства вычислительной техники".

Тема: Система команд процессоров и методы адресации

Цель лабораторной работы:

Цель данной лабораторной работы состоит в изучении особенностей выполнения команд процессоров и знакомстве с методами адресации памяти при разработке программ на машинном языке.

Задание к лабораторной работе:

- изучить соответствующий теоретический материал, используя конспекты и литературу;

- на примере функциональной модели ЭВМ-2 [1] (приложение 1) ознакомиться с системой команд процессора и особенностями выполнения команд различных групп (особое внимание уделить реализации команд умножения и деления, работе со стековой памятью). Модель работает в шестнадцатеричной системе исчислений, перевод из одной системы счисления в другой приведено в приложении 2;

- рассмотреть допустимые в системе команд формы адресации и их реализацию;

- составить программы для реализации заданных выражений используя язык ассемблера модели, при этом учесть то, что программа для реализации линейного выражения должна быть реализована тремя способами - с использованием абсолютной формы адресации, с использованием относительной формы и с использованием только регистров и стековой памяти;

- ввести полученные программы в моделируемую память; выполнить программы для различных вариантов исходных данных, наблюдая, как изменяется состояние компонентов процессора ЭВМ и памяти при выполнении каждой команды; разобраться, почему и как модифицируются те или иные объекты, как выполняются команды и как осуществляется доступ к операндам;

- составить отчет по лабораторной работе;

Современные, вычислительные машины строятся на основе принципов программного управления, предполагающих следующее:

исходные данные, промежуточные и конечные результаты кодируются в той или иной (обычно двоичной) форме и разделяются на единицы информации, называемые словами;

правила вычислений задаются с помощью операторов двух типов - преобразователей и распознавателей; преобразователи обеспечивают собственно выполнение операций над элементами информации; распознаватели обеспечивают управление порядком выполнения операторов путем анализа элементов информации;

каждый оператор кодируется управляющим словом - командой; команда представляет собой указание на то, какие действия необходимо выполнить (какую операцию) и где расположены данные, над которыми должна быть выполнена операция, представляющая собой действие, выполняемое на аппаратном уровне; данные, над которыми выполняется операция, называются операндами; последовательность команд с явно или неявно заданным порядком выполнения представляют собой программу;

разнотипные слова информации (данные и команды) различаются по способу использования, но не по способу кодирования; иными словами, одни и те, же элементы информации в различные моменты времени и в различном контексте могут рассматриваться и как команды, и как данные;

слова информации размещаются в ячейках памяти и идентифицируются номерами ячеек, называемых адресами;

реализуемая компьютером функция целиком определяется хранимой в памяти программой; замена программы полностью изменяет функцию компьютера.

По функциональному назначению набор машинных команд процессора любого компьютера можно условно разбить на четыре основные группы:

• команды пересылки;

• арифметико-логические команды;

• команды переходов;

• команды управления состоянием процессора.

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

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

Программа на ассемблере представляет собой последовательность строк, каждая из которых имеет вид:

[МЕТКА:]ОПЕРАЦИЯ [ОПЕРАНДЫ] [;КОММЕНТАРИЙ]

или

; КОММЕНТАРИЙ

МЕТКА является идентификатором, состоящим не более чем из восьми символов. В качестве символов могут быть латинские буквы и цифры 0…9. Первым символом метки должна быть буква.

ОПЕРАЦИЯ является мнемокодом машинной инструкции или директивы ассемблера. Операция отделяется от поля метки символом «:», который является обязательным.

ОПЕРАНДЫ являются символическими операндами инструкций или директив ассемблера. Операнды отделяются от поля операции хотя бы одним пробелом, а между собой символом «,» (запятой).

КОММЕНТАРИЙ представляет собой любую последовательность символов после знака «;» отделяющимся от поля операндов или операции хотя бы одним пробелом.

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

Пересылка регистров: MOV R1,R2 Содержимое регистра R2 копируется в R1. Содержимое в R2 сохраняется.

Загрузка регистра: LOAD R,A или LOAD R,D(B). Содержимое ячейки памяти с абсолютным адресом А или относительным адресом (В)+D копируется в регистр R. Содержимое ячеек А и В остаются неизменными.

Запись из регистра: STOR R,A или STOR R,D(B). Содержимое регистра R копируется в ячейку памяти по абсолютному адресу А или относительному адресу (B)+D. Содержимое ячеек А и В остаются неизменными.

Запись в стековую память: PUSH R. Содержимое регистра R записывается в вершину стека. При каждой записи в стек предыдущие данные опускаются ниже на дно стека (рис.1).

Восстановление из стековой памяти: POP R.

Непосредственная загрузка: MVI R,I. В регистр R загружается непосредственный операнд I.

Обмен регистров: XCHG. Регистры R1 и R2 обмениваются содержимым.

Ввод из порта: IN N. Содержимое порта с адресом N заносится в регистр rА.

Вывод в порт: OUT N. Содержимое регистра А выводится в порт с адресом N.

0

Рис.1. Стек слов в памяти

Сложение регистров: ADR R1,R2. Складывается содержимое регистров R1 и R2, результат помещается в регистр R1.

Сложение регистра с памятью: ADM R,A или ADM R,D(B). К содержимому регистра R добавляется содержимое ячейки памяти с адресом А или (B)+D, результат помещается в R.

Сложение непосредственное: ADI R,I. Содержимое регистра R складываются с непосредственным операндом, результат записывается в регистр R.

Вычитание регистров: SBR R1,R2. Из содержимого регистра R1 вычитается содержимое регистра R2, результат помещается в регистр R.

Вычитание: SBM R,A или SBM R,D(B). Из содержимого регистра R вычитается содержимое ячейки памяти с адресом А или (В)+D, результат помещается в регистр R.

Вычитание непосредственное: SBI R,I. Из содержимого регистра R вычитается непосредственный операнд I, результат помещается в регистр R.

Умножение регистров: MUR R1,R2. Содержимое регистра размещается в двух байтах R1+1 и умножается на регистр R2, результат помещается в паре регистров – старшая часть – в R1, младшая в R1+1. Поскольку в модели ЭВМ имеется только два регистра, то в качестве R1 всегда должен указываться регистр rA, при этом первый сомножитель будет размещаться в регистре rB, а результат в паре регистров rA и rB. То есть rA*rB=A2 и результат находится в rB, а произведение rA*rA=B*A и результат в rB.

Умножение: MUM R,A или MUM R,D(B). Содержимое регистра R+1 умножается на содержимое ячейки памяти с адресом А или (В)+D, результат располагается в паре регистров.

Умножение непосредственное: MUI R,I. Содержимое регистра R+1 умножается на непосредственный операнд I, результат располагается в паре регистров.

Деление: DVM R,A или DVM R,D(B). Содержимое пары регистров – R и следующего за ним делится на содержимое ячейки памяти с адресом А или (В)+D, результат располагается в паре регистров: в R – остаток, в R+1 – частное. Поскольку в модели имеется всего два регистра, то в команде в качестве R всегда должен указываться регистр rA, при этом делимое будет в паре регистров rA и rB, частное в регистре rB, остаток в регистре rA. Операции производятся только с целыми числами и остаток отбрасывается.

Деление непосредственное: DVI R,I. Содержимое пары регистров делится на непосредственный операнд I.

Стоп: stop. Выполнение моделируемой программы прекращается.

Пример реализации программ по лабораторной работе

Рассмотрим реализацию программ на учебном ассемблере модели ЭВМ-2 для вычисления выражения Y:=(A/B - C*F)*E с использованием различных методов адресации.