Независимо от того, что я ввожу, если я получу простое число или составное число, это всегда не простое число. Я проверял код много раз. Кто-нибудь знает, может быть, что происходит? Я новичок в ассемблере
; Sprawdzanie czy liczba jest pierwsza
section .text
global _start
_start:
; Wyświetlenie pytania w terminalu
mov rax, 4
mov rbx, 1
mov rcx, hello
mov rdx, helloLength
int 80h
; Wczytywanie danych z klawiatury do zmiennej number
mov rax, 3
mov rbx, 0
mov rcx, number
mov rdx, numberLength
int 80h
mov rcx, 2
mov rax, number
mov rsi, number
loop:
xor rdx, rdx
mov rax, rsi
cmp rcx, rsi
jae prime
div rcx
or rdx, rdx
jz notPrime
inc rcx
jmp loop
notPrime:
mov rax, 1
mov rbx, 1
mov rsi, no
mov rdx, noLength
syscall
mov rax, 60
syscall
prime:
mov rax, 1
mov rbx, 1
mov rsi, yes
mov rdx, yesLength
syscall
mov rax, 60
syscall
section .data
hello db "Check number: "
helloLength equ $ - hello
no db "It's not prime number"
noLength equ $ - no
yes db "It's prime number"
yesLength equ $ - yes
number db 1
numberLength equ $ - number