AVR Risc Controller Modulo Operation

Gast #171218
Lesenswert?
• ▲
▼
Klar können die das, kann jeder µProzessor.
Der Modulo ist der Restwert einer Division.
Und falls der Modulo aus einer Division einer 2ér-Potenz ermittelt
werden soll (/2, /4, /8 etc.), reicht, in ASM oder auch C, eine
einfache AND-Verknüpfung.

MfG
Andi
Gast #171219
Lesenswert?
• ▲
▼
Danke für deine Antwort.

Einen speziellen Befehl zB wie add oder mul gibts aber nicht für diese
Operation oder? In C isset ja % aber es geht mir ja um einen Assembler
Befehl.
Mein Ziel ist es für eine beliebige einstellige Dezimalzahl den den
Modulo 4 Wert zu bilden
Also zB:
9 %4 = 1
Gast #171220
Lesenswert?
• ▲
▼
Nix leichter als das!

Zum Beispiel:
 ldi  r16,11  ;Ausgangswert
 andi r16,3   ;Modulo aus 11 / 4 = 3

oder
 ldi  r16,6   ;Ausgangswert
 andi r16,3   ;Modulo aus 6 / 4 = 2

Der Wert 3 für die AND-Verknüpfung kommt daher, das ein Modulo 4 Werte
von 0 bis 3 haben kann und die 4 einer Zahl aus einer 2ér-Potenz
entsprechen.
Mit Modulo 5 geht das natürlich nicht sondern immer nur mit Zahlen wie
2, 4, 8, 16, 32 etc.
Brauchst Du mal einen Modulo aus 8, machst Du eine AND-Verknüpfung mit
7 (0 bis 7 sind dann mögliche Werte).
Bei Modulo 100 z. B. benötigst Du eine Divisions-Routine welche das
Ergebnis und den Restwert zurück gibt.

MfG
Andi

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.