[ lancha131 @ 14.03.2011. 23:12 ] @
Ekipa,napravio sam assemblerski kod koji izracunava n Faktorijel za dati broj n... akcenat je bio na tome da se odradi iterativno,sto nije bio neki problem,mada bi rekurzija ovo mnogo efikasnije resila :)... Medjutim sad mi je potrebno da ovaj kod prebacim tako da izracunava faktorijel u dvostrukoj preciznosti.. Razumem kako to ide,medjutim sama implementacija mi pravi problem..pretpostavljam da bi trebalo uvesti par promenljivih,da bio ostavio prostora za registre... da li bi neko mogao da mi pomogne ? #program izracunava n faktorijel i cuva ga u EBX #autor LaNcHa .section .data n=5 #program racuna 5! jedanmanji=4 # poocna promenljiva ,sledi iz definicije faktorijela .section .text .globl main main : movl $n ,%ebx # registar ebx cuva vrednost faktorijela movl $jedanmanji,%ecx #pomocnu promenljivu smesta u registar ecx movl $0,%edx # edx jos jedan pomocni registar za kumuliranje movl $n ,%eax uporedi : movl $1,%edi # edi ce da cuva vrednost i za loop movl $0,%edx cmpl $1,%ecx #petlja ide dokle god za jedan manja vrednost od n jbe kraj #ne dodje do jedinice mnozi : cmpl %edi,%ebx # pocetak while petlje koja radi mnozenje p s ,poredi i i n jb drugi addl %ecx,%edx # u edx dodaje vrednost (n-1) inc %edi jmp mnozi drugi : decl %ecx #smanjuje x-1 za 1, tj na x-2 movl %edx,%ebx jmp uporedi kraj : movl $1,%eax int $0x80 |