ЛАБОРАТОРНА РОБОТА №2. Лабораторна робота 2. Розгалуження в програмі і переадресація
Скачать 53.78 Kb.
|
Лабораторна робота №2. РОЗГАЛУЖЕННЯ В ПРОГРАМІ І ПЕРЕАДРЕСАЦІЯЦіль:Практична реалізація алгоритмів, шляхи у яких залежить від вихідних даних, з допомогою команд умовної передачі управління. Вирішення завдань, пов'язаних з обробкою масивів, застосуванням спеціальних видів адресації. ПРОГРАМУВАННЯ ПРОЦЕСУ, ЩО РозгалужуєтьсяприкладЯк приклад (дещо спрощеного порівняно із завданнями лабораторної роботи № 2) розглянемо програму обчислення функції, причому x вводиться з пристрою введення IR, результат виводиться на OR. Схема алгоритму розв'язання задачі показана малюнку 3.1. Малюнок 3.1- Схема алгоритму прикладу У даній лабораторній роботі використовуються двослівні команди з безпосередньою адресацією, що дозволяють оперувати негативними числами та числами за модулем, що перевищують 999, як безпосереднього операнда. Оцінивши розмір програми приблизно 20 - 25 команд, відведемо для області даних осередки ОЗУ, починаючи з адреси 030. Складена програма з коментарями представлено вигляді таблиці (таблиця 3.1). Таблиця 3.1 – Приклад програми
ЗавданняРозробити програму обчислення і виведення значення функції для аргументу х, що вводиться з IR значення аргументу. Функції та допустимі межі зміни аргументу наведені у таблиці 3.2, варіанти завдань у таблиці 3.3. Виходячи з допустимих меж зміни аргументу функцій (таблиця 3.2) і значення параметра а для свого варіанту завдання (таблиця 3.3) виділити на числовій осі Ох області, в яких функція обчислюється за представленою в п. 1 формулі, і неприпустимі значення аргументу. На неприпустимих значеннях аргументу програма має видавати на OR максимальне негативне число: 199999. Ввести текст програми у вікно Текст програми, при цьому можливе набір та редагування тексту безпосередньо у вікні Текст програми або завантаження тексту з файлу, підготовленого в іншому редакторі. Ассемблировать текст програми, у разі потреби виправити синтаксичні помилки. Налагодити програму. Для цього: записати в IR значення аргументу х> а (в області допустимих значень); записати в PC стартову адресу програми; перевірити правильність виконання програми (тобто правильність результату та адреси зупинки) в автоматичному режимі. У разі помилки виконати пп.5, гта 5, д; інакше перейти до п. 5, е; записати в PC стартову адресу програми; спостерігаючи виконання програми у режимі Крок, знайти команду, що є причиною помилки; виправити її; виконати пп. 5, а - 5, в; записати в IR значення аргументу х < а (в області допустимих значень); виконати пп. 5, б і 5,; записати в IR неприпустиме значення аргументу х та виконати пп. 5 б і 5 ст. Для обраного допустимого значення аргументу х спостерігати виконання налагодженої програми як Крок і записати у вигляді таблиці вміст регістрів ЕОМ перед виконанням кожної команди. Таблиця 3.2 – Функції
Таблиця 3.3 – Варіанти завдань
Зміст звітуФормулювання варіанта завдання. Граф-схема алгоритму розв'язання задачі. Розміщення даних у ОЗП. Програма у вигляді таблиці. Послідовність станів регістрів ЕОМ під час виконання програми як Крок одного значення аргумента. Результати виконання програми для кількох значень аргументу, вибраних самостійно. Контрольні питанняЯк працює механізм непрямої адресації? Яка комірка буде адресована в команді з непрямою адресацією через комірку 043, якщо вміст цієї комірки дорівнює 102347? Як працюють команди передачі? Що входить у поняття "налагодження програми"? Які способи налагодження програми можна реалізувати у моделі? ПРОГРАМУВАННЯ ЦИКЛУ З ПЕРЕАДРЕСАЦІЄЮприкладРозробити програму обчислення суми елементів масиву чисел Су, С2,.., Сn. Вихідними даними в цьому завданні є: п - кількість підсумованих чисел і Су, С2, …, Сп - масив підсумованих чисел. Зауважимо, що має виконуватися умова п > 1, тому що алгоритм передбачає принаймні одне підсумовування. Крім того, передбачається, що сумовані числа записані в ОЗУ поспіль, тобто в осередки пам'яті з послідовними адресами. Результатом є сума S. Складемо програму для обчислення суми з наступними конкретними параметрами: число елементів масиву-10, елементи масиву розташовані в осередках ОЗП за адресами 040, 041, 042,..., 049. Проміжні змінні, що використовуються для вирішення завдання, мають наступний зміст: Ai - адреса числа Сi,i є {l, 2,..., 10}; ОЗУ(Аi) – число за адресою Аi, S – поточна сума; k – лічильник циклу, що визначає число повторень тіла циклу. Розподіл пам'яті такий. Програму розмістимо у осередках ОЗУ, починаючи з адреси 000, приблизна оцінка обсягу програми - 20 команд; проміжні змінні: Аi - в осередку ОЗУ з адресою 030, k - за адресою 031, S - за адресою 032. Схема алгоритму програми показано на малюнку 3.2, текст програми з коментарями наведено в таблиці 3.4. Малюнок 3.2- Схема алгоритму для прикладу Таблиця 3.4 - Текст програми прикладу
ЗавданняНаписати програму визначення заданої характеристики послідовності чисел С1, С2,.., Сп. Варіанти завдань наведено у таблиці 3.5. Записати програму в мнемокодах, ввівши її у полі вікна Текст програми. Зберегти набрану програму у вигляді текстового файлу та провести асемблювання мнемокодів. Завантажити в ОЗУ необхідні константи та вихідні дані. Налагодити програму Таблиця 3.5 - Завдання за варіантами
Зміст звітуФормулювання варіанта завдання. Граф-схема алгоритму розв'язання задачі. Розподіл пам'яті (розміщення в ОЗУ змінних, програми та необхідних констант). програма. Значення вихідних даних та результату виконання програми. Контрольні питанняЯк організувати цикл у програмі? Що таке параметр циклу? Як поведеться програма, наведена в табл. 2.7, якщо в ній буде відсутня команда wr 31 на адресу 014? Як поведеться програма, наведена в табл. 2.7, якщо мітка m1 буде поставлена на адресу 005? 007? |