Студопедия
МОТОСАФАРИ и МОТОТУРЫ АФРИКА !!!

Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

КОМАНДА LOOP ПЕРЕХОД ПО СЧЕТЧИКУ




LOOP короткая_метка

Логика работы команды

<CX>= Число повторения циклов

label: Тело цикла

...

<CX>=<CX>-1

if(<CX><>0) goto label

Реализация цикла без команды LOOP

mov cx, количество циклов

label:

........

DEC cx

CMP CX,0

JNE label

Передачу управления на короткую метку для базовых процессоров является обязательным. Поскольку условие выхода из цикла проверяется в его конце при значении счетчика = 0 цикл все равно выполнится, ТАКЖЕ ПРОИЗОЙДЕТ ЗАЦИКЛИВАНИЕ. Что бы избежать зацикливание содержимое <cx> проверяется до начала цикла. По-этому стандартная последовательность команд для организации цикла с счетчиком имеет вид:

mov cx,counter

JCXZ Exit ;если <cx>=0 обойти цикл

label

.....

.....

loop label

ПРИМЕР:

Вычислить значение факториала числа

locals @@ - директива позволяет не думать о дублировании имен меток в разных программах. Метки с префиксов @@ считаются локальными. Если компилятор встречает метку с таким же именем при компиляции изменяется имя метки.

.model LARGE, C

Locals @@

.code

Extrn C n:word, p:word

Public C FACTORIAL

FACTORIAL proc far

mov cx,n

mov si,1 ;регистр индекса источника

mov ax,si

JCXZ @@Exit

@@begin:

mul si ;<dx;ax>=<ax><si>

inc si

loop @@begin

@@Exit

mov, p

FUCTORIAL endp

end

Д/З Написать программу вычисления факториала на C++

КОМАНДА LOOPe(LOOPz)

команда имеет 2 равнозначных имени

LOOPe - если равно

LOOPe - если ноль

Логика работы

<cx>=counter

label:

...

<cx>=<cx>-1

if(<cx><>0) and ZF=1

Данная команда применяется если нужно досрочно выйти из цикла как только находится первый элемент отличный от заданной величины. Антиподом этих команд есть:

LOOPne(LOOPnz)

В отличии от LOOPe(LOOPz) ZF проверяется на 0

<cx>=counter

label:

......

<cx>=<cx-1>

if(<cx><>0) and ZF=0 goto label

Эта команда выходит из цикла как только находится первый элемент равный заданной величине.

Пример:

Вычислить значение суммы чисел натурального ряда от 1 до n вычисления закончить как только сумма станет равной некоторому к или будут перебраны все n чисел

; SUM.ASM

;s=1+2+3+...+n

;выход если s>=k

.model LARGE,C

Local @@

Extrn C n:word, s:word, k:word

Public SUM

SUM proc far

mov cx,n

xor ax, ax

xor si, si

jcxz Exit

@@begin:

inc si

add ax, si

cmp ax, k ;если <ax>-k==0 то ZF=1

loopne @begin

@@Exit

mov s,ax

ret

SUM endp

end

д/з С++ вычисление суммы чисел натурального ряда с асм модулем





Дата добавления: 2015-04-20; просмотров: 298; Опубликованный материал нарушает авторские права? | Защита персональных данных


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

Лучшие изречения: Сдача сессии и защита диплома - страшная бессонница, которая потом кажется страшным сном. 9235 - | 7440 - или читать все...

Читайте также:

  1. A) часть его интерфейса, обеспечивающая переход к выполнению различных операций над текстом
  2. B. Переход от одной стадии к другой
  3. VII. абсолютный возраст (кол-во лет, возраст мужчины) перехода на УФР (2-3 сношения в неделю),
  4. XV. ПЕРЕХОДЯ К СУТИ ДЕЛА
  5. Адаптивная модель переходной экономики
  6. Алгоритмическая структура «ветвление». Команда ветвления. Примеры полного и неполного ветвления.
  7. Билет 16. Вопрос 1. Переход от политики «военного коммунизма» к новой экономической политике: причины введения, основные мероприятия и результаты нэпа.
  8. Билет 17 Классификация информационных систем по количеству ЭВМ. Факторы перехода к многомашинным информационным системам.
  9. В третьих, выход из кризиса и переход от экспортно-сырьевого к инновационному типу экономического роста связаны прежде всего с развитием человеческого потенциала.
  10. Вознесение, или переход 4.2-4.3.
  11. Вопрос 1.Сущность переходных процессов
  12. Вопрос 2. Основные закономерности переходных процессов


 

3.233.239.102 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.001 сек.