mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 6809 Assembler Frage


Autor: n0ize (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

eine kurze Anfängerfrage, weil weder das Motorola PM noch Google noch 
Forensuche mir weiterhelfen konnten:


Was ist der Unterschied zwischen

jmp LABEL und jmp >LABEL

bzw.

jsr LABEL und jsr >LABEL



Hab das in den Sourcen für ein Vectrex Spiel gefunden.

Vielen Dank,
n0ize

Autor: Micha S. (ernie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
n0ize schrieb:
> Hi,
>
> eine kurze Anfängerfrage, weil weder das Motorola PM noch Google noch
> Forensuche mir weiterhelfen konnten:
>
>
> Was ist der Unterschied zwischen
>
> jmp LABEL und jmp >LABEL
>
> bzw.
>
> jsr LABEL und jsr >LABEL

">" Longjump

Gruesse,

Michael

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo  n0ize,

im Anhang findest du ein PDF-Dokument zum 6809-Assembler.
Dort solltest du eine Erklärung finden ( short,long Adressierung).

Gruß

Rainer

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

Bewertung
0 lesenswert
nicht lesenswert
Die Syntax ist mir unbekannt. Erwähnen die Sourcen, für welchen 
Assembler sie gedacht sind?

Beim Crossassembler XASM wird diese Syntax nur für x86 verwendet:
   The '>' and '<' prefix's also have special meaning in  JMP  and
    CALL instructions:
    
           JMP     label       NEAR 16 bit RELATIVE jump
           JMP     <label      NEAR 8 bit RELATIVE jump
           JMP     >LABEL      NEAR INDIRECT jump through LABEL

Aber das ist beim 6809 anders gelöst.

JSR adressiert absolut, BSR bzw. LBSR sind die relativen Varianten mit 
8- bzw. 16-Bit-Offset.
Die relativen Äquivalente von JMP sind BRA bzw. LBRA.

Denkbar wäre, daß sich hinter der merkwürdigen Syntax nur eine 
Alternativschreibweise zu den "echten" 6809-Mnemonics.

Achso, nochwas, es könnte auch 8-Bit-Sprünge innerhalb der "direct page" 
geben, aber daran kann ich mich im Detail nach 20 Jahren nicht mehr 
genau erinnern.

Autor: n0ize (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten ;)

@Rufus: Nein, in den Sourcen steht nichts, ich habe den Quelltext 
angehängt. Es gibt allerdings eine weitere Version der Sourcen, die für 
AS09 von Frank A. Vorstenbosch geschrieben ist, da taucht die Syntax 
nicht auf.

Gruß,
n0ize

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

Bewertung
0 lesenswert
nicht lesenswert
> Es gibt allerdings eine weitere Version der Sourcen, die für
> AS09 von Frank A. Vorstenbosch geschrieben ist, da taucht die Syntax
> nicht auf.

Da wird ein direkter Vergleich der betreffenden Stellen sicherlich 
aufschlussreich.

Autor: n0ize (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus: Done, die gleichen jmp und jsr Befehle, aber ohne ">". Außerdem 
werden Variablen anders initialisiert:

SHOT_SPEED              EQU     #$08

vs.

SHOT_SPEED              EQU     $08    ; AS09 Syntax

@Rainer: Danke für das PDF, auch die anderen PDFs der Uni Ulm sind ja 
eine wahre Quelle der Weisheit und genau das, was ich gesucht habe, 
endlich eine anfängergerechte Einführung in den 6809 ;)

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

Bewertung
0 lesenswert
nicht lesenswert
Die as09-Syntax ist die mir aus meinen 09er-Zeiten vertraute. Ist lange 
her, aber trotzdem der schönste aller 8-Bit-Prozessoren. Steckte in 
meinem ersten Selbstbau-Rechner.

Was genau machst Du damit?

Autor: n0ize (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte meinen Vectrex programmieren, eigentlich ist C++ 
Spieleprogrammierung meine Heimat und hab mit LowLevel Programmierung 
bisher nicht viel zu tun gehabt, aber ich betrachte das mal als neue 
Herausforderung.

Hier gibts ein paar Sourcen und Manuals zu der alten Kiste:

http://www.playvectrex.com/

->Design It

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.