mikrocontroller.net

Forum: Compiler & IDEs AVRStudio 4


Autor: Albert Lederer (kryptman)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe ein Problem mit AVRStudio und weiß nicht ob's Ich bin, ATMEL,
oder GCC.

Im Anhang ist ein simples Program das in einer for-Schleife eine Zahl
mit 8 multipliziert und in einer Variable speichert.  Jetzt habe Ich
beim Debuggen ein Problem entdeckt und zwar das Ich nicht mit 8
multiplizieren kann, und auch keiner anderen Potenz von 2.

Kann mir wer sagen was Ich da falsch mache?

Danke

Autor: Karl heinz Buchegger (heinzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verraetst Du uns auch noch, wie wir
'das Ich nicht mit 8
multiplizieren kann, und auch keiner anderen Potenz von 2'
interpretieren sollen? Woran merkst Du das es nicht geht?

Autor: Albert Lederer (kryptman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, hätte etwas mehr schreiben sollen.

Im Debugger sehe Ich das sich nur ein Register verändert, und zwar der
Zähler der for-Schleife(in diesem Falle x).  Wenn Ich z.b. mit 7
multipliziere, sehe Ich das Resultat in R0 des simulierten AtMega8.

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Compiler wird erkennen, daß der Code völlig überflüssig ist, und y
gleich mit dezimal 80 laden...

Autor: Albert Lederer (kryptman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, da haste recht.

Das kommt davon wenn man sich nicht so richtig auskennt und gleich
plärrt.

Autor: Irgwer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Variable y (und auch x) liegen im Memory. Schau mal ganz am Ende des
Data-Memory.
Bei der Multiplikation mit 7 benutzt der Compiler den MUL Befehl
welcher das Register 0 verändert. Die Multiplikation mit 8 wird durch
dreimaliges shiften erledigt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.