Программирование на Ассемблере


Директива WHILE


Общий вид директивы WHILE

WHILE (Выражение)

Команды

ENDM

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

Пример. Составить программу сложения чисел заданного массива, не используя команд перехода

ideal

p586

model flat

extrn ExitProcess:proc

dataseg

a       dd      1,2,3,4,5

s       dd      ?

codeseg

begin:

xor    eax, eax

xor   esi,esi

i=1

while i le 5

add   eax, [a + esi]

add   esi, 4



i =  i + 1

endm

mov     [s], eax

call ExitProcess

end begin



Содержание раздела