Question

Quel serait le code assembleur pour 68HC11 pour calculer la valeur de sinus utilisant Taylor ou une table de consultation?

Valeur d'affichage sera seulement en entier. Comment une table de travail de recherche dans ce cas? Comment peut-il être mis en œuvre en utilisant Taylor ?

Était-ce utile?

La solution

Je n'ai pas fait 68HC11 programmation depuis longtemps, donc je gagné » t être en mesure de vous donner des instructions précises, mais vous voulez faire plus ou moins ce qui suit:

  1. définir une table en mémoire qui a 256 (ou cependant plusieurs) des valeurs pour Sin (x), sur un quadrant, dans l'intervalle [0-Pi / 2].
  2. Convertir votre entrée à la gamme [0-Pi / 2], en gardant une trace de quel quart il était à l'origine. Pour Q2, vous voulez la valeur (Pi / 2-x), par exemple.
  3. Recherchez la valeur ajustée dans le tableau, ce qui annule le résultat si l'angle initial était au 3e ou 4e quarts de cercle.

Specifics serait bien sûr dépendre d'entrée et de plages de sortie, mais en général, vous utiliserez le mode d'adressage indexé, avec le registre d'index pointant dans la table, ou bien, d'adressage étendu, avec le décalage mis en modifiant l'opcode.

Autres conseils

Si vous êtes à la recherche d'une solution à virgule flottante, vous aurez besoin de mettre en œuvre des opérations à virgule flottante en premier. Cette partie sera non négligeable sur un 68HC11 qui n'a pas de support même pour 32 opérations de bits. Après cela, le calcul du péché est facile, mais très lent. ; -)

Utilisez une table de recherche.

Ne pas utiliser Taylor.

Google a trouvé cette .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top