Salam dostlar
Assemblerdə hesablama üçün kiçik proqramlar yazanda həmin proqram kiçik ədədlər üçün doğru işləyir ancaq əddləri böyük edəndə nəticə səhv olur. Məsələn:
#prog1.s .data begin: .long 1 end: .long 10 .text .globl _start _start: movl $0, %edx movl begin, %eax movl end,%ecx for: cmpl %eax, %ecx js son addl %eax, %edx addl $1, %eax jmp for son: movl %edx, %ebx movl $1, %eax int $0x80
Bu proqramı 1-dən 100-ə qədər ədədlərin cəmini toplamaq üçün yazmışdım ancaq end dəyişəni 100 olanda nəticə olaraq 186 yazıldı nəticə səhv oldu ancaq 5-10 yazanda nəticə düzgün olur.
İndi necə edim ki proqram böyük ədədlər üçün də düzgün işləsin?
Verilmiş cavablar və yazılan şərhlər (1 cavab var)
2
int instruksiyasından evvel nişan elan edib proqramın icrasını debaqqerle hemin nişanda dayandırıb %ebx -in qiymetini yoxlayın.
Sual verin
Cavab verin