Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №4.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
163 Кб
Скачать
☆

Реализация управляющих структур высокого уровня

К управляющим структурам высокого уровня относят:

  • оператор ветвления { if-then-else };

  • цикл с известным числом шагов {for};

  • цикл с предусловием {while};

  • цикл с постусловием {do-until};

  • оператор выбора {case}.

Рассмотри примеры организации некоторых управляющих структур высокого уровня.

1. Конструкция if-then-else:

MOV reg, var1

CMP reg,var2

Jcc then ; проверка условия

JMP else

then: ; ветвь then

{команды выполняемые если условие истинно}

JMP end_if

else: ; ветвь else

{ команды выполняемые если условие ложно }

end_if:

2. Конструкция for

MOV cx,число_шагов

cycle:

{тело цикла}

LOOP cycle ; уменьшить число шагов на 1 и если не ноль процесс повтори

3. Конструкция while

MOV ax,var1

while:

CMP ax,var2

Jcc begin ; условие входа в цикл

JMP end_while ; выход, если условие входа в цикл ложно

begin:

{тело цикла}

JMP while ; проверить условие для продолжения цикла

end_while:

4. Конструкция do-until

do:

{тело цикла}

CMP ax,var2

Jcc do ; условие повторения тела цикла

5. Конструкция case

case:

CMP ax,var_1

JE action_1 ; перейти к действиям если совпало со значением var_1

CMP ax,var_2

JE action_2 ; перейти к действиям если совпало со значением var_2

. . . . . . . . . . . . .

CMP ax,var_n

JE action_n ; перейти к действиям если совпало со значением var_n

JMP else ; перейти к действиям в остальных случаях

action_1:

{действие1}

JMP end_case

action_2:

{действие2}

JMP end_case

. . . . . . . . . . . . .

action_n:

{действие1}

JMP end_case

else:

{действие в остальных случаях}

end_case:

В примерах проверяемое условие было получено путем сравнения, но может быть проверяемое условие и по результатам логических операций (например проверка бита(ов) с помощью команды TEST) или как результат последовательности арифметических операций. Так же в примерах считалось, что проверяемые условия простые. Но условия могут быть и составными, например несколько простых условий объединены логическими операциями (И, ИЛИ). Следует помнить, что результат составного условия, полученного путем объединения простых условий операцией «И» - ложь, если хотя бы одно из простых условий ложно, а результат составного условия, полученного путем объединения простых условий операцией «ИЛИ» - истинно, если хотя бы одно из простых условий истинно.

2. Задание для домашней подготовки.

  1. Повторить команды условных и безусловных переходов микропроцессора і8086;

  2. Повторить назначение флагов регистра флагов микропроцессора і8086;

  3. Повторить адресацию операндов в командах микропроцессора і8086;

  4. Повторить типы данных для микропроцессора і8086;

3. Порядок выполнения работы.

  1. Ознакомиться с заданием и проанализировать его.

  2. Составить алгоритм решения поставленной задачи.

  3. Составить программу согласно заданию в кодах.

  4. Набрать текст составленной программы в текстовом редакторе отладчика.

  5. Выполнить трансляцию программы (в случае возникновения ошибок исправить их).

  6. Сделать пошаговое выполнение программы и убедиться в правильности ее работы (в случае неправильности внести исправления в алгоритм и текст программы и повторить п.5-6)