Данная лабораторная работа предполагает выполнение следующих этапов:
1) Разработать программу вычисления и вывода значения функции:
для вводимого из IR значения аргумента х. Функции и допустимые значения аргумента приведены в табл. 3.4, варианты заданий – в табл. 3.5
2) Исходя из допустимых пределов изменения аргумента функций (табл. 3.4) и значения параметра а для своего варианта задания (табл. 3.5) выделить на числовой оси Ох области, в которых функция вычисляется по представленной в п. 1 формуле, и недопустимые значения аргумента. На недопустимые значения аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.
3) Ввести текст программы в окно Текст программы, при этом возможен набор и редактирование текста непосредственно в окне Текст программы или загрузка текста из файла, подготовленного в другом редакторе.
4) Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
5) Отладить программу. Для этого:
а) записать в IR значение аргумента х > а (в области допустимых значений);
б) записать в РС стартовый адрес программы;
в) проверить правильность выполнения программы (т. е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить пп. 5, г и 5, д; иначе перейти к п. 5, е;
г) записать в РС стартовый адрес программы;
д) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить пп. 5, а – 5, в;
е) записать в IR значение аргумента х < а (в области допустимых значений); выполнить пп. 5, б и 5, в;
ж) записать в IR недопустимое значение аргумента х и выполнить пп. 5, б и 5, в.
6) Для выбранного допустимого значения аргумента х наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл. 3.3 содержимое регистров ЭВМ перед выполнением каждой команды.
Варианты заданий
Таблица 3.4.
Функции и область изменения их аргументов
k | F k (x) | k | F k (x) |
1 | 2 ≤ x ≤ 12 | 5 | 50 ≤ x ≤ 75 |
2 | 1 ≤ x ≤ 50 | 6 | 1 ≤ x ≤ 30 |
3 | – 50 ≤ x ≤ – 15 | 7 | – 50 ≤ x ≤ 50 |
4 | – 20 ≤ x ≤ 20 | 8 | 1 ≤ x ≤ 90 |
Таблица 3.5.
Варианты заданий
Номер варианта | i | j | A | Номер варианта | i | j | a |
1 | 2 | 1 | 12 | 8 | 8 | 6 | 30 |
2 | 4 | 3 | 20 | 9 | 2 | 6 | 25 |
3 | 8 | 4 | 15 | 10 | 5 | 7 | 50 |
4 | 6 | 1 | 12 | 11 | 2 | 4 | 18 |
5 | 5 | 2 | 50 | 12 | 8 | 1 | 12 |
6 | 7 | 3 | 15 | 13 | 7 | 6 | 25 |
7 | 6 | 2 | 11 | 14 | 1 | 4 | 5 |
Пример выполнения работы
В качестве примера рассмотрим программу вычисления функции
причем х вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на
рис. 3.1.
Рис. 3.1. Граф-схема алгоритма
Оценив размер программы примерно в 20 – 25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 3.6
Таблица 3.6.
Пример программы
Адрес | Команда | Примечание | |
Мнемокод | Код | ||
000 | IN | 01 0 000 | Ввод х |
001 | WR 30 | 22 0 030 | Размещение х в ОЗУ (030) |
002 | SUB #16 | 24 1 016 | Сравнение с границей (х – 16) |
003 | JS 010 | 13 0 010 | Переход по отрицательной разности |
004 | RD 30 | 21 0 030 | Вычисление по первой формуле |
005 | SUB #11 | 24 0 011 | |
006 | WR 31 | 22 0 031 | |
007 | MUL 31 | 25 0 031 | |
008 | SUB #125 | 24 1 125 | |
009 | JMP 020 | 10 0 020 | |
010 | RD 30 | 21 0 030 | Вычисление по второй формуле |
011 | MUL 30 | 25 0 030 | |
012 | WR 31 | 22 0 031 | |
013 | RD 30 | 21 0 031 | |
014 | MUL #72 | 25 1 072 | |
015 | ADD 31 | 23 0 031 | |
016 | ADI 106400 | 43 0 000 | |
017 | 106400 | ||
018 | DIVI 100168 | 46 0 000 | |
019 | 100168 | ||
020 | OUT | 02 0 000 | Вывод результата |
021 | HLT | 09 0 000 | Стоп |
В данной программе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающими 999, в качестве непосредственного операнда.
Содержание отчета
Отчет по лабораторной работе должен содержать следующие разделы:
1) формулировка варианта задания;
2) граф-схема алгоритма решения задачи;
3) программа в форме табл. 3.6;
4) последовательность состояний регистров ЭВМ при выполнении программы в режиме шаг для одного значения аргумента;
5) результаты выполнения программы для нескольких значений аргумента, выбранных самостоятельно
Контрольные вопросы
1. Какие команды называют командами передачи управления и как они работают?
2. Какие из команд программной модели ЭВМ относятся к командам условного перехода?
3. Что называют непосредственной адресацией и каковы ее достоинства и недостатки?
4. Каковы ограничения, накладываемые на использование прямой адресации?
5. Как, используя систему команд модели учебной ЭВМ, произвести сравнение двух чисел?
6. С какими операндами позволяют работать арифметические команды ADI, SBI, MULI, DIVI?
3.3. Лабораторная работа № 3.
Программирование цикла с переадресацией
Цель работы
Цель работы – ознакомление с использованием косвенной адресации для реализации повторных вычислений.
Общие положения
При решении задач, связанных с обработкой массивов, возникает необходимость изменения исполнительного адреса при повторном выполнении некоторых команд. Эта задача может быть решена путем использования косвенной адресации.
При косвенной адресации с помощью ограниченного адресного поля команды указывается адрес ячейки, содержащей полноразрядный адрес операнда. Главным достоинством косвенной адресации является возможность проводить вычисления, когда адреса операндов заранее неизвестны и появляются лишь в процессе решения задачи. Эта особенность обусловлена возможностью менять исполнительный адрес операнда (Аисп) при неизменном адресном поле команды (Ак) (рис. 3.2). Такой прием упрощает обработку массивов и передачу параметров подпрограммам.
Рис. 3.2. Схема косвенной адресации
Недостатками косвенной адресации являются:
1) потеря времени на двойное обращение к памяти – сначала за адресом, потом – за операндом.
2) использование лишней ячейки памяти для хранения исполнительного адреса операнда.
Разновидностью косвенной адресации является косвенная регистровая адресация, отличие которой от косвенной состоит в том, что исполнительный адрес операнда хранится не в ячейке оперативной памяти, а в одном из регистров общего назначения.
Достоинства и ограничения косвенной регистровой адресации те же, что и у обычной косвенной регистрации, но благодаря тому, что косвенный адрес хранится не в памяти, а в регистре, для доступа к операнду требуется на одно обращение к памяти меньше.