Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Команды условной передачи управления
Команды, расположенные друг за другом в памяти, машина считывает последовательно. При реализации алгоритма, требующего изменение естественной последовательности выполнения команд в зависимости от результата вычислений, используют команды условной передачи управления, т.е. «переход при условии…» по определенному адресу. Фактически, каждое условие является каким-либо состоянием флагов. Команды условной передачи управления: JZ, JNZ, JS, JNS, JO, JNO, JS – If Асc < 0 then PC ← CR[ADR]. Если результат операции меньше нуля (Асс < 0), т.е. в знаковом разряде единица, тогда адресная часть команды ADR заносится в регистр PC, тем самым осуществляется переход; JNS – If Асc > 0 then PC ← CR[ADR]. Переход, если результат операции больше нуля Асс > 0, т.е. в знаковом разряде ноль; JZ – If Асc = 0 then PC ← CR[ADR]. Переход, если результат операции равен нулю, Асс = 0; JNZ - If Асc ≠ 0 then PC ← CR[ADR]. Если результат операции не равен нулю, Асс ≠ 0; JO – If |Acc| ≥ 99999 then PC ← CR[ADR]. В данном случае, управление передается при условии переполнения разрядной сетки; JNO - If |Acc| ≤ 99999 then PC ← CR[ADR]. Переход, если нет переполнения разрядной сетки. Допустим, необходимо возвести в степень (2), положительное число х. Программа должна проверить знак числа х, а затем совершить переход в зависимости от полученного результата. Если число отрицательное, программа завершает работу. Если число положительное, программа должна возвести в степень число, выдать результат арифметической операции и завершить работу. Этот алгоритм можно реализовать с помощью команды JS, которая осуществляет переход, если результат отрицательный. Порядок выполнения работы:
Дана следующая функция:
Область допустимых значений:
Блок-схема:
Размещение данных в ОЗУ:
Пример вычисления функции:
Мнемокод программы: IN WR 030 SUB #1 JS 012 RD 030 SUB #051 JNS 20 RD 030 ADD #3 MUL 030 DIV 030 WR 031 JMP 22 RD 030 SUB #2 JS 20 RD 030 ADD #17 DIV #1 SUB 030 WR 032 JMP 22 OUT HLT Последовательность состояний регистра: IR = 000020 (20)
OR = 000040 (40) Результаты выполнения программы для нескольких значений аргумента
Вывод: согласно переходам JNS – Если Acc > 0 и JS – Если Acc < 0, были решены функции с областями допустимых значений функции Fi(x), Fj(x). Задание 4
Тема: «Программирование цикла»; Цель: изучение организации циклических программ с условной передачей управления; исследование порядка функционирования ЭВМ при выполнении команд условной передачи управления; Техническое обеспечение: персональный компьютер, программная модель учебной ЭВМ; Основные понятия: косвенная адресация, косвенно-регистровая адресация. Решение: Блок-схема алгоритма решения задачи: Распределение памяти:
Программа в форме таблицы:
Контрольные вопросы 1. Как работает механизм косвенной адресации? 2. Как работает механизм косвенно-регистровой адресации? 3 и 4 вопросы ссылаются на информацию, не приведённую в методическом пособии. Ответы на контрольные вопросы 1. Аргументом команды является не адрес ячейки содержаний операнд, а адрес ячейки, содержащей адрес с операндом. Таким образом, программа всегда ссылается на одну и ту же ячейку, но то какой операнд будет взят будет зависеть от значения ячейки, на которую ссылается команда. 2. Косвенно-регистровая адресация похожа на обычную косвенную. Только адрес с операндом хранится не в ОЗУ, а в регистрах общего назначения. Date: 2016-05-14; view: 1687; Нарушение авторских прав |