m32r-elf-as: Assemblerprobleme

OP #3084065
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe mir eine Crosstoolchain für einen M32R von NEC/Renesas 
aufgesetzt (gcc-4.7.2 mit newlib) und versuche damit, ein als 
Assembler-Quelltext vorliegendes Teilprogramm zu bauen.

Es beginnt so:
1
  .SECTION  FUNC, CODE, ALIGN=16    ;AREA aligned on 16-byte boundary 
2

3
  .MACRO  HostCall  num, inst
4

5
  .ALIGN  16
6
  XOR3  r0, r0, #(0x5A00 + \num)
7
  XOR3  r0, r0, #(0x5A00 + \num)
8
  \inst  r0, @(0,r1)
9
  JMP    r14
10
  .ALIGN  16
11
  .ENDM
12

13
HostCallNoBuffer    HostCall  0, LDB
14
HostCallPutString    HostCall  2, LDB
15
(...)

Mein m32r-elf-as beschwert sich beim Aufruf (`m32r-elf-as -o code.o 
code.s`) aber schon über die erste Zeile:
1
[lynix@thor helloworld]$ m32r-elf-as -o code.o code.s
2
code.s: Assembler messages:
3
code.s:1: Error: character following name is not '#'
4
code.s:13: Error: Falscher Befehl »hostcallnobuffer HostCall 0,LDB«
5
code.s:14: Error: Falscher Befehl »hostcallputstring HostCall 2,LDB«

Kann mir jemand sagen, was an dem Assembler-Quelltext nicht stimmen 
könnte?


Vielen Dank und Viele Grüße

lynix
OP #3084511
Lesenswert?
• ▲
▼
Okay, das ist ja interessant...

Also das in Assembler vorliegende Stück Code gehört zu einem 
(proprietären) Instruktionssatzsimulator und soll bestimmte Funktionen 
auf den Simulator abbilden, damit z.B. printf()-Aufrufe im Binary auf 
dem Simulations-Host ausgeführt werden.

Das File sollte eigentlich korrekt sein, zumindest wird es zusammen mit 
dem Simulator für unverschämte Summen verkauft. Sieht der Code für Dich 
nach irgendwas anderem validen aus?
#3084665
Lesenswert?
• ▲
▼
Wenn ein Assembler nicht gerade versucht, einen anderen Assembler 
nachzuahmen, dann sind sie meist nicht quelltextkompatibel. Also 
entweder den Assembler verwenden, für den die Dateien geschrieben 
wurden, oder die gegebenen Quelltexte für den GNU as umarbeiten.

In dem zitierten Ausschnitt müsste eben die .SECTION an das Format von 
GNU as auf ELF Targets angepasst werden oder ganz weggelassen werden 
(hier scheint nichts nötiges außer dem ALIGN=16 zu sein, und das müsste 
bei GNU normalerweise ohnehin über den Linker geregelt werden). Und die 
Labels müssen mit Doppelpunkt abgeschlossen werden. Die Makro-Definition 
würde sogar so durchgehen.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.