EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

as31 – Online in der Cloud

Führen Sie as31 im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl as31, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


as31 – Ein Intel 8031/8051-Assembler

ZUSAMMENFASSUNG


as31 [-h] [-l] [-s] [-v] [-Aarg] [-Ffmt] [-Ofile] infile.asm

BESCHREIBUNG


AsXnumx montiert infile.asm in eines von mehreren verschiedenen Ausgabeformaten. Die Ausgabe wird sein
in einer Datei namens infile.obj. Die Erweiterung .asm ist erforderlich.

OPTIONAL


Die Optionen müssen vor dem Namen der Eingabedatei stehen. Beide Optionen sind optional. Der Text von
Jedes Flag muss auf demselben Argument wie das Flag erscheinen. Beispielsweise ist „-Fod“ gültig
Argument, „-F od“ jedoch nicht.

-h Dadurch gibt der Assembler eine ausführliche Meldung aus, in der seine Optionen beschrieben werden.
Die Nachricht wird in den Standardfehler geschrieben.

-l Diese Option weist den Assembler an, auch eine Listing-Datei zu generieren. Eine Auflistung wird erfolgen
in der Datei infile.lst abgelegt. Dabei ist „infile“ die Datei, die zusammengestellt wird.
Diese Option kann an einer beliebigen Stelle vor infile.asm erscheinen. Die Option muss isoliert auftreten
in der Kommandozeile.

Die Listing-Datei zeigt den vom Assembler generierten Code im Hexadezimalformat und mit bis zu 60 Zeichen
werden aus der Quelldatei beibehalten.

-s Dadurch schreibt der Assembler die Ausgabe in die Standardausgabe.

-v Dadurch gibt der Assembler eine Versionsnummer auf der Standardausgabe aus.

-Aarg Diese Option gibt eine formatspezifische Zeichenfolge an, die an das Format übergeben wird
Generator. Sowohl das Format „tdr“ als auch die Srecord-Formate nutzen diese Option.

-Fformat
Diese Option gibt das zu verwendende Ausgabeformat an.

Derzeit stehen hierfür nur folgende Optionen zur Verfügung:

hex Dieses Format ist das Intel HEX-Format, das von einer Reihe von EPROMs erwartet wird
Programmierer und der PAULMON-Debugger. Zur Verwendung mit einigen Programmierern ist die
Die Erweiterung der Ausgabedatei muss möglicherweise in .HEX geändert werden, damit sie erkannt wird
der Programmierer. Es wird keine Option -A verwendet. Dieses Format sollte das Standardformat sein, wenn
Es wird keine Option -F verwendet.

tdr Dieses Format generiert eine ASCII-Datei mit Hex-Ziffern, die auf diese Weise formatiert sind
dass sie vom tdr-Debugger gelesen werden können. Es kann ein Argument angegeben werden (siehe
-A-Option), die eine formatspezifische Zeichenfolge an den Formatgenerator übergibt.
In diesem Fall stellt die Argumentzeichenfolge einen Offset dar, der zu hinzugefügt werden soll
Standortzähler. Dieser Offset wird im Dezimalformat angegeben und beträgt standardmäßig
64*1024 (0x10000). Um einen Offset von 100 anzugeben, benötigen Sie „-Ftdr
-A100“ beim Aufruf des Assemblers.

Byte Dieses Format besteht einfach aus einer Adresse und einem Byte in jeder Zeile im ASCII-Format. Nein -A
Option verwendet wird.

od Dieses Format ähnelt der Ausgabe von od(1). Das Format besteht aus einem
Adresse gefolgt von sechzehn hexadezimalen Bytes, gefolgt vom Äquivalent
ASCII. Es wird keine Option -A verwendet.

srec2, srec3, srec4
Der Datensatzgenerator ist in der Lage, eine Ausgabe mit einem von 2, 3,
oder 4-Byte-Adressen. Mit der Option -A kann die Basisadresse festgelegt werden
Offset, der Standardwert ist hier 0x0000 (im Gegensatz zu ToR).

HINWEIS: Mit diesem Assembler können die Ausgabeformate um viele erweitert werden
verschiedene Ausgabeformate.

-Ofile Diese Option weist den Assembler an, die Ausgabe in eine Datei zu schreiben.

MONTEUR EMPFEHLUNGEN


Dieser Assembler akzeptiert die standardmäßigen 8031/8051-Befehlsformate. Unten finden Sie eine Liste von
Anweisungen und Adressierungsmodi.

ANWEISUNGS-BYTES-ZYKLEN
----------- ----- ------
ACALL-Adresse11 2 24
ADDIEREN, #data8 2 12
ADDIEREN, @Ri 1 12
ADD A, Rn 1 12
ADDIEREN, direkt 2 12
ADDC A, #data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, direkt 2 12
AJMP-Adresse11 2 24
ANL A, #data8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, direkt 2 12
ANL C, /bit 2 24
ANL C, !bit 2 24
ANL C, Bit 2 24
ANL direkt, #data8 3 24
ANL direkt, A 2 12
CJNE @Ri, #data8, rel 3 24
CJNE A, #data8, rel 3 24
CJNE A, direkt, rel 3 24
CJNE Rn, #data8, rel 3 24
CLR A 1 12
CLR C 1 12
CLR-Bit 2 12
CPL A 1 12
CPL C 1 12
CPL-Bit 2 12
DA A 1 12
DEZ @Ri 1 12
DEZ A 1 12
DEZ DPTR 1 12
DEZ Rn 1 12
DEZ direkt 2 12
DIV AB 1 48
DJNZ Rn, rel 2 24
DJNZ direkt, rel 3 24
INC @Ri 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
INC direkt 2 12
JB-Bit, Rel. 3 24
JBC-Bit, Rel. 3 24
JC relativ 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
JNB-Bit, Rel. 3 24
JNC relativ 2 24
JNZ relativ 2 24
JZ relativ 2 24
LCALL-Adresse16 3 24
LJMP-Adresse16 3 24
MOV @Ri, #data8 2 12
MOV @Ri, A 1 12
MOV @Ri, direkt 2 24
MOV A, #data8 2 12
MOV A, @Ri 1 12
MOV A, Rn 1 12
MOV A, direkt 2 12
MOV C, Bit 2 12
MOV DPTR, #data16 3 24
MOV Rn, #data8 2 12
MOV Rn, A 1 12
MOV Rn, direkt 2 24
MOV-Bit, C 2 24
MOV direkt, #data8 3 24
MOV direkt, @Ri 2 24
MOV direkt, A 2 12
MOV direkt, Rn 2 24
MOV direkt, direkt 3 24
MOVC A, @A + DPTR 1 24
MOVC A, @A + PC 1 24
MOVC A, @DPTR + A 1 24
MOVC A, @PC + A 1 24
MOVX @DPTR, A 1 12
MOVX @Ri, A 1 24
MOVX A, @DPTR 1 24
MOVX A, @Ri 1 24
MUL AB 1 48
NOP 1 12
ORL A, #data8 2 12
ORL A, @Ri 1 12
ORL A, Rn 1 12
ORL A, direkt 2 12
ORL C, /bit 2 24
ORL C, !bit 2 24
ORL C, Bit 2 24
ORL direkt, #data8 3 24
ORL direkt, A 2 12
POP direkt 2 24
PUSH direkt 2 24
RET 1 24
RETI 1 24
RL A 1 12
RLC A 1 12
RR A 1 12
RRC A 1 12
SETB A 1 12
SETB Bit 2 12
SJMP relativ 2 24
SUBB A, #data8 2 12
SUBB A, @Ri 1 12
SUBB A, Rn 1 12
SUBB A, direkt 2 12
TAUSCHEN A 1 12
XCH A, #data8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, direkt 2 12
XCHD A, #data8 2 12
XCHD A, @Ri 1 12
XCHD A, Rn 1 12
XCHD A, direkt 2 12
XRL A, #data8 2 12
XRL A, @Ri 1 12
XRL A, Rn 1 12
XRL A, direkt 2 12
XRL direkt, #data8 3 12
XRL direkt, A 2 12

MONTEUR Richtlinien


As31 enthält die folgenden Assembler-Anweisungen:

.ORG-Ausdruck
Beginnen Sie mit der Assemblierung an der durch den Ausdruck expr angegebenen Adresse. Es ist ein Fehler aufgetreten
wenn der Assembler mit der Assemblierung über einen zuvor vorhandenen Adressraum beginnt
zusammengebaut.

.EQU-Symbol, Ausdruck
Symbol auf den Wert von expr setzen. Der Wert für expr muss beim ersten Mal bekannt sein
passieren, wenn die Zeile gefunden wird, die die .EQU enthält.

.BYTE expr, expr, ...
Füge die durch den Ausdruck angegebenen Bytes im Speicher zusammen. Eine Zeichenfolge kann auch sein
mit dieser Direktive angegeben.

.WORD expr, expr, ...
Stellen Sie die durch den Ausdruck angegebenen Wörter in den Speicher ein. Die Bytereihenfolge
verwendet wird, ist diejenige, die vom 8031 ​​verwendet wird.

.FLAG symbol1, symbol.[0-7]
Setzt symbol1 auf die durch den symbol.[0-7]-Ausdruck angegebene Bitadresse. Wo
[0-7] bezeichnet ein Zeichen zwischen 0 und 7. Die resultierende Bitadresse wird geprüft
Überprüfen Sie, ob es sich um eine gültige Bitadresse handelt.

.END Diese Anweisung wird ignoriert.

.SKIP-Ausdruck
Fügt den Wert von expr zum Standortzähler hinzu. Wird verwendet, um einen Block zu reservieren
nicht initialisierte Daten. Ausdruck sollte in Bytes angegeben werden.

LEXISCH KONVENTIONEN


– Alle Zeichen, die auf ein Semikolon folgen, werden ignoriert, bis ein Zeilenumbruch auftritt.

- Alle Zahlen sind standardmäßig dezimal, es sei denn, die Zahl beginnt mit einer der folgenden Zahlen:

0x oder 0X
Dies gibt eine hexadezimale Zahl an. dh. 0x00ff

0b oder 0B
Dies weist auf eine Binärzahl hin. (1er und 0er). dh. 0b1100110010

0 Dies zeigt eine Oktalzahl an. dh. 0377

- Alle Zahlen sind standardmäßig dezimal, es sei denn, die Zahl endet mit einer der folgenden Angaben
Zeichen:

b oder B Dies zeigt eine Binärzahl an. Es sei denn, oben wurde 0x verwendet. dh. 1010101b

h oder H. Dies gibt immer eine Hexadezimalzahl an, jedoch das erste Zeichen
nicht numerisch, dann muss entweder 0x oder 0 angegeben werden. Dies vermeidet Verwirrung
Der Assembler glaubt, eine Hexzahl sei ein Symbol. Zum Beispiel: 0ffh,
0xffh, 0XffH, 20h, 0x20 und 020h sind Mittel zur Angabe einer gültigen Hexadezimalzahl. Aber
Folgendes gilt nicht: ffh, 0ff.

d oder D Dies erzwingt eine Dezimalzahl. Es sei denn, 0X wurde verwendet. dh. 129d

o oder O Dadurch wird die Zahl als Oktalzahl interpretiert. dh. 377o

- Eine Zeichenkonstante kann als „c“ eingegeben werden, wobei c ein Zeichen ist. \b, \n, \r,
\t, \' \0 sind ebenfalls gültig. Eine Zeichenkonstante kann überall dort verwendet werden, wo eine Ganzzahl ist
Wert kann.

- Eine Zeichenfolge wird als eine Reihe von Zeichen eingegeben, die in doppelte Anführungszeichen „“ eingeschlossen sind. Ein Faden
ist nur mit der .BYTE-Direktive gültig. \b, \n, \r, \t, \" sind ebenfalls gültige Escapezeichen.
Allerdings ist \0 nicht.

- Anweisungen, Anweisungen und die Symbole: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
und C können ohne Verwirrung beim Assembler in Groß- oder Kleinbuchstaben eingegeben werden. Diese
Wörter können jedoch nicht als Benutzersymbol definiert werden. Es kann jedes Benutzersymbol verwendet werden
Das Gehäuse bleibt erhalten. Die Benutzersymbole „foo“ und „Foo“ sind also unterschiedlich, aber
„addc“ ist dasselbe wie „aDdC“.

- Ein Symbol kann ein beliebiges alphanumerisches Zeichen plus dem Unterstrich ('_') sein.

- Ausdrücke werden an den meisten Stellen akzeptiert, an denen ein Wert oder ein Symbol benötigt wird. Ein
Der Ausdruck besteht aus den folgenden Operatoren. Alle Operatoren ergeben eine Ganzzahl
Objekte (Operatoren mit höherer Priorität werden zuerst aufgeführt):

- Unäres Minus

& Bitweises UND.

| Bitweises ODER.

* Ganzzahlige Multiplikation.

/ Ganzzahlige Division

% Ganzzahlmodul

+ Ganzzahladdition.

- Ganzzahlsubtraktion.

- Zusätzlich zu diesen Operatoren kann ein spezielles Symbol „*“ zur Darstellung verwendet werden
Aktueller Standortzähler.

Beispiele:


Nachfolgend finden Sie ein Beispiel-Montageprogramm.

.org 0
Start: mov P3, #0xff ; Verwenden Sie alternative FNS auf P3
; LEDs auf P1 sind invertiert.
setb F0 ; hochklettern
mov A, #0x01 ; Anfangsbit

schreibe: cpl A ; Schreib es
Film P1, A
cpl A
eine Anrufverzögerung
jb F0, Aufstieg ; Klettern in welche Richtung?

kletterndn: rr A ; nach unten - nach rechts verschieben
jnb ACC.0, schreiben ; zurück für mehr
setb F0
ajmp schreiben

Aufstieg: rl A ; hoch - nach links verschieben
jnb ACC.7, schreiben ; zurück für mehr
clr F0
ajmp schreiben
.Ende ; Diese Direktive wird ignoriert.

AUTOREN


Ken Stauffer (Universität Calgary)[E-Mail geschützt] >
Martin Langer[E-Mail geschützt] >

AS31(1)

Nutzen Sie as31 online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad