The purpose of the code is to sum all numbers from [0, 1000) that are divisible by 3 or 5.
The code can be run using make RUN=euler_1.
extern printf global main section .data fmt: db "%d", 0x0a, 0 section .text ;; main - Calculate the sum of all numbers between [0, 1000) that are divisible ;; by 3 or 5. ;; sum : R8 main: ; sum = 0 mov r8, 0 ; for i in [0, 1000) { mov rcx, 0 for0: ; if i % 3 == 0 or i % 5 == 0 { ; i % 3 == 0 mov rax, rcx mov rdx, 0 mov r9, 3 div r9 test rdx, rdx jne if01 ; sum = sum + i add r8, rcx jmp if0 if01: ; i % 5 == 0 mov rax, rcx mov rdx, 0 mov r9, 5 div r9 test rdx, rdx jne if0 ; sum = sum + i add r8, rcx jmp if0 ; } if0: inc rcx cmp rcx, 1000 jl for0 ; } ; printf("%d", sum) lea rdi, [rel fmt] mov rsi, r8 mov rax, 0 call printf ; sys_exit(0) mov rdi, 0 mov rax, 60 syscall