- •Вопрос 5. Передача параметров в подпрограмму, параметры входные и выходные, параметры, передаваемые по значению и по адресу.
- •Вопрос 6.Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.
- •Вопрос 10. Использование динамических переменных для представления и работы со стеком.
- •Вопрос 11. Очередь, реализация очереди массивом.
- •Вопрос 12. Очередь, представление и реализация основных операция с помощью динамических переменных.
- •Вопрос 13. Основные операции со списком: добавление, удаление, поиск.
- •Вопрос 14. Деревья, основные операции над деревьями
- •Вопрос 15. Двусвязные линейные списки, построение и обход бинарного дерева
- •Вопрос 16. Операция поиска(?) и удаления в бинарном дереве
- •Вопрос 17. Понятие графа, представление графа в эвм
- •Вопрос 18. Представление графа списком инцидентности, алгоритм обхода графа в глубину
- •Вопрос 19. Представление графа списком списков, алгоритм обхода графа в ширину
- •Вопрос 34. Регистр флажков, его назначение и использование
- •Вопрос 44. Команды условной передачи управления
- •Вопрос 45. Команды для организации циклов
- •Вопрос 46. Статическая и динамическая структура программы. Спецификация программы
- •Вопрос 47. Правила вывода, правила консеквенции.
- •Вопрос 48. Правила вывода для операторов простого, составного, условного.
- •Вопрос 49. Правила вывода для операторов цикла.
Вопрос 44. Команды условной передачи управления
Команды условной передачи управления можно разделить на 3
группы:
команды, используемые после команд сравнения
команды, используемые после команд, отличных от команд
сравнения, но реагирующие на значения флагов
JZ/JNZ
JC/JNC
JO/JNO
JS/JNS
JP/JNP
команды, реагирующие на значение регистра CX
В общем виде команду условной передачи управления можно
записать так: Jx <метка>
Здесь х – это одна, две, или три буквы, которые определяют условия
передачи управления. Метка, указанная в поле операнда, должна отстоять от команды не далее чем
-128 ÷ +127 байт.
Примеры:
JEM1 ; передача управления на команду с меткой М1, еслиZF= 1
JNEM2 ; передача управления на команду с меткой М2, еслиZF= 0
JCM3 ; передача управления на команду с меткой М3, еслиCF= 1
JNCM4 ; передача управления на команду с меткой М4, еслиCF= 0
ADD AX, BX
JC M
если в результате сложения CF= 1, то управление передается на
команду с меткой М, иначе – на команду, следующую за JC
SUB AX, BX
JZ Met
если результатом вычитания будет 0, то ZF= 1 и управление
передается на команду с меткой Мet.
Часто команды передачи управления используются после команд сравнения <метка> CMP OP1, OP2
По этой команде выполняется (OP1) – (OP2) и результат никуда не посылается, формируются только флаги.
Вопрос 45. Команды для организации циклов
loop <метка>
2) loope < метка > loopz < метка >
3) Loopne < метка > loopnz < метка >
По команде в форме 1): (CX) = (CX) – 1 и если (CX) < > 0, <метка>
По 2): (CX) = (CX) – 1 и если (CX) < > 0 и одновр-но ZF =1, <метка>
Цикл завершается, если или (CX) = 0 или ZF=0 или (CX)=(ZF)=0
По 3): (CX) = (CX) – 1 и если (CX) < > 0 и одновр-но ZF=0, <метка>
Выход из цикла осуществляется, если или (CX) = 0 или ZF=1 или одновременно (CX) = 0 и (ZF) = 1.
Примеры:
2)