Forum: Mikrocontroller und Digitale Elektronik 6809 Assembler Frage


von n0ize (Gast)


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

von Micha S. (ernie)


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

von Rainer (Gast)


Angehängte Dateien:

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

von Rufus Τ. F. (rufus) Benutzerseite


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:
1
   The '>' and '<' prefix's also have special meaning in  JMP  and
2
    CALL instructions:
3
    
4
           JMP     label       NEAR 16 bit RELATIVE jump
5
           JMP     <label      NEAR 8 bit RELATIVE jump
6
           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.

von n0ize (Gast)


Angehängte Dateien:

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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von n0ize (Gast)


Angehängte Dateien:

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 ;)

von Rufus Τ. F. (rufus) Benutzerseite


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?

von n0ize (Gast)


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

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.