EngelsFransSpaans

Ad


OnWorks-favicon

as31 - Online in de cloud

Voer as31 uit in OnWorks gratis hostingprovider via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht as31 die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


as31 - Een Intel 8031/8051 assembler

KORTE INHOUD


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

PRODUCTBESCHRIJVING


As31 assembleert infile.asm in een van de verschillende uitvoerformaten. De uitvoer zal zijn:
in een bestand met de naam infile.obj. De .asm-extensie is vereist.

OPTIES


De opties moeten vóór de naam van het invoerbestand verschijnen. Beide opties zijn optioneel. de tekst van
elke vlag moet op hetzelfde argument staan ​​als de vlag. Bijvoorbeeld, "-Fod" is een geldige
argument, maar "-F od" niet.

-h Dit zorgt ervoor dat de assembler een uitgebreid bericht afdrukt waarin de opties worden beschreven.
Het bericht wordt naar de standaardfout geschreven.

-l Deze optie vertelt de assembler om ook een lijstbestand te genereren. Een lijst zal zijn
geplaatst in het bestand infile.lst. Waar 'infile' het bestand is dat wordt samengesteld.
Deze optie kan overal vóór infile.asm verschijnen. De optie moet geïsoleerd voorkomen
op de opdrachtregel.

Het lijstbestand toont de door de assembler gegenereerde code in hex en maximaal 60 tekens
worden bewaard uit het bronbestand.

-s Dit zorgt ervoor dat de assembler de uitvoer naar de standaarduitvoer schrijft.

-v Dit zorgt ervoor dat de assembler een versienummer afdrukt naar de standaarduitvoer.

-Aarg Deze optie specificeert een formaatspecifieke tekenreeks die aan het formaat wordt doorgegeven
generator. Beide formaten "tdr" en de srecord-formaten gebruiken deze optie.

-Formaat
Deze optie specificeert het uitvoerformaat dat moet worden gebruikt.

Momenteel zijn de enige beschikbare opties hiervoor:

hex Dit formaat is het Intel HEX-formaat dat wordt verwacht door een aantal EPROM
programmeurs en de PAULMON debugger. Voor gebruik met sommige programmeurs, de
de extensie van het uitvoerbestand moet mogelijk worden gewijzigd in .HEX om te worden herkend door
de programmeur. Nee - Er wordt een optie gebruikt. Dit formaat zou de standaard moeten zijn als
er wordt geen -F-optie gebruikt.

tdr Dit formaat genereert een asci-bestand met hexadecimale cijfers die op zo'n manier zijn geformatteerd, dus
dat ze kunnen worden gelezen door de debugger van tdr. Er kan een argument worden opgegeven (Zie
-Een optie) die een formaatspecifieke tekenreeks doorgeeft aan de formaatgenerator.
In dit geval vertegenwoordigt de argumentreeks een offset om toe te voegen aan de
locatie teller. Deze offset wordt gespecificeerd in decimalen en is standaard
64*1024 (0x10000). Om 100 te specificeren en te compenseren, hebt u "-Ftdr . nodig
-A100" bij het aanroepen van de assembler.

byte Dit formaat is gewoon een adres en een byte op elke regel, in ascii. Nee een
optie wordt gebruikt.

od Dit formaat is vergelijkbaar met de uitvoer van od(1). Het formaat bestaat uit een
adres gevolgd door zestien hexadecimale bytes, gevolgd door het equivalent
ASCII. Nee - Er wordt een optie gebruikt.

srec2, srec3, srec4
De srecordgenerator kan output genereren met een van de 2, 3,
of 4 byte-adressen. De -A optie kan worden gebruikt om het basisadres in te stellen
offset, de standaard hier is 0x0000 (in tegenstelling tot ToR).

OPMERKING: Met deze assembler kunnen de uitvoerformaten worden uitgebreid met veel
verschillende uitvoerformaten.

-Ofiel Deze optie vertelt de assembler om de uitvoer naar een bestand te schrijven.

ASSEMBLER INSTRUCTIES


Deze assembler accepteert standaard 8031/8051 instructieformaten. Hieronder is een lijst van
instructies en adresseringsmodi.

INSTRUCTIE BYTE CYCLI
----------- ----- ------
ACALL-adr11 2 24
VOEG A toe, #data8 2 12
VOEG A toe, @Ri 1 12
VOEG A toe, Rn 1 12
VOEG A toe, direct 2 12
ADDC A, #data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, direct 2 12
AJMP-adr11 2 24
ANL A, #data8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, direct 2 12
ANL C, /bit 2 24
ANL C, !bit 2 24
ANL C, bit 2 24
ANL direct, #data8 3 24
ANL direct, A 2 12
CJNE @Ri, #data8, rel 3 24
CJNE A, #data8, rel 3 24
CJNE A, direct, 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 C1 12
CPL-bit 2 12
D A 1 12
DEC @Ri 1 12
DEC A 1 12
DEC DPTR 1 12
DEC Rn 1 12
DEC direct 2 12
AFDELING AB 1 48
DJNZ Rn, rel 2 24
DJNZ direct, rel 3 24
INC @Ri 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
INC direct 2 12
JB-bit, rel 3 24
JBC-bit, rel 3 24
JC relatief 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
JNB-bit, rel 3 24
JNC relatief 2 24
JNZ relatief 2 24
JZ relatief 2 24
LCALL-adr16 3 24
LJMP-adr16 3 24
MOV @Ri, #data8 2 12
MOV @Ri, A 1 12
MOV @Ri, direct 2 24
MOV A, #data8 2 12
MOV A, @Ri 1 12
MOV A, Rn 1 12
MOV A, direct 2 12
MOV C, bit 2 12
MOV DPTR, #data16 3 24
MOV Rn, #data8 2 12
MOV Rn, A 1 12
MOV Rn, direct 2 24
MOV-bit, C 2 24
MOV direct, #data8 3 24
MOV direct, @Ri 2 24
MOV direct, A 2 12
MOV direct, Rn 2 24
MOV direct, direct 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, direct 2 12
ORL C, /bit 2 24
ORL C, !bit 2 24
ORL C, bit 2 24
ORL direct, #data8 3 24
ORL direct, A 2 12
POP direct 2 24
DUW direct 2 24
RET 1 24
RETI 1 24
RL A 1 12
RLC A 1 12
RR EEN 1 12
RR A 1 12
SETB A 1 12
SETB-bit 2 12
SJMP relatief 2 24
SUBB A, #data8 2 12
SUBB A, @Ri 1 12
SUBB A, Rn 1 12
SUBB A, direct 2 12
WISSELEN A 1 12
XCH A, #data8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, direct 2 12
XCHD A, #data8 2 12
XCHD A, @Ri 1 12
XCHD A, Rn 1 12
XCHD A, direct 2 12
XRL A, #data8 2 12
XRL A, @Ri 1 12
XRL A, Rn 1 12
XRL A, direct 2 12
XRL direct, #data8 3 12
XRL direct, A 2 12

ASSEMBLER RICHTLIJNEN


As31 bevat de volgende assembler-richtlijnen:

.ORG expr
Begin met assembleren op het adres dat is opgegeven door de uitdrukking expr. Er treedt een fout op
als de assembler begint te assembleren over een adresruimte die eerder is geweest
in elkaar gezet.

.EQU symbool, expr
Stel symbool in op de waarde van expr. De waarde voor expr moet bekend zijn tijdens de eerste
pass, wanneer de regel met de .EQU wordt aangetroffen.

.BYTE expr, expr, ...
Assembleer de bytes die door de uitdrukking worden gespecificeerd in het geheugen. Een string kan ook zijn
gespecificeerd met deze richtlijn.

.WORD uitdr, uitdr, ...
Verzamel de woorden die door de uitdrukking worden gespecificeerd in het geheugen. De bytevolgorde
gebruikt, is die van de 8031.

.VLAG symbool1, symbool.[0-7]
Stelt symbol1 in op het bitadres gespecificeerd door de symbol.[0-7]-expressie. Waar
[0-7] geeft een teken aan tussen 0 en 7. Het resulterende bitadres wordt gecontroleerd op
kijk of het een geldig bitadres is.

.END Deze instructie wordt genegeerd.

.OVERSLAAN expr
Voegt de waarde van expr toe aan de locatieteller. Gebruikt om een ​​blok van . te reserveren
niet-geïnitialiseerde gegevens. Uitdr moet in bytes zijn.

LEXISCH OVEREENKOMSTEN


- Alle tekens na een puntkomma worden genegeerd totdat een nieuwe regel wordt gevonden.

- Alle getallen zijn standaard decimaal, tenzij het getal begint met een van de volgende:

0x of 0X
Dit geeft een hexadecimaal getal aan. d.w.z. 0x00ff

0b of 0B
Dit geeft een binair getal aan. (1-en en nullen). d.w.z. 0b0

0 Dit geeft een octaal getal aan. d.w.z. 0377

- Alle getallen zijn standaard decimaal, tenzij het getal eindigt met een van de volgende:
karakters:

b of B Dit geeft een binair getal aan. Tenzij hierboven 0x werd gebruikt. d.w.z. 1010101b

h of H Dit geeft altijd een hexadecimaal getal aan, maar als het eerste teken is
niet-numeriek, dan moet 0x of 0 worden opgegeven. Dit voorkomt verwarring
de assembler te laten denken dat een hexadecimaal getal een symbool is. Bijvoorbeeld: 0ffh,
0xffh, 0XffH, 20h, 0x20 en 020h zijn middelen om een ​​geldig hexadecimaal getal op te geven. Maar
de volgende zijn niet: ffh, 0ff.

d of D Dit dwingt een getal tot decimaal. Tenzij 0X werd gebruikt. d.w.z. 129d

o of O Hierdoor wordt het getal als octaal geïnterpreteerd. d.w.z. 377o

- Een tekenconstante kan worden ingevoerd als 'c' waarbij c een teken is. \b, \n, \r,
\t, \' \0 zijn ook geldig. Een tekenconstante kan overal worden gebruikt waar een geheel getal
waarde kan.

- Een tekenreeks wordt ingevoerd als een reeks tekens tussen dubbele aanhalingstekens "". Een draad
is alleen geldig met de .BYTE-richtlijn. \b, \n, \r, \t, \" zijn ook geldige escapes.
\0 is dat echter niet.

- Instructies, richtlijnen en de symbolen: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
en C kunnen in hoofdletters of kleine letters worden ingevoerd zonder verwarring bij de assembler. Deze
woorden kunnen echter niet als gebruikerssymbool worden gedefinieerd. Elk gebruikerssymbool mag worden gebruikt, en
zaak behouden blijft. Dus de gebruikerssymbolen "foo" en "Foo" zijn verschillend, maar
"addc" is hetzelfde als "aDdC".

- Een symbool kan elk alfanumeriek teken zijn plus het onderstrepingsteken ('_').

- Uitdrukkingen worden geaccepteerd op de meeste plaatsen waar een waarde of een symbool nodig is. Een
expressie bestaat uit de volgende operatoren. Alle operatoren evalueren naar integer
objecten (operators met hogere prioriteit als eerste vermeld):

- Unaire min

& Bitgewijs EN.

| Bit-Wise OF.

* Integer vermenigvuldiging.

/ Gehele deling

% Integer-modulus

+ Geheel getal optellen.

- Geheel aftrekken.

- Naast deze operatoren kan een speciaal symbool '*' worden gebruikt om de
huidige locatieteller.

Voorbeelden


Hieronder vindt u een voorbeeld van een montageprogramma.

.org 0
start: mov P3, #0xff ; gebruik alternatieve fns op P3
; leds op P1 zijn omgekeerd.
setb F0 ; omhoog klimmen
mov A, #0x01 ; beginbit

schrijf: cpl A ; Schrijf het
beweging P1, A
cpl A
een oproep vertraging
jb F0, naar boven klimmen; welke kant op klimmen?

beklommen: rr A ; omlaag - naar rechts verschuiven
jnb ACC.0, schrijf ; terug voor meer
setb F0
ajmp schrijven

naar boven klimmen: rl A ; omhoog - naar links schuiven
jnb ACC.7, schrijf ; terug voor meer
kl F0
ajmp schrijven
.einde ; deze richtlijn genegeerd.

AUTEURS


Ken Stauffer (Universiteit van Calgary)[e-mail beveiligd]>
Martin Langer[e-mail beveiligd]>

AS31(1)

Gebruik as31 online met onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad