Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Лабораторная работа №3. Для организации циклов с известным числом повторений используется команда loop или ее модификации




Организация циклов.

Для организации циклов с известным числом повторений используется команда loop или ее модификации. Область дей­ствия команды и ее модификаций такая же, как у команд условного перехода (-128..127).

Циклический участок программы обычно имеет следующую структуру:

mov сx, число повторений { Инициализация цикла}

Jcxz метка_после_цикла

метка:

............. {тело цикла}

Loop метка

метка_после_цикла:

Команда jcxz означает переход при сх=0, т.е. цикл не нужно выполнять ни разу. Напоминаем, что по команде loop содержимое сх уменьшается на 1 и, если сх<>0, то переход к метке, заданной в команде loop, в противном случае — выход из цикла.

Если выход из цикла определяется не только числом повто­рений, вместо команды loop можно использовать ее разновид­ности

{ loope } повтор цикла, если счетчик не исчерпан и флаг

{ loopz } нуля установлен

{ loopne } повтор цикла, если счетчик не исчерпан и флаг

{ loopnz } нуля не установлен

ПРИМЕР: Найти сумму S=1+2+3+4+…+n.

Var

s,n:integer;

Begin

Read(n);

Asm

Mov cx,n

Mov ax,0

jcxz @end

@for:

Add ax,cx

loop @for

@end: mov s,ax

End;

writeln('s=',s);

Readln;

Readln;

End.

Та же программа с использованием для организации цикла «прыжков».

Var

s,n:integer;

Begin

Read(n);

Asm

Mov cx,n

Mov ax,0

@for: jcxz @end

Add ax,cx

Dec cx

jmp @for

@end: mov s,ax

End;

writeln('s=',s);

Readln;

Readln;

End.

Пример2. 1. Дано натуральное n. Написать программу вычисления x в степени n.

Var

x,n:integer;

Begin

Read(x,n);

Asm

Mov cx,n

Mov ax,1

jcxz @end

@for:

Imul x

loop @for

@end: mov x,ax

End;

writeln('s=',x);

Readln;

Readln;

End.

Задание. Написать программу на языке Паскаль с использованием Ассемблерной вставки для произведения вычислений.

1. Найти сумму: S=1+2 +3 +4 +…+n

2. Вычислить произведение: S=(n-1)(n-2)(n-3)…(n-(n-1)).

3. Дано целое число n. Найти сумму цифр числа n.

4. Дано целое n. Сколько цифр в числе n?

5. Наитии наибольший делитель числа x не считая само число.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных