AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

as31 - En ligne dans le Cloud

Exécutez as31 dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande as31 qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


as31 - Un assembleur Intel 8031/8051

SYNOPSIS


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

DESCRIPTION


As31 assemble infile.asm dans l’un des nombreux formats de sortie différents. La sortie sera
dans un fichier appelé infile.obj. L'extension .asm est requise.

OPTIONS


Les options doivent apparaître avant le nom du fichier d'entrée. Les deux options sont facultatives. Le texte de
chaque drapeau doit apparaître sur le même argument que le drapeau. Par exemple, "-Fod" est un valide
argument, mais "-F od" ne l'est pas.

-h Cela amène l'assembleur à imprimer un message détaillé décrivant ses options.
Le message est écrit dans l'erreur standard.

-l Cette option indique à l'assembleur de générer également un fichier de liste. Une liste sera
placé dans le fichier infile.lst. Où « infile » est le fichier en cours d’assemblage.
Cette option peut apparaître n'importe où avant infile.asm. L'option doit se produire de manière isolée
sur la ligne de commande.

Le fichier de liste affiche le code généré par l'assembleur en hexadécimal et jusqu'à 60 caractères
sont conservés du fichier source.

-s Cela amène l'assembleur à écrire la sortie sur la sortie standard.

-v Cela amène l'assembleur à imprimer un numéro de version sur la sortie standard.

-Aarg Cette option spécifie une chaîne spécifique au format qui est transmise au format
Générateur. Le format "tdr" et les formats srecord utilisent cette option.

-Fformat
Cette option spécifie le format de sortie à utiliser.

Actuellement, les seules options disponibles pour cela sont :

hex Ce format est le format Intel HEX attendu par un certain nombre d'EPROM
programmeurs et le débogueur PAULMON. Pour une utilisation avec certains programmeurs, le
L'extension du fichier de sortie devra peut-être être modifiée en .HEX pour être reconnue par
le programmeur. Aucune option -A n’est utilisée. Ce format devrait être le format par défaut si
aucune option -F n'est utilisée.

tdr Ce format génère un fichier asci de chiffres hexadécimaux formaté de telle manière, donc
qu'ils peuvent être lus par le débogueur de tdr. Un argument peut être spécifié (Voir
-Une option) qui transmettra une chaîne spécifique au format au générateur de format.
Dans ce cas, la chaîne d'argument représente un décalage à ajouter au
compteur de localisation. Ce décalage est spécifié en décimal et par défaut
64*1024 (0x10000). Pour spécifier un décalage de 100, vous auriez besoin de "-Ftdr
-A100" lors de l'appel de l'assembleur.

byte Ce format est simplement une adresse et un octet sur chaque ligne, en ascii. Non -A
option est utilisée.

od Ce format est similaire à la sortie de od(1). Le format se compose d'un
adresse suivie de seize octets hexadécimaux, suivi de l'équivalent
ASCII. Aucune option -A n’est utilisée.

srec2, srec3, srec4
Le générateur d'enregistrements est capable de générer une sortie avec l'un des formats 2, 3,
ou des adresses de 4 octets. L'option -A peut être utilisée pour définir l'adresse de base
offset, la valeur par défaut ici est 0x0000 (contrairement à Tor).

REMARQUE : Cet assembleur permet d'étendre les formats de sortie pour inclure de nombreux
différents formats de sortie.

-Defichier Cette option indique à l'assembleur d'écrire la sortie dans un fichier.

ASSEMBLEUR INSTRUCTIONS


Cet assembleur accepte les formats d'instructions standards 8031/8051. Vous trouverez ci-dessous une liste de
instructions et modes d’adressage.

CYCLES D'OCTETS D'INSTRUCTION
----------- ----- ------
Adresse d'appel AC11 2 24
AJOUTER A, #data8 2 12
AJOUTER A, @Ri 1 12
AJOUTER A, Rn 1 12
AJOUTER A, direct 2 12
ADDC A, #données8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, direct 2 12
Adresse AJMP11 2 24
ANL A, #données8 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, version 3 24
CJNE A, #data8, version 3 24
CJNE A, direct, rel 3 24
CJNE Rn, #data8, rel 3 24
CLR A1 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
DÉC @Ri 1 12
DÉC A 1 12
DÉC DPTR 1 12
DÉC Rn 1 12
DÉC 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, version 3 24
Bit JBC, version 3 24
JC relatif 2 24
JMP @A + DPTR1 24
JMP @DPTR + A 1 24
Bit JNB, rel 3 24
JNC relatif 2 24
JNZ relatif 2 24
JZ relatif 2 24
Adresse LCALL16 3 24
Adresse LJMP16 3 24
MOV @Ri, #données8 2 12
MOV @Ri, A 1 12
MOV @Ri, direct 2 24
MOV A, #données8 2 12
MOV A, @Ri 1 12
MOUVEMENT A, Rn 1 12
MOV A, direct 2 12
MOV C, bit 2 12
MOV DPTR, #données16 3 24
MOV Rn, #données8 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
MULAB 1 48
NOP 1 12
ORL A, #données8 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
POUSSER direct 2 24
RET 1 24
RÉTI 1 24
RL A 1 12
RLC A 1 12
RR A1 12
CRR A 1 12
SETB A 1 12
SETB bit 2 12
SJMP relatif 2 24
SUBB A, #données8 2 12
SUBB A, @Ri 1 12
SUBB A, Rn 1 12
SUBB A, direct 2 12
ÉCHANGE A 1 12
XCH A, #données8 2 12
XCH A, @Ri 1 12
XCHA, Rn 1 12
XCH A, direct 2 12
XCHD A, #données8 2 12
XCHD A, @Ri 1 12
XCHD A, Rn 1 12
XCHD A, direct 2 12
XRL A, #données8 2 12
XRL A, @Ri 1 12
XRL A, Rn1 12
XRL A, direct 2 12
XRL direct, #data8 3 12
XRL direct, A 2 12

ASSEMBLEUR DIRECTIVES


As31 inclut les directives assembleur suivantes :

Expression .ORG
Commencez l'assemblage à l'adresse spécifiée par l'expression expr. Une erreur se produit
si l'assembleur commence à assembler sur un espace d'adressage qui a été précédemment
assemblé en.

Symbole .EQU, expression
Définissez le symbole sur la valeur de expr. La valeur de expr doit être connue lors du premier
passer, lorsque la ligne contenant le .EQU est rencontrée.

.BYTE expr, expr, ...
Assemblez les octets spécifiés par l'expression en mémoire. Une chaîne peut également être
spécifié avec cette directive.

.WORD expr, expr, ...
Assemblez les mots spécifiés par l’expression en mémoire. L'ordre des octets
utilisé, est celui utilisé par le 8031.

.FLAG symbole1, symbole.[0-7]
Définit symbol1 sur l’adresse de bit spécifiée par l’expression symbol.[0-7]. Où
[0-7] désigne un caractère compris entre 0 et 7. L'adresse de bit résultante est vérifiée pour
voir s'il s'agit d'une adresse de bit valide.

.END Cette directive est ignorée.

.SKIP expression
Ajoute la valeur de expr au compteur d'emplacement. Utilisé pour réserver un bloc de
données non initialisées. Expr doit être en octets.

LEXICAL CONVENTIONS


- Tous les caractères suivant un point-virgule sont ignorés jusqu'à ce qu'une nouvelle ligne soit rencontrée.

- Tous les nombres sont par défaut décimaux, sauf si le nombre commence par l'un des éléments suivants :

0x ou 0X
Cela indique un nombre hexadécimal. c'est à dire. 0x00ff

0b ou 0B
Cela indique un nombre binaire. (1 et 0). c'est à dire. 0b1100110010

0 Ceci indique un nombre octal. c'est à dire. 0377

- Tous les nombres sont par défaut décimaux, sauf si le nombre se termine par l'un des éléments suivants
personnages:

b ou B Ceci indique un nombre binaire. Sauf si 0x a été utilisé ci-dessus. c'est à dire. 1010101b

h ou H Ceci indique toujours un nombre hexadécimal, cependant si le premier caractère est
non numérique, alors 0x ou 0 doit être spécifié. Cela évite toute confusion
l'assembleur en pensant qu'un nombre hexadécimal est un symbole. Par exemple : 0ffh,
0xffh, 0XffH, 20h, 0x20 et 020h sont des moyens de spécifier un chiffre hexadécimal valide. Mais
les éléments suivants ne le sont pas : ffh, 0ff.

d ou D Cela force un nombre à être décimal. Sauf si 0X a été utilisé. c'est à dire. 129j

o ou O Cela fait que le nombre est interprété comme octal. c'est à dire. 377o

- Une constante de caractère peut être saisie sous la forme « c », où c représente un caractère. \b, \n, \r,
\t, \' \0 sont également valides. Une constante de caractère peut être utilisée partout où un entier
la valeur peut.

- Une chaîne est saisie sous la forme d'un ensemble de caractères entourés de guillemets doubles "". Un string
n'est valide qu'avec la directive .BYTE. \b, \n, \r, \t, \" sont également des échappements valides.
Cependant, \0 ne l’est pas.

- Les instructions, directives et les symboles : R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
et C peuvent être saisis en majuscules ou en minuscules sans confusion avec l'assembleur. Ces
les mots ne peuvent cependant pas être définis comme un symbole utilisateur. N'importe quel symbole d'utilisateur peut être utilisé, et
le cas sera préservé. Ainsi, les symboles utilisateur "foo" et "Foo" sont différents, mais
"addc" est identique à "aDdC".

- Un symbole peut être n'importe quel caractère alphanumérique plus le trait de soulignement (« _ »).

- Les expressions sont acceptées dans la plupart des endroits où une valeur ou un symbole est nécessaire. Un
L'expression se compose des opérateurs suivants. Tous les opérateurs évaluent en nombre entier
objets (opérateurs de priorité supérieure répertoriés en premier) :

- Unaire moins

& ET au niveau du bit.

| OU au niveau du bit.

* Multiplication entière.

/ Division entière

% module entier

+ Addition entière.

- Soustraction entière.

- En plus de ces opérateurs, un symbole spécial '*' peut être utilisé pour représenter le
compteur de position actuelle.

EXEMPLES


Vous trouverez ci-dessous un exemple de programme d'assemblage.

.org 0
début : mov P3, #0xff ; utiliser des fns alternatifs sur P3
; les leds sur P1 sont inversées.
définir F0 ; grimper
mouvement A, #0x01 ; bit initial

écrire : cpl A ; écris le
mouvement P1, A
cpl A
un délai d'appel
jb F0, montée ; grimper dans quel sens ?

montée : rr A ; bas - décaler vers la droite
jnb ACC.0, écrivez ; revenir pour plus
définir F0
ajmp écrire

montée : rl A ; vers le haut - décaler vers la gauche
jnb ACC.7, écrivez ; revenir pour plus
clrF0
ajmp écrire
.fin ; cette directive ignorée.

AUTEURS


Ken Stauffer (Université de Calgary)[email protected]>
Martin Langer[email protected]>

AS31(1)

Utilisez as31 en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad