www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MC68HC12 - TFR Befehl verständnis


Autor: BLauWaL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine kleine Frage.

Der Befehl TFR A,B transfermiert laut definition Register Inhalt von A 
in B.

Was passiert aber mit dem A Register, bleibt der alte Wert erhalten oder 
wie läuft das?

Ich habe leider momentan kein Testsystem zur Verfügung.

Mit freundlichen Grüßen

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TFR A,B

überschreibt Register B mit dem Inhalt von Register A. Der Inhalt von 
Register A bleibt dadurch unverändert; d.h. nach der Operation enthalten 
beide Register den gleichen Wert.

Anders sieht das beim Befehl EXG aus, der vertauscht die 
Registerinhalte.


TFR A,B entspricht also dem hypothetischen Befehl LDA B (mit 
Registeradressierung).

Autor: BLauWaL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,

noch eine Frage. Ich glaub die ist sehr Microcontroller abhängig, also 
ich beziehe mich hier auf den HC12.

So wie ich die Definition des TFR Befehls verstanden habe ist eine 
solche Operation möglich: TFR X,A (16 Bit,8 Bit)
Hier schreibt X die lower Bytes in A. Entspricht das der Wahrheit?

Auf vielen Internetseiten steht das der TFR nur bei gleich großen 
Registern funktioniert, allerdings habe ich auch HC12 bezogene Seiten 
gefunden welche dies so als richtig darstellen.



Mfg

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das entzieht sich meiner Kenntnis; ich habe mich nur eingehend mit dem 
6809 beschäftigt. Lang ist's her.

Hast Du denn keinen HC12 user's guide / kein Programmierhandbuch?

Autor: BLauWaL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schaut es denn bei dem aus?

Nein habe ich leider nicht, wir haben im Studium dieses Controller 
benutzt und ein viel zu kleines Handbuch bekommen.

Autor: BLauWaL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht interpretiere ich auch schlecht.

Dort steht: TFR r1,r2
(r1) => r2 or
$00:(r1) => r2 or
(r1[7:0]) => r2

r1,r2 = A,B,CCR,D,X,Y,SP

Sorry für den Doppelpost.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na also, da steht alles drin. Bei 8=>16 wird oben mit 0 erweitert, 
andersum gibt's das untere Byte.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim 09 müssen Quell- und Zielregister die gleiche Bitbreite haben. Der 
HC12 ist aber deutlich neuer, daher kann nicht vom 09 auf den HC12 
geschlossen werden. Die beiden sind nur recht nahe Verwandte.

Programmierhandbücher etc. sollten sich per Google auftreiben lassen, 
auch sollte die Motorola-Nachfolgefirma Informationen vorrätig haben.

....

Ja, ein bisschen Google spuckt das hier aus:
http://www.ee.bgu.ac.il/~shlomi/project/CPU12RM.pdf

Auf Seite 306 ist der TFR-Befehl beschrieben.

Autor: BLauWaL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich konnte aus (r1[7:0]) => r2 nicht viel lesen. Bedeutet das Bit7 - 
Bit0 [7:0] nach Register 2?
Das Handbuch ist sehr gut, sehr ausführlich. Da steht auch ausdrücklich 
Xl => A. Damit wäre die Sache geklärt.

Danke für eure Hilfe...manchmal bin ich doch noch etwas grün hinter den 
Ohren
:-P

Mfg

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohne den Prozessor zu kennen: ja, bedeutet üblicherweise.
Versuche Dich al die Art der Beschreibung zu gewöhnen, sie wird von fast 
allen Herstellern in ihren Beschreibungen benutzt.

Erklärt mir in einer Zeile oft mehr als 3 Seiten lesen. ;-)

Gruß aus Berlin
Mochael

Autor: APW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Na also, da steht alles drin. Bei 8=>16 wird oben mit 0 erweitert,
>andersum gibt's das untere Byte.

Achtung:
bei TFR (8 Bit -> 16 Bit) wird im 16 Bit Register das High-Byte nicht =0 
gesetzt, sondern der 8Bit-Wert wird vorzeichenrichtig erweitert !

Also z.B.
TFR A,X  entspricht  SEX A,X // SEX =sign ext. into 16 Bit Register
Der Objektcode für die beiden Befehle ist übrigens derselbe.

Autor: APW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochwas:
Im Gegensatz zu LDAA B setzt TFR B,A keine CCR-Flags.

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.