PDA

Просмотр полной версии : помогите простейшая программа на ассемблере


[FREE]
24.09.2009, 19:33
кто может помогите
Написать программу на Ассемблере для вычисления: P+(p+1)+(p+2)+…+(p+n)=(n+1)(2p+n)/2 (при заданном n=7,p=3)
Вычислить в цикле левую сумму. Убедиться в равенстве сторон. Вывести оба значения в разных регистрах (Значение по формуле – в bx, значение суммы - в di).

Hiro Protagonist
25.09.2009, 00:15
Как то так. Вывод сам сделаешь ибо я не знаю - тебе под дос или винду.


mov eax, 3
xor edx, edx
mov ecx, 7

@@head:

add edi, eax
add edi, edx
inc edx

loop @@head

mov eax, 7
inc eax
mov ebx, 3
shl ebx, 1
add ebx, 7
mul ebx
mov ebx, 2
div ebx
xchg ebx, eax

cmp ebx, edi
jz @@equal

@@noequal:

...

@@equal:

...