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

К изучению языка Ассемблер учащиеся подходят, как правило, имея начальные знания в области программирования. Поэтому им проще будет понять, как реализуются основные алгоритмические структуры в Ассемблере, если при изложении нового материала преподаватель будет проводить аналогию с изученным ими ранее языком программирования (например, Turbo Pascal).
Алгоритмическая структура “цикл”, как известно, обеспечивает выполнение некоторой последовательности действий, которая называется телом цикла.
Выделяется три типа циклов: цикл “ДЛЯ”, цикл “ПОКА”, цикл “ДО”. Друг от друга различные типы циклов отличаются в основном лишь способом проверки окончания цикла.
Рис. 1
В языке программирования Паскаль для реализации каждого типа цикла имеются специальные операторы, но любой из этих трех типов можно организовать при помощи условного оператора и оператора безусловного перехода.
Рис. 2
Рис. 3
Рис. 4
Система команд языка Ассемблер тоже позволяет организовать циклическое выполнение некоторого фрагмента программы, к примеру, используя команды условной передачи управления или команду безусловного перехода JMP.
Рис. 5
Рис. 6
Рис. 7
Как и в языке Паскаль, в Ассемблере существует специальная команда, которая позволяет сокращать листинг циклической программы.
Это команда LOOP .
Данная команда выполняет следующие функции:
- Автоматически уменьшает значение счетчика.
- Выполняет проверку на выход из цикла.
- Выполняет переход на начало тела цикла.
Команда 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