Portál AbcLinuxu, 9. května 2025 23:31
st
registrů:
st(0) = 1/5! = 8,3333e-3 st(1) = 0,25/7! = 4,96031e-5 st(2) = 0,25 st(3) = 1Teď potřebuju provést odčítání
st(0) = st(0) - st(1)
a dostat
st(0) = 1/5! - 0,25/7! = 8,2837e-3 st(1) = 0,25 st(2) = 1Provedl jsem tedy
fsubrp %st(0), %st(1) ; fsubrp st(1), st(0) v intel syntaxCož by mělo udělat to, co potřebuji:
Subtract ST(i) from ST(0), store result in ST(i), and pop register stackJenže nějakým zázrakem dostanu v
st(0)
hodnotu -8,2837e-3
, takže to udělalo pravý opak. Když instrukci změním na fsubp
, tak dostanu správný výsledek, ale podle manuálu je to blbost (?). Je to bug v gas
u nebo ve mně?
Řešení dotazu:
Napište podprogram pro výpočet funkce sinus. sin(x) = x/1! - x^3/3! + x^5/5! - x^7/7!není jednoznačné a proto použiju instrukci fsin (v čemž mi zadání nebrání), která s gasem vrátí správný výsledek ... a hádat se s cvičícím, že měl zakázat použití instrukce fsin, ten mi to stejně neuzná, jak je na ČVUT zvykem. Co byste udělal vy?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.