Forum: Mikrocontroller und Digitale Elektronik Instruction Set


von wene (Gast)


Lesenswert?

Hallo, ich bin was AVRs angeht Neuling. Habe mir etwas Hardware 
aufgebaut, in AVR-Studio ein Assembler Testprogramm geschrieben. Hab den 
µC mittels ISP-Adapter programmiert. Das klappte dank der guten 
Anleitung auf dieser Seite auch auf Anhieb. Nun will ich aber nicht mit 
Assembler programmieren. Hab mir auch schon AVR-GCC installiert. Hab 
auch die Beispiele auf dieser Seite betrachtet, kapier ich auch was da 
gemeint ist, doch die AVR-GCC spezifischen Befehle sind mir neu (muß ja 
so sein). Für Assembler gibts für solche Zwecke auf der atmel Seite ein 
tolles Instruction Set.

Gibt es irgendwo ein Instruction Set auch für AVR-GCC, eventuell sogar 
in deutsch???? Wäre toll, denn Befehle raten, naja


PS: Tolle Seite!!!

: Gesperrt durch User
von Andreas (Gast)


Lesenswert?

Hallo,

auf der Linksseite gibt eine eigene Kategorie für AVR-GCC, da solltest 
du finden was du suchst!

MfG
Andreas

von wene (Gast)


Lesenswert?

Danke für die prompte Antwort!!!

von Bernd_Stein (Gast)


Lesenswert?

Hallo zusammen,

wollte nicht noch ein Tread zur Instruction Set (Befehlsbeschreibung) 
der Atmel AVR-RISC Mikrocontroller aufmachen.

Also,
nach der Befehlsfolge LDI r16,$7F SUBI r16,-$01 wird ja das
MSB (Most Signed Bit) gesetzt und unter anderem auch das Carry-Flag.

Nun steht zum Befehl SUBI => Subtract Immediate (Rd <= Rd - K)
als Ausdruck zum Carry-Flag :

C: (/Rd7 und K7)  oder  (K7 und R7)  oder  (R7 und /Rd7)

   R (Result) equals Rd after the operation.

Nun frage ich :

" Welchen Wert soll ich für Rd einsetzen, wenn doch R = Rd ist " ?

Ist Rd = #$FF bzw. #$-01 oder #$80 ?

Ist die Konstante (K) #$7F oder #$FF bzw. #$-01 ?


Bis dann
Bernd_Stein

von Karl H. (kbuchegg)


Lesenswert?

Bernd_Stein schrieb:
> Hallo zusammen,
>
> wollte nicht noch ein Tread zur Instruction Set (Befehlsbeschreibung)
> der Atmel AVR-RISC Mikrocontroller aufmachen.

Hättest du aber tun sollen.
Deine Frage hat nicht das geringste mit der Fragestellung dieses fast 9 
Jahre(!) alten Threads zu tun. Ich hab schon viele alte Threads 
aufgewärmt gesehen, aber das hier dürfte neuer Rekord sein

von Karl H. (kbuchegg)


Lesenswert?

Bernd_Stein schrieb:

> " Welchen Wert soll ich für Rd einsetzen, wenn doch R = Rd ist " ?

Das d in Rd steht für die Nummer des Registers
Bei dir also 16
Wenn in der Beschreibung von Rd die Rede ist, dann ist das bei dir im 
speziellen Fall, bei einem
    SUBI   R16, $-1
das Register R16

Das
R (Result) equals Rd after the operation.

bezieht sich auf das hier
C: (/Rd7 und K7)  oder  (K7 und R7)  oder  (R7 und /Rd7)

Rd7  bedeutet    das 7.te Bit von der Originalzahl
R7   bedeutet    das 7.te Bit vom Ergebnis

Die Unterscheidung ist notwendig, weil das Ergebnis der Subtraktion 
wieder in Rd (bei dir also in R16) abgelegt wird und man eine 
Möglichkeit braucht zwischen den ursprünglichen Bits und den 
Ergebnisbits in der Beschreibung zu unterscheiden


> Ist die Konstante (K) #$7F oder #$FF bzw. #$-01 ?

Was hast du hingeschrieben?

7F kanns schon mal nicht sein
Und FF und -1 haben dasselbe Bitmuster. Such dir aus, ob du es als FF 
oder -1 lesen willst.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.