Вот пример цикла ассемблера в MASM (Microsoft Macro Assembler):
.model small
.stack 100h
.data
count dw 10
message db "Loop example", 0
.code
main proc
mov ax, @data
mov ds, ax
mov cx, count
mov ah, 9
mov dx, offset message
L1:
int 21h
loop L1
mov ah, 4Ch
int 21h
main endp
end main
В этом примере мы определяем цикл, который будет выполняться 10 раз. Внутри цикла программа использует прерывание DOS 21h с кодом функции 9 для отображения сообщения на экране. Цикл продолжается до тех пор, пока регистр CX не станет нулевым, что достигается с помощью инструкции loop. Наконец, программа завершается с использованием прерывания DOS 21h с кодом функции 4Ch.
Вот несколько методов, которые можно использовать для создания цикла ассемблера в MASM:
- Используйте инструкцию
loop, чтобы уменьшить счетчик цикла и вернуться к метке цикла. - Используйте инструкцию
jmp, чтобы вернуться к метке цикла и вручную уменьшить счетчик цикла. - Используйте условные переходы (
je,jne,jg,jlи т. д.) для управления потоком выполнения внутри цикла.