This repository has been archived on 2026-07-28. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2026-07-28 10:06:51 +03:00

64 lines
1.1 KiB
NASM
Executable File

%define SUCCESS 0
%define MIN_MAX_NUMBER 3
%define MAX_MAX_NUMBER 4294967294
global _main
extern _printf
extern _scanf
extern _malloc
extern _free
SECTION .text
_main:
enter 0, 0
;ââîä ìàêñèìàëüíîãî ÷èñëà
call input_max_number
cmp edx, SUCCESS
jne .custom_exit
mov [max_number], eax
;âûäåëÿåì ïàìÿòü äëÿ ìàññèâà ôëàãîâ
mov eax, [max_number]
call allocate_flags_memory
cmp edx, SUCCESS
jne .custom_exit
mov [primes_pointer], eax
;îòñåÿòü ñîñòàâíûå ÷èñëà
mov eax, [primes_pointer]
mov ebx, [max_number]
call find_primes_with_eratosthenes_sieve
;âûâåñòè ÷èñëà
mov eax, [primes_pointer]
mov ebx, [max_number]
call print_primes
;îñâîáîäèòü ïàìÿòü îò ìàññèâà ôëàãîâ
mov eax, [primes_pointer]
call free_flags_memory
;âûõîä
.success:
push str_exit_success
call _printf
jmp .return
.custom_exit:
push edx
call _printf
.return:
mov eax, SUCCESS
leave
ret
%include "functions.asm"
SECTION .data
max_number: dd 0
primes_pointer: dd 0
%include "string_constatns.asm"