FPU-jak spravit cyklus? – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

FPU-jak spravit cyklus? – Assembler – Fórum – Programujte.comFPU-jak spravit cyklus? – Assembler – Fórum – Programujte.com

 

Syntezsa
~ Anonymní uživatel
1 příspěvek
18. 12. 2013   #1
-
0
-

Ahoj, potřeboval bych zprovoznit program, ale nevím jak to spravit. Cyklus se neprovede, a pokud ano, vraci to hodnotu -1.IND##.Nevíte někdo jak na to?

podprogram generujici tabulku funkce cos(x)+cos(2x + 1) s krokem delta_t do casu t_max.

coscos:
    FINIT

    CALL ReadDouble        ;st(0)=t_max
    FSTP qword [t_max]
    CALL ReadDouble        ;st(0)=delta_t
    FSTP qword [delta_t]

    FLD qword [x]
    FSTP qword [time]
while_begin:

    
    FLD qword [time]    ;st(0)=    time    st(1)=    ?    st(2)=    ?    st(3)=    ?    st(4)= ?
    FCOM qword [t_max]
    jnc while_end

    FLD1            ;st(0)=    1.0    st(1)=    ?    st(2)=    ?    st(3)=    ?    st(4)= ?

    FLD qword [two]        ;st(0)=    2.0    st(1)=    1.0    st(2)=    ?    st(3)=    ?    st(4)= ?

    FLD qword [x]        ;st(0)=    x    st(1)=    2    st(2)=    1    st(3)=    ?    st(4)= ?

    FCOS            ;st(0)=    COS(X)    st(1)=    2    st(2)=    1    st(3)=    ?    st(4)= ?

    FXCH st1        ;st(0)=    2    st(1)=    cos(X)    st(2)=    1    st(3)=    ?    st(4)= ?

    FMUL qword [x]        ;st(0)=    2x    st(1)=    cos(x)    st(2)=    1    st(3)=    ?    st(4)= ?

    FADDP st2,st0        ;st(0)=    cos(x)    st(1)=    2x+1    st(2)=    ?    st(3)=    ?    st(4)= ?

    FXCH st2        ;st(0)=    2x+1    st(1)=    cos(x)    st(2)=    ?    st(3)=    ?    st(4)= ?

    FCOS            ;st(0)=cos(2x+1)st(1)=    cos(x)    st(2)=    ?    st(3)=    ?    st(4)= ?

    FADDP            ;st(0)=VYSLEDEK    st(1)=  ?    st(2)=    ?    st(3)=    ?    st(4)= ?    
    
    CALL WriteDouble
    CALL WriteNewLine

    FINIT            ;st(0)=    ?    st(1)=    ?    st(2)=    ?    st(3)=    ?    st(4)= ?
    
    FLD qword [time]
    FADD qword [delta_t]
    FSTP qword [time]

    jmp while_begin

while_end:

    ret

Nahlásit jako SPAM
IP: 2a00:1028:83a0:40ea:5933:...–
Sefiros0
Návštěvník
28. 12. 2013   #2
-
0
-

no FPU se nepoužívá, od roku 2000 je dokonce Intelem vedena jako zastaralá technologie? Pro FPN používej SSE a SSE2 instrukce.

Nahlásit jako SPAM
IP: 80.188.252.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

Podobná vlákna

Jak na cyklus — založil Honza

Ako spravit kopiu — založil Grungy

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý