Forum: Mikrocontroller und Digitale Elektronik ATmega163 - Welche Funktion ist hier gesucht?


von Malte von dem Hagen (Gast)


Lesenswert?

Moin,

wir machen grad an der Uni ein Praktikum, in dessen Rahmen der ATmega163 
benutzt wird.
Aus einer Hausaufgabe kommt folgende Frage, bei der ich nicht das 
Problem habe, das ich die Antwort nicht weiß, sondern schon an der 
Fragestellung scheitere. Sämtliche anderen, auch schwierigeren Fragen 
konnte ich beantworten, nur hier weiß ich einfach nicht, was unser 
Betreuer von mir will. Vielleicht weiß ja einer von Euch Rat, denn 
interessieren tut es mich schon:

5. Ersetzen Sie die folgenden Anweisungen durch AVR Assembler Programme.
Überprüfen Sie die Programme mit der Entwicklungsumgebung
AVR Studio 4 und arbeiten Sie mit der Referenzdokumentation.

e) R1 : R0 <- R1 x (R16 + $1F) ;Multiplikation
f) R1 : R0 <- R1 x (R16 + $8F) ;Multiplikation

Meine Fragen dazu:

- Was konkret ist der signifikante Unterschied zwischen e) und f)? Ich 
sehe da nur unterschiedliche Werte - na und? Was für Konsequenzen hat 
das für die verwendeten Anweisungen?

- Welche Anweisung nehm ich da? Ich denke, zur Wahl stehen MUL, MULS und 
MULSU, aber warum sollten hier Vorzeichen eine Rolle spielen?

Über einen Tip würd ich mich freuen, weil mich das wie gesagt schon 
interessiert, und ich nicht einfach diese Fragen auslassen will, auch, 
wenn das wohl kein Beinbruch wäre.

Achja: Die Antworten sollen wohl in folgendem Stil sein:

b) R0 <- R0 • 127 ;Lösche Bit 7 des Registers R0

LDI R16, $7F
AND R0, R16

TIA && regards,

Malte.

von thkais (Gast)


Lesenswert?

Gibts eine Angabe zum Wertebereich von R16? Ich könnte mir lediglich 
vorstellen, daß u.U. ein Überlauf berücksichtigt werden soll, da in der 
zweiten Aufgabe ein recht großer Wert zu R16 hinzuaddiert wird. Die 
Konstante $8F kann auch eine negative Zahl repräsentieren, während $1F 
eine positive Zahl ist.

von Malte von dem Hagen (Gast)


Lesenswert?

Hallo,

Nein, es gibt keine Angaben zum Wertebereich, alle Informationen hab ich 
gepostet. Ich habe auch in der Doku zum ATmega163 keine Angaben über 
Datentypen gefunden. Gibt's da n Link oder sowas?
Warum kann $8F auch negativ sein? Was passiert bei einem Überlauf, soll 
heissen, was hat das für Konsequenzen auf die verwendeten Operationen?

Ich weiß, daß das ziemliche Basic-Fragen sind, aber wir haben da keine 
besonders gute Einführung bekommen. Eine tabellarische Übersicht würde 
mir jedoch reichen, grundsätzlich sind mir Programmierung und Datentypen 
nicht fremd.

Danke && Gruß,

Malte

von Malte von dem Hagen (Gast)


Lesenswert?

Der Vollständigkeit halber:

Mein Betreuer hat eingeräumt, daß die Aufgabe schlecht bzw. 
unvollständig gestellt sei und sie durch eine eindeutige ersetzt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.