EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

as31 - Online în cloud

Rulați as31 în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda as31 care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


as31 - Un asamblator Intel 8031/8051

REZUMAT


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

DESCRIERE


As31 asambla infile.asm într-unul dintre mai multe formate de ieșire diferite. Ieșirea va fi
într-un fișier numit infile.obj. Este necesară extensia .asm.

OPŢIUNI


Opțiunile trebuie să apară înaintea numelui fișierului de intrare. Ambele opțiuni sunt opționale. Textul lui
fiecare steag trebuie să apară pe același argument ca și steag. De exemplu, „-Fod” este un valid
argument, dar „-F od” nu este.

-h Acest lucru face ca asamblerul să imprime un mesaj detaliat care descrie opțiunile sale.
Mesajul este scris la eroarea standard.

-l Această opțiune îi spune asamblatorului să genereze și un fișier de listare. O listă va fi
plasat în fișierul infile.lst. Unde „infile” este fișierul care este asamblat.
Această opțiune poate apărea oriunde înainte de infile.asm. Opțiunea trebuie să apară izolat
pe linia de comandă.

Fișierul de listare arată codul generat de asamblator în hexadecimal și până la 60 de caractere
sunt reținute din fișierul sursă.

-s Acest lucru face ca asamblatorul să scrie ieșirea în ieșirea standard.

-v Acest lucru face ca asamblatorul să imprime un număr de versiune la ieșirea standard.

-Aarg Această opțiune specifică un șir specific de format care este transmis formatului
generator. Atât formatul „tdr”, cât și formatele srecord utilizează această opțiune.

-Fformat
Această opțiune specifică formatul de ieșire care urmează să fie utilizat.

În prezent, singurele opțiuni disponibile pentru aceasta sunt:

hex Acest format este formatul Intel HEX, care este așteptat de un număr de EPROM
programatori și depanatorul PAULMON. Pentru utilizare cu unii programatori,
Este posibil ca extensia fișierului de ieșire să fie schimbată în .HEX pentru a fi recunoscută de
programatorul. Nu este utilizată o opțiune. Acest format ar trebui să fie implicit dacă
nu este utilizată opțiunea -F.

tdr Acest format generează un fișier Asci de cifre hexadecimale formate în așa fel, deci
că pot fi citite de depanatorul tdr. Se poate specifica un argument (vezi
-O opțiune) care va transmite un șir specific de format la generatorul de format.
În acest caz, șirul de argument reprezintă un offset de adăugat la
contor de locație. Această compensare este specificată în zecimale și este implicită
64*1024 (0x10000). Pentru a specifica și compensa 100, veți avea nevoie de „-Ftdr
-A100" la invocarea asamblatorului.

byte Acest format este pur și simplu o adresă și un octet pe fiecare linie, în ascii. Nu -A
este folosită opțiunea.

od Acest format este similar cu rezultatul de la od(1). Formatul constă dintr-un
adresa urmată de șaisprezece octeți hexazecimali, urmate de echivalentul
ASCII. Nu este utilizată o opțiune.

srec2, srec3, srec4
Generatorul srecord este capabil să genereze ieșire cu oricare dintre 2, 3,
sau adrese de 4 octeți. Opțiunea -A poate fi utilizată pentru a seta adresa de bază
offset, valoarea implicită aici este 0x0000 (spre deosebire de TDR).

NOTĂ: Acest asamblator permite ca formatele de ieșire să fie extinse pentru a include multe
diferite formate de ieșire.

-Ofile Această opțiune îi spune asamblatorului să scrie rezultatul într-un fișier.

ASSEMBLATOR INSTRUCȚIUNI


Acest asamblator acceptă formatele de instrucțiuni standard 8031/8051. Mai jos este o listă cu
instrucțiuni și moduri de adresare.

CICLURI DE BYTES DE INSTRUCȚIUNE
----------- ----- ------
ACALL adresa 11 2 24
ADAUGĂ A, #data8 2 12
ADAUGĂ A, @Ri 1 12
ADAUGĂ A, Rn 1 12
ADAUGĂ A, direct 2 12
ADDC A, #data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, direct 2 12
AJMP adresa11 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 C 1 12
CPL bit 2 12
DA A 1 12
DEC @Ri 1 12
1 DEC A 12
DEC DPTR 1 12
DEC Rn 1 12
DEC direct 2 12
DIV 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
Bit JB, rel 3 24
Bit JBC, rel 3 24
JC rudă 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
Bit JNB, rel 3 24
JNC rudă 2 24
rudă JNZ 2 24
JZ relativ 2 24
LCALL adresa 16 3 24
Adresa LJMP 16 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
Bit MOV, 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
împinge direct 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, direct 2 12
SWAP 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

ASSEMBLATOR DIRECTIVE


As31 include următoarele directive de asamblare:

.ORG expr
Începeți asamblarea la adresa specificată de expresia expr. Apare o eroare
dacă asamblatorul începe asamblarea pe un spațiu de adrese care a fost anterior
asamblat în.

.EQU simbol, expr
Setați simbolul la valoarea expr. Valoarea expr trebuie cunoscută în timpul primului
trece, când se întâlnește linia care conține .EQU.

.BYTE expr, expr, ...
Asamblați octeții specificați de expresie în memorie. Un șir poate fi, de asemenea
specificate prin această directivă.

.WORD expr, expr, ...
Asamblați cuvintele specificate de expresie în memorie. Ordinea octetilor
folosit, este cel folosit de 8031.

.FLAG simbol1, simbol.[0-7]
Setează simbolul 1 la adresa de biți specificată de expresia simbol.[0-7]. Unde
[0-7] denotă un caracter între 0 și 7. Adresa de biți rezultată este verificată la
vezi dacă este o adresă de biți validă.

.END Această directivă este ignorată.

.SĂRIȚI expr
Adaugă valoarea expr la contorul de locație. Folosit pentru a rezerva un bloc de
date neinițializate. Expr ar trebui să fie în octeți.

LEXICAL CONVENȚII


- Toate caracterele care urmează punctului și virgulă sunt ignorate până când se întâlnește o nouă linie.

- Toate numerele sunt implicit zecimale, cu excepția cazului în care numărul începe cu una dintre următoarele:

0x sau 0X
Aceasta indică un număr hexazecimal. adică. 0x00ff

0b sau 0B
Aceasta indică un număr binar. (1 și 0). adică. 0b1100110010

0 Aceasta indică un număr octal. adică. 0377

- Toate numerele sunt implicit zecimale, cu excepția cazului în care numărul se termină cu una dintre următoarele
de caractere:

b sau B Aceasta indică un număr binar. Cu excepția cazului în care 0x a fost folosit mai sus. adică. 1010101b

h sau H Acesta indică întotdeauna un număr hexadecimal, dar dacă primul caracter este
nenumerice, atunci trebuie specificat fie 0x, fie 0. Acest lucru evită confuzia
asamblatorul să creadă că un număr hexadecimal este un simbol. De exemplu: 0ffh,
0xffh, 0XffH, 20h, 0x20 și 020h sunt mijloace pentru a specifica o cifră hexadecimală validă. Dar
următoarele nu sunt: ​​ffh, 0ff.

d sau D Acest lucru forțează un număr la zecimal. Dacă nu a fost folosit 0X. adică. 129d

o sau O Acest lucru face ca numărul să fie interpretat ca octal. adică. 377o

- O constantă de caracter poate fi introdusă ca „c” unde c este un caracter. \b, \n, \r,
\t, \' \0 sunt de asemenea valide. O constantă de caracter poate fi folosită oriunde este un număr întreg
valoarea poate.

- Un șir este introdus ca un set de caractere cuprins între ghilimele duble „”. Un șir
este valabilă numai cu directiva .BYTE. \b, \n, \r, \t, \" sunt de asemenea escape valide.
Totuși, \0 nu este.

- Instrucțiuni, directive și simbolurile: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
iar C poate fi introdus cu litere mari sau mici, fără confuzie a asamblatorului. Aceste
Cuvintele însă nu pot fi definite ca simbol de utilizator. Poate fi folosit orice simbol de utilizator și
cazul va fi păstrat. Deci simbolurile utilizatorului „foo” și „Foo” sunt diferite, dar
„addc” este același cu „aDdC”.

- Un simbol poate fi orice caracter alfanumeric plus caracterul de subliniere ('_').

- Expresiile sunt acceptate în majoritatea locurilor unde este nevoie de o valoare sau un simbol. Un
expresia constă din următorii operatori. Toți operatorii evaluează la un număr întreg
obiecte (operatorii cu prioritate mai mare enumerați mai întâi):

- Minus unar

& Biți-înțelept ȘI.

| Bit-Wise SAU.

* Înmulțirea întregului.

/ Diviziune întreagă

% modul întreg

+ Adunarea întregului.

- Scăderea întregilor.

- În plus față de acești operatori, un simbol special „*” poate fi folosit pentru a reprezenta
contor locație curentă.

EXEMPLE


Mai jos este un exemplu de program de asamblare.

.org 0
start: mov P3, #0xff ; utilizați fns alternativ pe P3
; LED-urile de pe P1 sunt inversate.
setb F0 ; urcând în sus
mov A, #0x01 ; bitul initial

scrie: cpl A ; scrie
mov P1, A
cpl A
întârziere a apelului
jb F0, climbup ; urcând în ce direcție?

climbdn: rr A ; jos - comutați la dreapta
jnb ACC.0, scrie ; înapoi pentru mai mult
setb F0
ajmp scrie

climbup: rl A ; sus - schimbă stânga
jnb ACC.7, scrie ; înapoi pentru mai mult
clr F0
ajmp scrie
.Sfârșit ; această directivă ignorată.

AUTORI


Ken Stauffer (Universitatea din Calgary)[e-mail protejat]>
Martin Langer[e-mail protejat]>

AS31(1)

Utilizați as31 online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad