2017-06-16 4 views
-2

Ich benutze DosBox, um in der Montage zu programmieren.Ausdruck Syntaxfehler: Wie definieren Array?

Ich habe ein Problem bei der Definition eines Vektors von ganzen Zahlen; ich verwende:

Bei der Zusammenstellung des Programms mit NASM, der Assembler sagt mir 'Ausdruck Syntaxfehler'. Ich verstehe nicht, warum, wenn ich Emu8086 gut funktioniert und sogar online lesen sehe ich einen Träger, der so erklärt. Was kann es sein?

+0

Was ist "Arsch"? Ist das ein automatisch korrekter Tippfehler für den Gnu-Assembler, 'as'? Oder verwenden Sie NASM, wie es das Tag vorschlägt? –

+0

Warum hast du dann mit 'nasm' getaggt? Wie auch immer, vielleicht erwartet Ihr Assembler einen Wert pro 'db', also teilen Sie ihn in mehrere Zeilen. Vielleicht mag es auch keine vorzeichenbehafteten Zahlen, also vielleicht in vorzeichenloses Äquivalent umwandeln. Wenn alles andere fehlschlägt, konsultieren Sie das Handbuch Ihres Assemblers ... – Jester

+0

Es scheint, dass das Problem ist, dass Ihr Kopieren und Einfügen (oder wie auch immer Sie den Code übertragen haben) vor jeder Nummer ein nicht druckbares Zeichen hinzugefügt hat. Mir ist aufgefallen, dass ich beim Kopieren und Einfügen der Zeile aus Ihrer Frage nicht druckbare Zeichen im Eingabestream gefunden habe, die ich manuell in meinem Texteditor löschen musste. Diese zusätzlichen nicht druckbaren Zeichen lassen NASM ersticken. –

Antwort

0

Den Doppelpunkt vom Etikett entfernen.
Viele Assembler akzeptieren nur den Doppelpunkt, wenn das Label vor einer tatsächlichen Anweisung steht oder sich in einer Zeile befindet.
db ist keine Anweisung, sondern eine Anweisung.

vect db ‐10, ‐8, ‐3 

Beim Definieren von Daten wird der Doppelpunkt nicht erkannt.

+3

Das Problem hier ist, dass das negative Vorzeichen (vor jedem Wert) in seinem Beispiel nicht zu sein scheint ASCII für '-'. Scheint ein UTF-kodiertes Formular zu sein. Wenn Sie das aktuelle Beispiel kopieren und in einen Editor wie _nano_ einfügen, können Sie die zusätzlichen nicht druckbaren Zeichen sehen. Sie verursachen _NASM_ zu ersticken. Der Doppelpunkt ist in _NASM_ für diese Verwendung vollkommen akzeptabel. –

Verwandte Themen