In order to practice x86 Assembly (NASM especifically) I am solving some problems on Project Euler with it. Here’s problem 5:
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
And the solution:
.text .globl main main: pushl %ebp movl %esp, %ebp movl $50, %ecx loop: movl $2, %esi divisionLoop: cmp $21, %esi je found movl $0, %edx movl %ecx, %eax idiv %esi cmp $0, %edx je noRemainder add $1, %ecx jmp loop noRemainder: add $1, %esi jmp divisionLoop found: pushl %ecx pushl $string2 call printf movl %ebp, %esp popl %ebp movl $0, %eax ret .data string2: .string "result=%dn"