Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2012 КОНТРОЛЬНАЯ РАБОТА ПО АрхПК / ЛабораторныйПрактикумПоАрхПК для ЗО

.pdf
Скачиваний:
66
Добавлен:
29.05.2015
Размер:
1.18 Mб
Скачать

34

1) Исходя из допустимых пределов изменения аргумента функций (табл. 2.12) и значения параметра а для своего варианта задания (табл.2.13) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п.1 формуле, и недопустимые значения аргумента, рисунок 20.

Рисунок 20 – Область допустимых значений

2) Разработать блок-схему алгоритма решения задачи, рисунок 21. Рисунок 21 – Блок-схема алгоритма программы

35

3) Разработать программу вычисления и вывода значения функции.

Причем x вводится с устройства ввода IR, результат у выводится на OR. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.

В данной лабораторной работе используются двухсловные команды, с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда. Рисунок 2.6, формат 4,

Оценив размер программы примерно в 20 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде таблицы 7 .

Таблица 7 – Пример программы вычисления функции

Адрес

Команда

Комментарии

 

 

 

 

 

Мнемокод

Код

 

 

 

 

 

000

IN

010000

Ввод х

 

 

 

 

001

WR 030

220030

Запись х в ячейку М (30)

 

 

 

 

002

SUB #20

241020

Сравнение с нижней границей (х -20)

 

 

 

 

36

Продолжение таблицы 7

003

 

JS 012

130012

 

Переход, если разность отрицательна

 

 

 

 

 

 

004

 

RD 030

210030

 

Чтение ОЗУ

 

 

 

 

 

 

005

 

SUB #041

241041

 

Сравнение с верхней границей (х - 41)

 

 

 

 

 

 

006

 

JNS 20

140020

 

Переход, если разность положительна

 

 

 

 

 

 

007

 

RD 030

210030

 

Вычисление по первой формуле

 

 

 

 

 

 

008

 

MUL 030

250030

 

Умножение на содержимое ячейки (возведение х в

 

 

 

 

 

степень)

 

 

 

 

 

 

009

 

SUB #5

241005

 

Вычитаем 5

 

 

 

 

 

 

010

 

WR 031

220031

 

Запись в ячейку М (31)

 

 

 

 

 

 

011

 

JMP 22

100022

 

Переход на вывод результата

 

 

 

 

 

 

012

 

RD 030

210030

 

Чтение ОЗУ

 

 

 

 

 

 

013

 

SUB #5

241005

 

Сравнение с нижней границей (х - 5)

 

 

 

 

 

 

014

 

JS 20

130020

 

Переход к ячейке М (20)

 

 

 

 

 

 

015

 

RDI 002000

410000 002000

 

Вычисление по второй формуле

 

 

 

 

 

 

017

 

DIV 030

260030

 

Деление на содержимое ячейки 030

 

 

 

 

 

 

018

 

WR 032

220032

 

Запись результата в ячейку М (32)

 

 

 

 

 

 

019

 

JMP 22

100022

 

Переход на вывод результата

 

 

 

 

 

 

020

 

RDI 199999

410000 199999

 

Чтение ОЗУ (двухсловной команды, ячейки 015-016

 

 

 

 

 

)

 

 

 

 

 

 

022

 

OUT

020000

 

Вывод результата

 

 

 

 

 

 

023

 

HLT

090000

 

Стоп

 

 

 

 

 

 

 

4) Ассемблировать текст

программы, при необходимости исправить

синтаксические ошибки.

37

5) Отладить программу. Для этого:

а) записать в IR значение аргумента х > а (в области допустимых значений);

б) записать в PC стартовый адрес программы;

в) проверить правильность результата и адреса останова в автоматическом режиме. В случае наличия ошибки выполнить пп.5.г и 5.д; иначе перейти к п. 5.е;

г) записать в PC стартовый адрес программы;

д) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить пп. 5.a — 5.в;

е) записать в IR значение аргумента х < а (в области допустимых значений); выполнить пп. 5.б и 5.в;

ж) записать в IR недопустимое значение аргумента х и выполнить пп. 5.б и

5.в.

6)Для выбранного допустимого значения аргумента х наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл. 2.10 содержимое регистров ЭВМ перед выполнением каждой команды.

7)Записать изменения состояний регистров и содержимого ячеек памяти в режиме Шаг, для одного значения аргумента х = 20, таблица 8.

Таблица 8 Состояния регистров

РС

Асс

М(30)

М(31)

 

 

 

 

000

000000

000000

000000

 

 

 

 

001

000020

000000

000000

 

 

 

 

002

000020

000020

000000

 

 

 

 

003

000000

000020

000000

 

 

 

 

004

000000

000020

000000

 

 

 

 

005

000020

000020

000000

 

 

 

 

38

006

100021

000020

000000

 

 

 

 

007

100021

000020

000000

 

 

 

 

008

000020

000020

000000

 

 

 

 

009

000400

000020

000000

 

 

 

 

010

000395

000020

000000

 

 

 

 

011

000395

000020

000395

 

 

 

 

 

 

 

 

022

000395

000020

000395

 

 

 

 

023

000395

000020

000395

 

 

 

 

8) Записать результаты выполнения программы для нескольких значений аргумента, выбранных самостоятельно в форме таблицы 9.

Таблица 9 – Значения х, у

Входные данные (х)

Выходные данные (Y)

 

 

20

395

 

 

25

620

 

 

41

199999

 

 

4

199999

 

 

5

400

 

 

15

133

 

 

Дана функция:

По таблице 10 выбрать вариант задания. Например, первый вариант: значение Fi

= 2, что соответствует номеру 2 в таблице 11; значение Fj = 1, что соответствует

39

номеру 1 в таблице 2.13; a = 12. В данном случае, функция для первого варианта задании:

Таблица 10 – Варианты значения параметров i, j, a

Таблица 11 – Варианты заданий функции

40

Форма и содержание отчета

1)Титульный лист;

2)Формулировка варианта задания;

3)Область допустимых значений;

4)Блок-схема алгоритма решения задачи;

5)Размещение данных в ОЗУ (какие ячейки памяти используются для данных, программы, констант);

6)Программа в форме таблицы 2.9;

7)Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента в форме таблицы 2.10;

8)Результаты выполнения программы для нескольких значений аргумента, выбранных самостоятельно в форме таблицы 2.11.

Контрольные вопросы

1)Какие команды условной передачи управления вы знаете?

2)При каком условии передается управление каждой из команд?

3)Если условие выполняется, то какой адрес точки перехода будет по команде JZ 25?

Рекомендуемая литература

1.Майоров С.А, Кириллов В.А, Приблуда А.А. Введение в микроЭВМ. Л.: Машиностроение. Ленингр. отд-ние, 1988. – 304с.

2.Таненбаум Э. Т18 Архитектура компьютера. 5-е изд. — СПб.: Питер, 2007. — 844 с.

3.Преснухин Л.Н. Микропроцессоры: В 3 кн. Кн. 2: Средства сопряжения. Контролирующие и управляющие системы: Учеб.для техн. Вузов /В.Д. Вернер, Н.В. Воробьев, А.В. Горячев и др.; Под ред. Л.Н. Преснухина. –

Мн.: Выш.шк., 1987.-303 с.

41

Лабораторная работа № 4

Тема: программирование цикла;

Цель: изучение организации циклических программ с условной передачей управления; исследование порядка функционирования ЭВМ при выполнении команд условной передачи управления;

Техническое обеспечение: персональный компьютер, программная модель учебной ЭВМ;

Основные понятия: косвенная адресация, косвенно-регистровая адресация.

Общие положения

При решении задач, связанных с последовательной и однотипной обработкой элементов массива, имеет смысл хранить только адрес текущего обрабатываемого элемента массива, тем самым сокращая число команд программы. Эта задача решается путем использования косвенной или косвенно- регистровой адресации, рисунок 9, 10 (стр. 22-23). При этом необходимо организовать цикл в программе, с помощью условных команд ЭВМ.

Порядок выполнения работы

Задание. Написать программу определения заданной характеристики последовательности чисел: С1, С2, …, Сn. Варианты заданий приведены в таблице 13. Число элементов массива принять равным 10. При нахождении адресов элементов последовательности использовать косвенную или косвенно- регистровую адресацию.

Пример. Вычислить сумму элементов последовательности чисел С. 1. Для решения использовать промежуточные переменные:

Ai - адрес i-го элемента массива в ОЗУ, i изменяется от 1 до 10; S - текущая сумма;

42

k - счетчик циклов программы, определяющий число повторений тела

цикла.

2. Блок-схема алгоритма решения задачи, рисунок 22.

Рисунок 22 Блок-схема алгоритма

3.Распределение памяти:

программа размещается в ячейках ОЗУ, начиная с адреса 000000,

Ai (адрес элемента последовательности) - в ячейке ОЗУ с адресом 030, k (счётчик циклов) - по адресу 031,

S (сумма элементов последовательности) - по адресу 032.

43

4.Последовательность шагов, реализующих алгоритм программы:

а) занесение адреса первого элемента последовательности (А1=040) в ячейку ОЗУ с адресом 030

б) занесение значения счётчика цикла (k = 10) в ячейку ОЗУ с адресом 031 в) занесение начального значения суммы (S = 0) в ячейку ОЗУ с адресом 032 г) добавление к начальной сумме (значение ячейки 032) значения первого

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

д) получение адреса следующего элемента последовательности (значение ячейки 030 увеличивается на 1)

е) уменьшение значения счётчика цикла на 1 (ячейка ОЗУ с адресом 031) ж)- реализация цикла если значение счётчика цикла не равно 0, переход на

г), иначе команда СТОП.

Команда ADD @30 косвенно адресует ячейку памяти 030, которая содержит адрес массива 040, по этому адресу в памяти содержится операнд

(000001), рисунок 23.

Рисунок23 – Косвенно адресуемая ячейка памяти

Другой вариант программы - с косвенно-регистровой адресацией. В данном случае, адрес операнда хранится, например, в регистре R3, рисунок 24.