Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Dzielenie ASM Atmega32 (lub inna Atmega)
SP5FCS Offline
Adam
*****

Liczba postów: 1,072
Dołączył: 02-02-2009
Post: #2
RE: Dzielenie ASM Atmega32 (lub inna Atmega)
Marcin, naukę arytmetyki należałoby rozpocząć od dodawania i odejmowania ponieważ na nich opierają się funkcje mnożenia i dzielenia. Drugi krok to operacje przesuwania w lewo, w prawo a dopiero potem mnożenie i dzielenie.

Procesory AVR nie mają rozkazu dzielenia dlatego musimy zrobić to przy pomocy rozkazów odejmowania. Najprostszy algorytm dzielenia 8-bitowego to odejmowanie w pętli dzielnika od dzielnej i liczenie ilości wykonanych pętli.
Zalety: prosty, krótki kod, szybkie wykonanie przy dużych dzielnikach.
Wady: długi czas obliczeń przy małych dzielnikach.
Lepszą metodą jest algorytm oparty na przesuwaniu w lewo i odejmowaniu. To rozwiązanie stosowane jest w arytmetyce na formatach wielobajtowych 16, 32, 64 bity. Aby zrozumieć filozofię takiego dzielenia najlepiej użyć przykładu dla liczb minimum 16 bitowych (odejmowanie, przesunięcie wielobajtowe). Na bazie takiego algorytmu możemy potem zbudować dzielenie na praktycznie dowolnych formacie danych.

Temat na elektrodzie o dzieleniu na atmega w asm
Źródła procedur DIV8/8, DIV16/8

73 Adam
05-04-2012 14:22
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Dzielenie ASM Atmega32 (lub inna Atmega) - SP5FCS - 05-04-2012 14:22

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości