Witam o to mam problem . Napisałem algorytm Euklidesa metodą odejmowania no i przy linijce:
pushl 7
pushl 5
gdy liczby są w takiej kolejności to wyskakują mi głupoty typu że NWD jest 3
a gdy mam na odwrót
pushl 5
pushl7
to już jest w porządku. Mój kod:
.section .data
.section .text
.globl _start
_start:
pushl $7
pushl $5
call euklides
addl $8, %esp
popl %ebx
movl %eax, %ebx
movl $1, %eax
int $0x80
.type euklides, @function
euklides:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %ebx
movl 12(%ebp),%ecx
movl %ebx, -4(%ebp)
euklides_loop_start:
cmpl %ebx , %ecx
jz end_euklides
ja odejmuje_euklides
subl %ecx, %ebx
movl %ebx, -4(%ebp)
odejmuje_euklides:
subl %ebx , %ecx
movl %ecx ,-4(%ebp)
jmp euklides_loop_start
end_euklides:
movl -4(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret