Anonymní profil Syntezsa – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Syntezsa – Programujte.comAnonymní profil Syntezsa – Programujte.com

 

Příspěvky odeslané z IP adresy 2a00:1028:83a0:40ea:5933:...–

Syntezsa
Assembler › FPU-jak spravit cyklus?
18. 12. 2013   #185440

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

 

 

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