mikrocontroller.net

Forum: Compiler & IDEs unbekannter Assembler Befehl


Autor: sse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

in einem Power PC Projekt im Startup Code befindet sich diese Zeile:
  cmpw     r1, r2

Mein Compiler meint dazu:
error: not part of selected instruction set architecture


Kann jemand sagen welche Logik hinter der Zeile steckt? Evtl kann ich es 
abändern und es reicht ein
  cmp     r1, r2
was der Compiler akzeptiert.

Nachfolgende Zeile ist
  e_blt    init_table

Autor: Engelchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cmpw; heißt vielleicht vergleiche WORT und nicht nur Byteweise.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cmpw heist Compare Word , blöd nur, dass r1 und r2 jeweils Bytes sind. 
Wenn der compiler täte was Du willst sehe es etwa so aus :

Vergleiche Inhalt von R2R1 mit R3R2 (dann wären es Words), erkennst Du 
die Unsinnigkeit deines Befehls !!!

Weiterhin solltest Du prüfen, ob Wordbefehle nicht nur auf die letzten 
Register anwendbar sind.

Problem liegt zwischen den Ohren und nicht im compiler.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gast wrote:

> blöd nur, dass r1 und r2 jeweils Bytes sind.

Erst lesen, dann spotten. Wenn das mit dem PowerPC oben kein Witz war, 
dann ist hier kein AVR am Werk und R1 und R2 sind mindestens 32 Bit 
breit.

Könnte allerdings sein, dass die explizite Grössenangabe "cmpd" (64bit) 
und "cmpw" (32bit) nur zulässig ist, wenn ein 64bit Instruction Set 
ausgewählt wurde. Und sonst nur "cmp" geht.

Autor: sse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> wenn ein 64bit Instruction Set ausgewählt wurde

wo meinst du stellt man das ein? ist das Teil des Startup Codes?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob der verwendete PowerPC überhaupt 64bit Operationen abkann "stellt" 
der Konstrukteur ein.

In Assemblern egal wofür gibt es üblicherweise irgendwelche Statements 
oder Kommandozeilenparameter, die entweder den Befehlssatz oder direkt 
das betreffende Modell angeben.

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.