Помогите с ассемблером в программе турбо паскаль буду очень благодарна
не могу правильно написать программу Задание:найти сумму массива
var
i:integer;
x:array[1..10] of integer;
begin
for i:=1 to 10 do
begin
x[i]:=trunc(201*random-100);
end;
for i:=1 to 10 do
begin
write(' ', x[i]);
write;
end;
asm
mov bx, offset x
mov ax, [bx]
@1
add bx, ax
loop @1
mov ax, bx
mov sum, ax
end;
end.
Ответы (1 шт):
Автор решения: santavital
→ Ссылка
Алгоритм работы команды LOOP:
CX = CX - 1
Если CX не равен 0, то выполнить переход
Иначе не выполнять переход, продолжить цикл
То есть команда LOOP выполняется в два этапа.
Сначала из регистра СХ вычитается единица и его значение сравнивается с нулём.
Если регистр не равен нулю, то выполняется переход к указанной МЕТКЕ.
Иначе переход не выполняется и управление передаётся команде, которая следует сразу после команды LOOP.