Конечно, вот пример программы на ассемблере FASM для расчета суммы квадратов первых n натуральных чисел:
Пожалуйста, замените значение переменной n на нужное количество натуральных чисел, для которых нужно посчитать сумму квадратов.
Конечно, вот пример программы на ассемблере FASM для расчета суммы квадратов первых n натуральных чисел:
format PE consoleentry start
include 'win32a.inc'
section '.data' data readable writeable
n dd 10
sum dd 0
i dd 1
section '.code' code readable executable
start:
mov ecx, [n] ; загружаем значение n в регистр ecx
mov eax, 0 ; очищаем регистр eax (сюда будем складывать квадраты)
loop_start:
mov ebx, [i] ; загружаем значение i в регистр ebx
imul ebx, ebx ; вычисляем квадрат числа i
add eax, ebx ; добавляем квадрат числа к общей сумме
inc dword [i] ; увеличиваем i на 1
loop loop_start
mov [sum], eax ; сохраняем общую сумму в памяти
cinvoke printf, sum_msg, [sum] ; выводим результат на экран
cinvoke ExitProcess, 0
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
msvcrt,'msvcrt.dll'
import kernel32,\
ExitProcess,'ExitProcess'
import msvcrt,\
printf,'printf'
section '.rdata' data readable
sum_msg db "Сумма квадратов первых %d натуральных чисел: %d", 13, 10, 0
section '.init' initializer readable
mov dword [i], 1 ; инициализируем переменные
mov dword [sum], 0
Пожалуйста, замените значение переменной n на нужное количество натуральных чисел, для которых нужно посчитать сумму квадратов.