Domanda

Non so molto di montaggio, ma sono abbastanza sicuro che non ci sono le istruzioni di radice quadrata sul x86? Sto cercando di ottenere una funzione di radice quadrata di lavorare bene in schiuma e quello che ho trovato ottiene impantanato in qualche modo quando l'eseguo molte volte.

: sqrt-closer ( square guess -- square guess adjustment)
2dup / over - 2 /
;

: sqrt ( square -- root )
1 begin
sqrt-closer dup
while + repeat
drop nip ;
È stato utile?

Soluzione

C'è un'istruzione radice quadrata in virgola mobile ( FSQRT ). Questo è abbastanza veloce, anche se hai solo bisogno di una radice quadrata intero.

Altri suggerimenti

Guardate qui:

http://www.azillionmonkeys.com/qed/sqroot.html

Tutto quello che avreste voluto sapere su radici quadrate, ma mai osato chiedere. Contiene un'implementazione in linguaggio assembly x86.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top