PDA

View Full Version : افتادن برنامه در حلقه بینهایت



vistacali
پنج شنبه 21 اردیبهشت 1391, 09:15 صبح
سلام دوستان من این برنامه رو نوشتم که عددی رو میگیرد و میگه اول هست یا نه ولی نمیدونم چرا درست اجرا نمیشه الگوریتمش درست هست ولی نمیدونم چیش هست میشه کمک کنید ؟ برنامه میشفته توی حلقه بینهایت

دیتا سگمنت

data segment

j dd 0
d db 1
r db 0
num db 5
f db ?
z db 0
y db "Prime Number $"
n db "No$"

ends


کد سگمنت

;_______________________________________

next2:
mov ah,0
mov al,num

mov bh,0
mov bl,d
div bx
mov f,ah

cmp f,0
jne next1
inc d
inc j

cmp d,5
jz mogh
jmp next2

next1:
inc d
cmp d,5
jz mogh

;mov j,ax
jmp next2


mogh :
cmp j,2
jz no

lea dx,y
jmp endl

no:
lea dx,n

endl:
mov ah,09h
int 21h

;_______________________________________

ssbostan
پنج شنبه 21 اردیبهشت 1391, 19:05 عصر
سلام، الگوريتم اصلي برنامه رو براتون نوشتم، دريافت ورودي از كاربر و... رو خودتون ميتونيد اضافه كنيد.




mov ch, 00h
mov cl, [num]
mov si, 0

make_loop:
mov ah, 00h
mov al, [num]
mov bx, cx
div bl
cmp ah, 00h
jnz exit
inc si
exit:
loop make_loop

cmp si, 02h
jnz not_prime
jz prime


not_prime:

mov ah, 02h
mov dl, 'n'
int 21h
jmp exit_app:


prime:

mov ah, 02h
mov dl, 'p'
int 21h


exit_app:


num db 10


موفق باشيد.

vistacali
جمعه 22 اردیبهشت 1391, 10:41 صبح
ممنونم دوست عزیز ولی م میخواستم ببینم که برنامه خودم چه ایرادی داره که با جابه جا کردن خط 17و18 با 14و15 مشکلم حل شد بازم تشکر