Главная /
Ассемблер /
Для чайников /
Введение в Ассемблер /
Циклы в ассемблере
Что такое цикл? Это последовательность одинаковых (точнее, похожих) операций. Подробнее о циклах можно узнать
здесь. А сейчас о том, как можно организовать цикл на языке ассемблера.
Для начала мы должны понимать, сколько раз будет выполнен цикл. Допустим, мы хотим возвести число в степень. Для этого нам надо умножить его на само себя заданное количество раз. Например, 2 в 5-й степени это:
2 * 2 * 2 * 2 * 2 = 32 = 20h
Чтобы в ассемблере возвести число в степень, мы можем просто в цикле умножить это число на само
себя заданное количество раз. Для этого в счётчик - в регистр CX нам надо записать это количество раз. Например, если мы хотим, чтобы цикл выполнился 5 раз, то в этот регистр надо записать число 5.
Однако в нашем примере, хотя мы и возводим число в 5-ю степень, цикл должен быть выполнен 4 раза. Почему? Просто посчитайте знаки * в примере выше. Их четыре. То есть нам надо будет выполнить 4 операции умножения, поэтому и количество выполнений цикла должно быть на единицу меньше, чем значение степени, в которую мы возводим число.
Ну а организовать цикл можно с помощью инструкции LOOP. Вот пример:
.model tiny
.code
ORG 100h
start:
MOV AL, 2 ; Число
MOV BL, 2 ; Множитель
MOV CX, 4 ; Степень минус 1
; Возводим число AL в степень (СХ+1)
power:
MUL BL
LOOP power
; Здесь AX = 20 = 32 = 2 в 5-й степени
RET
END start
В примере достаточно комментариев, поэтому пояснять что-то еще нет смысла. Если что-то ещё осталось непонятным, посмотрите видео:
На этом пока всё. Подключайтесь к группе Основы программирования в Телеграм, или к другим каналам (ссылки ниже), чтобы ничего не пропустить.