Языка Паскаль 1 Имеются Языки


Алгоритмическая структура "Цикл" в языке Ассемблер
Ноябрь 13, 2016 – 06:50
2 Циклический

К изучению языка Ассемблер учащиеся подходят, как правило, имея начальные знания в области программирования. Поэтому им проще будет понять, как реализуются основные алгоритмические структуры в Ассемблере, если при изложении нового материала преподаватель будет проводить аналогию с изученным ими ранее языком программирования (например, Turbo Pascal).

Алгоритмическая структура “цикл”, как известно, обеспечивает выполнение некоторой последовательности действий, которая называется телом цикла.

Выделяется три типа циклов: цикл “ДЛЯ”, цикл “ПОКА”, цикл “ДО”. Друг от друга различные типы циклов отличаются в основном лишь способом проверки окончания цикла.

Рис. 1

В языке программирования Паскаль для реализации каждого типа цикла имеются специальные операторы, но любой из этих трех типов можно организовать при помощи условного оператора и оператора безусловного перехода.

Рис. 2

Рис. 3

Рис. 4

Система команд языка Ассемблер тоже позволяет организовать циклическое выполнение некоторого фрагмента программы, к примеру, используя команды условной передачи управления или команду безусловного перехода JMP.

Рис. 5

Рис. 6

Рис. 7

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

Это команда LOOP .

Данная команда выполняет следующие функции:

  1. Автоматически уменьшает значение счетчика.
  2. Выполняет проверку на выход из цикла.
  3. Выполняет переход на начало тела цикла.

Команда LOOP может быть использована лишь в случае цикла с известным числом повторений, т.е. цикла “ДЛЯ”. Количество повторений цикла должно быть присвоено регистру СХ до начала цикла.

Рис. 8

Таким образом, команда LOOP заменила тройку команд:

Рассмотрим использование этой команды на практике.

Пример: Составим программу, которая выводит на экран 1000 нулей.

(1) prg segment para public 'code'
(2) assume cs:prg, ss:prg, es:prg, ds:prg
(3) org 100h
(4) start: jmp go
(5) go:
(6) mov ax, 0600h
(7) mov bh, 07
(8) mov cx, 0000
(9) mov dx, 184fh
(10) mov cx, 1000
(11) Zero:
(12) mov ah, 02
(13) mov dl, 30h

Source: festival.1september.ru
Похожие публикации