Практическая работа № 3. Команды управления и ветвления

Цель работы:

1. Изучение команд управления ходом вычислений для модельной ЭВМ.

2. Разработка программы реализующей ветвящийся вычислительный процесс на модели учебной ЭВМ.

Теоретические сведения:

Команды управления модельной ЭВМ

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

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

- команды вызова подпрограмм (процедур);

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

1. Команды передачи управления;

Различают два вида переходов в программах:

- безусловный переход;

- условный переход.

В последнем случае передача управления происходит, если выполняется заданное в коде команды условие, иначе выполняется следующая по порядку команда.

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

- нулевого результата;

- отрицательного;

- результата;

- наличия переноса из старшего разряда;

- четности числа единиц в результате и др.

Различают три разновидности команд передачи управления:

- переходы;

- вызовы подпрограмм;

- возвраты из подпрограмм.

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

2. Команда вызова подпрограмм работает подобно команде безусловного перехода, но старое значение программного счетчика предварительно сохраняется в специальном регистре или в стеке. Команда возврата передает содержимое верхушки стека или специального регистра в программный счетчик. Команды вызова и возврата работают "в паре". Подпрограмма, вызываемая командой вызова, должна заканчиваться командой возврата, что обеспечивает по окончании работы подпрограммы передачу управления в точку вызова. Хранение адресов возврата в стеке обеспечивает возможность реализации вложенных подпрограмм.

3. Системные— команды, выполняющие управление процессом обработки информации и внутренними ресурсами процессора. К таким командам относятся:

- команды управления подсистемой прерывания;

- команда загрузки PSW – Program Status Word (слово состояния программы);

- команды установки флагов в регистре состояния процессора;

- команды установки и изменения параметров защиты памяти;

- команда останова программы;

- и некоторые другие команды, например команда диагностики работы.

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

Задания для выполнения:

1. Ознакомиться с теоретическими сведениями о командах управления модельной ЭВМ.

2. Запустите программу CompModel.exe.

3. Выполнить пример. В качестве примера рассмотрим программу вычисления функции:

Практическая работа № 3. Команды управления и ветвления - student2.ru

Причем х вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рис.1.

Практическая работа № 3. Команды управления и ветвления - student2.ru

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

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

Таблица 1.Пример программы

Адрес Команда Примечание
    Мнемокод Код    
IN 010 000 Ввод х
WR 30 22 0 030 Размещение x в ОЗУ(ОЗО)
SUB #16 24 1016 Сравнение с границей — (х -16)
JS 010 Переход по отрицательной разности
RD 30 210 030 Вычисления по первой формуле
SUB #11 24 1 011  
WR 31 22 0 031  
MUL 31 25 0 031  
SUB #125 24 1 125  
JMP 020 10 0 020 Переход на вывод результата
RD 30 21 0 030 Вычисления по второй формуле
MUL 30 25 0 030  
WR 31 22 0 031  
RD 30 210 030  
MUL #72 25 1 072  
ADD 31 23 0 031  
ADI 106400 43 0 000  
   
DIVI 100168 46 0 000  
   
OUT 02 0 000 Вывод результата
HLT 09 0 000 Стоп

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

Практическая работа № 3. Команды управления и ветвления - student2.ru

4.1 Для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 2, варианты заданий — в табл. 3.

4.2. Исходя из допустимых пределов изменения аргумента функций (табл. 2) и значения параметра а для своего варианта задания (табл. 3) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п. 1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.

4.3. Ввести текст программы в окно Текст программы,при этом возможен набор и редактирование текста непосредственно в окне Текст программыили загрузка текста из файла, подготовленного в другом редакторе.

4.4. Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.

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

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

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

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

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

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

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

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

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

Таблица 2. Функции

Практическая работа № 3. Команды управления и ветвления - student2.ru

Таблица 3. Варианты задания

  Номер варианта i j а
-20

Таблица 4. Результаты выполнения программы

PC Асс М(хх) М(нн) PC Асс М(мм) М(оо)
             
             
             
             

Содержание отчета

Отчет о практическая работе должен содержать следующие разделы:

1. Формулировка варианта задания.

2. Граф-схема алгоритма решения задачи.

3. Размещение данных в ОЗУ.

4. Программа в форме табл. 1.

5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.

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

Наши рекомендации