Найти сумму на языке assembler
S=X^2+3X+5, при X от 0 до 20
Не могу правильно просуммировать { S=X^2+Х3+5 X=>0 to 20}
var
S: Word;
begin
Write ('найдем сумму выражения S=X^2+Х3+5 при х изменяющемся на интервале');
Writeln (' X=1 до 20');
asm
mov cx,20
mov dx,0
mov bx,0
@1:
add dl,1
mov al,dl
mul dl
mov bx,3
mul bx
add bx,1
add bx,ax
loop @1
mov s,bx
end;
Writeln ('S= ',S);
end.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну, раз вам нужна просто вставка... Главная ваша неприятность - что 20*20 уже выходит за рамки байта. Еще одна ошибка - у вас цикл при cx, равном 0, не отрабатывает. Дальше я просто не смотрел, набросал вам вставку - правда, я не знаю, как там на предмет вставок в pascal, но в С/С++ она честно отрабатывает:
int S = 0;
__asm {
mov ecx, 21
Loops:
dec ecx
mov eax,ecx
add eax,3
imul eax,ecx
add eax,5
add S,eax
cmp ecx,0
jne Loops
}