AVR ATmega Aufgabe

OP #3321708
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).
(Firma: Nisch-Aufzüge) Persönliche Seite #3321723
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.
#3323122
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.
#3323231
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren