Forum: Offtopic AVR ATmega Aufgabe


von Denis M. (fusselbaum)


Lesenswert?

Hi,

ich eine Aufgabe von der Uni die ich lösen muss nur verstehe ich 
garnicht was dort gemeint sein könnte:

Der AVR ATmega verarbeitet 16-Bit-Worte aus dem Programmspeicher. Daher 
wird
überlicherweise nach einem Befehl an der Stelle n als nächstes ein 
Befehl an der Adresse n+2 verarbeitet.
Finden Sie so viele Umstände wie möglich, unter denen der nächste 
tatsächliche verarbeitete Befehl nicht an der Adresse n+2 steht (es gibt 
etwa 7 grundlegend voneinernader verschiedene mögliche Antworten).

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

es get um die structur der Assemblerbefehle

Ein Befehl setzt sich aus Opcode und parameter zusammen.

Die Opcode sind 1 byte lang  der parameter je nach opcode 0,1,2 byte

Das bedeutet du must die Opcode gruppieren  nach der länge der 
zugehörigen Parameter

Die meißten opcode haben einen Einbyte parameter d.h der nächste Befehl 
beginnt beim übernächsten Byte.

Du sollst die die Ausnahmen benennen.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Gefragt wird nach 32-Bit Befehlen wie LDS oder JMP, bei denen der PC um 
4 erhöht wird, nicht nur um 2.  Aber Obacht: Bei ATtiny10 et al. ist 
LDS/STS nur 2 Byte lang.

von Stephan B. (matrixstorm)


Lesenswert?

Hi!

Darueber gibt es von Atmel ein Dokument:
http://matrixstorm.com/avr/files/doc0856.pdf

MfG Stephan

Nachtrag:
Einfach die PDF nach "Words: 2" durchsuchen.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

sorry parameter heißt operand

von Georg A. (georga)


Lesenswert?

Ihr denkt alle etwas zu einseitig...

von Denis M. (fusselbaum)


Lesenswert?

und was bedeutet das nun genau mit einseitig denken?

von Stephan B. (matrixstorm)


Lesenswert?

Georg A. schrieb:
> Ihr denkt alle etwas zu einseitig...

Denis Meißner schrieb:
> und was bedeutet das nun genau mit einseitig denken?

Jo, würde ich auch gern wissen.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Ganz nebenbei bemerkt: es gibt auch noch die Interrupts....

von Herr M. (herrmueller)


Lesenswert?

und Sprungbefehe und Vergleiche

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

...und den Reset...

von Georg A. (georga)


Lesenswert?

Na also ;) Und wenn man die Sprünge noch nach der Herkunft des 
Sprungziels sortiert, gehts auch mit den 7 Stück auf.

von Peter D. (peda)


Lesenswert?

2-Word Befehle
Sprung
Skip
Call
RET/RETI
Interrupt
Reset

von Georg A. (georga)


Lesenswert?

Ich würde die Sprünge eher danach sortieren, woher der neue PC kommt:

relativ (PC:=PC+d)
absolut (PC:=n)
indirekt (PC=regZ)
Return (PC=<pop Stack>)

Im Endeffekt gehts bei der Aufgabe wohl genau um den Multiplexer im 
Sequencer (v.Neumann lässt grüssen...), der den nächsten PC-Wert 
auswählt und wieviele Eingänge er hat. Es sind 8, davon ist der 
PC:=PC+2-Eingang der Defaultfall.

von Vlad T. (vlad_tepesch)


Lesenswert?

Winfried J. schrieb:
> Das bedeutet du must die Opcode gruppieren  nach der länge der
> zugehörigen Parameter
>
> Die meißten opcode haben einen Einbyte parameter d.h der nächste Befehl
> beginnt beim übernächsten Byte.
>
> Du sollst die die Ausnahmen benennen.

also ich würde das als einen Grund der sieben Möglichkeiten ansehen, 
egal wie viele OP-Codes es gibt, die länger als 2 Byte sind.

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.