Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iterativna varijanta N Faktorijela-dvostruka preciznost....

[es] :: Asembler :: Iterativna varijanta N Faktorijela-dvostruka preciznost....

[ Pregleda: 2083 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lancha131
Student

Član broj: 275077
Poruke: 10
*.adsl.verat.net.



Profil

icon Iterativna varijanta N Faktorijela-dvostruka preciznost....14.03.2011. u 23:12 - pre 159 meseci
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
 
Odgovor na temu

[es] :: Asembler :: Iterativna varijanta N Faktorijela-dvostruka preciznost....

[ Pregleda: 2083 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.