www.mikrocontroller.net

Forum: Compiler & IDEs Probleme mit Assemblercode


Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich bin gerade dabei einen Assemblercode auf eine andere 
Entwicklungsumgebung zu portieren.

-----------------------
Quelle:

Assemblercode: bz $+6

Doku: ?
-----------------------

-----------------------
Ziel:

Assemblercode: ?

Doku: Doku: Note bncond denotes an instruction that effects control
      ranches under opposite conditions, for example, bnz for bz
      or ble for bgt.
-----------------------

Für jeden Hilfestellung bin ich sehr dankabr.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja, etwas mehr Info zu Prozessortyp und verwendeten Assembler wären 
vielleicht angebracht. Und wenn du das rausgefunden hast, beantworten 
sich auch deine Fragen alle von selber.

Dazu stellt sich die Frage, was das im gcc-Forum zu suchen hat.

Ansonsten wird "bz +6"  sowas wie "branch on zero" bedeuten, mit Sprung 
um 6 Speicherstellen nach vorne.

Wenn dir das jetzt nichts sagt, vergiß das Projekt.

Oliver

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Info.

Im Assembler Handbuch steht folgendes:

Instruction Meaning:
jarl Jump and register link
jarl22 Jump and register link [V850E2]
jarl32 Jump and register link [V850E2]
jcond Conditional branch
jmp Unconditional branch
jmp32 Unconditional branch (jump) [V850E2]
jr Unconditional branch (PC relative)
jr22 Unconditional branch (PC relative) [V850E2]
jr32 Unconditional branch (PC relative) [V850E2]

Einer von diesen Befehlen müsste ich wahrscheinlich verwenden.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ist es.

Aber vorher wäre ein Grundkurs in Assembler angesagt. Zumindest die 
allereinfachsten Grundlagen und Konzepte sollte man für solch ein 
Projekt schon kennen.

Oliver

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ich diesen Assemblerbefehl "bz" nicht in der Doku von der 
Entwicklungsumgebeung (Quelle) finden kann, weiss ich auch nicht welchen 
Befehl ich oben nehmen müsste.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"branch on zero" ist ein "Conditional branch".

Und das wird niemals nicht nur eine andere Entwicklungsumgebung sein. Du 
portierst anscheinend auf einen völlig anderen Prozessor, dazu von einer 
Quelle, die absolute Adressierungen in Sprüngen verwendet (Hex-Dump???). 
Und das alles ohne jede Ahnung von Assemblerprogrammierung.

Viel Spaß.

Oliver

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

Bewertung
0 lesenswert
nicht lesenswert
Ich hab bereits alles andere schon portiert. Nur diese Anweisung "bz 
$+6"
macht mir halt noch Probleme. Ich vermute das der Befehl "jcond" in 
Frage kommt.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiss vielleicht jemand was das Dollerzeichen bedeutet?

Autor: Bernhard R. (barnyhh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
John fragte:
>> Weiss vielleicht jemand was das Dollerzeichen bedeutet?

Ja, das sehe ich in den Augen Deines Auftraggebers, weil er nur auf den 
Stundensatz und nicht auf den Betrag unter dem Strich schielt!

Bernhard

Autor: pic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wird nicht mit € gerechnet, also Program aus US oder Asien ;)

pic

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
John schrieb:
> Ich hab bereits alles andere schon portiert. Nur diese Anweisung "bz
> $+6"
> macht mir halt noch Probleme. Ich vermute das der Befehl "jcond" in
> Frage kommt.

Das ist doch alles sinnlos.
Wenn man ein Assemblerprogramm von einer Plattform A nach einer 
Plattform B portiert, muss man beide Plattformen aus dem FF beherrschen. 
Ansonsten erleidet man unweigerlich Schiffbruch. Und da ist das finden 
einer Entsprechung für einen Zero-Branch noch eine der harmlosesten 
Übungen überhaupt. Das Erkennen, Finden und Umsetzen von Logiken, die 
darauf beruhen, dass manche Anweisungen die Flags beeinflussen und 
manche nicht und wie sich das dann 5 Befehle später auswirkt wenn sie es 
tun, kann da schon viel eher zu einem Albtraum ausarten.

Was du gerade machst ist das Übersetzen von Russisch ins Englische, 
wobei du weder Russisch noch Englisch kannst und dein einziges 
Hilfsmittel ein Wörterbuch ist. Trotzdem muss die Übersetzung gut genug 
sein um damit den Pulitzerpreis gewinnen zu können. Und zwar ohne dass 
ein Lektor irgendwelche Rechtschreibfehler korrigiert oder 
Formulierungen umstellt. Bei Programmen geht es nämlich nicht darum, 
dass ein Amerikaner den Sinn schon irgendwie erraten wird. Bei 
Programmen muss jedes Detail 100% stimmen.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was du gerade machst ist das Übersetzen von Russisch ins Englische,
>wobei du weder Russisch noch Englisch kannst und dein einziges
>Hilfsmittel ein Wörterbuch ist.

Und zwar eins Frau-Deutsch

;-)

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich hab bereits alles andere schon portiert. Nur diese Anweisung "bz
>$+6" macht mir halt noch Probleme.

Ja nee, is klar...

In JEDEM Assemblerprogramm ist minimal jeder zehnte Befehl ein "bxx 
$+yy". Und das hast du schon alles portiert, bis auf diesen einen, und 
fragst jetzt erst, was das $ bedeutet?

Das passt doch alles nicht zusammen.

Oliver

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.