Questo è il comando crasm che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
crasm - Assemblatore a croce per 6800/6801/6803/6502/65C02/Z80
SINOSSI
crasmo [-O file di codice] [-slx] asmfile
Assemblare il programma del microprocessore asmfile e produrre file di output file di codice nell'Intel HEX
o in formato Motorola S Code. Inoltre, vengono prodotti un elenco di programmi e una tabella dei simboli
uscita standard. La versione attuale di crasmo può assemblare programmi per il 6800 6801
6803 6502 65C02, e Z80 processori. L'elenco completo viene stampato quando invochi crasmo
senza argomenti.
VERSIONI
-o file di codice
Specificare il nome del file di output. Nessun file di output viene prodotto senza questo
opzione.
-s Disattiva avvisi.
-l Disabilita l'output dell'elenco dei programmi.
-x Disabilita l'output della tabella dei simboli.
SINTASSI
Ogni riga del programma di montaggio dovrebbe seguire uno dei seguenti modelli, dove il
le parentesi delimitano le parti opzionali.
[;commento]
etichetta = espressione [;commento]
[etichetta] mnemonico operando [;commento]
I commenti sono introdotti da un punto e virgola (;) e si estendono fino alla fine della riga. Le etichette sono
identificatori contenenti fino a 36 caratteri alfanumerici (inclusi punto e trattino basso).
Le etichette non possono iniziare con una cifra. Il formato del campo mnemonici e operandi dipende
sul microprocessore selezionato. Alcuni mnemonici sono validi per tutti i processori e sono
usato per dare direttive all'assemblea. Questi sono noti come "pseudo-mnemonici".
per il tuo brand
Le etichette sono identificatori che rappresentano
— un indirizzo assoluto,
— un indirizzo relativo (codice indipendente dalla posizione),
— un registro,
— un elenco di registri,
— un bit specifico a un indirizzo specifico,
- o un mnemonico.
La maggior parte delle etichette è composta da un massimo di 36 caratteri alfanumerici, punti (.) o puoi
sottolineature (_). Le etichette non possono iniziare con una cifra. Sono insensibili alle maiuscole.
Etichette che iniziano con un punto (.) sono etichette locali il cui ambito è limitato al
macro in cui sono definiti, o al segmento di codice delimitato dalla pseudo-mnemonica
CODICE or MANICHINO.
L'etichetta "stella" predefinita (*) rappresenta il contatore di programma corrente, vale a dire,
l'indirizzo in cui verrà codificata la successiva istruzione del codice assembly. Altro predefinito
le etichette includono tutti gli pseudo-mnemonici, i mnemonici specifici per microprocessori e il registro
nomi.
Costante
L'assemblato riconosce le costanti numeriche espresse in decimale, esadecimale, ottale,
binario o ascii.
? ?
│Tipologia Formato Esempi │
? ?
decimale dddd 1234, 675, 12, 1, Ma non 0.12. ?
? ?
esadecimale $dddd $ fd12, $ 2 AC, $0. ?
│ ddddH 03H, 2da7H, 0FC84H, Ma non FC84H. ?
│ 0Xdddd 0x03, 0x2AC, 0Xfc84. ?
? ?
ottale ddddQ 377Q, 012412Q. ?
? ?
binario %dddd % 01110110, % 1100. ?
│ ddddB 01110110B, 1100B. ?
│ 0Bdddd 0b1100 │
? ?
ascii 'cccc' 'un', "AB", '"', '\n', '\''. ?
│ "cccc" "\T", "\"", "a'b". ?
? ?
Espressioni
Come le etichette, le espressioni possono rappresentare un indirizzo assoluto (abs), un indirizzo relativo per
codice indipendente dalla posizione (rel), un registro (reg), o un elenco di registri (registrarsi), Oppure a
riferimento a un bit specifico a un indirizzo specifico (spec).
I seguenti operatori sono riconosciuti sulle espressioni.
? ?
│Sintassi Risultato Descrizione │
? ?
│ abs{abs} spec bit di riferimento, ad es Pia{3} │
│ INDIRIZZO(abs) abs indirizzo da un bit di riferimento │
│ PO(abs) abs numero di bit da un riferimento di bit │
? ?
│ - abs abs complemento a due
│ ~ abs abs il proprio complemento
? ?
│ abs << abs abs spostamento a sinistra │
│ abs >> abs abs spostamento a destra │
? ?
│ abs | abs abs bit a bit o
│ abs & abs abs bit a bit e │
│ abs ^ abs abs xor bit a bit
? ?
│ abs * abs abs moltiplicazione │
│ abs * abs abs divisione
? ?
│ abs + abs abs aggiunta │
│ rel + abs rel aggiunta │
│ abs - abs abs sottrazione │
│ rel - abs rel sottrazione │
│ rel - rel abs sottrazione │
? ?
│ reg - reg registrarsi registro gamma │
│ registrarsi \ reg registrarsi lista dei registri │
? ?
La tabella elenca gli operatori in ordine di precedenza decrescente. Le parentesi possono essere usate per
evitare ambiguità. Viene generato un avviso quando un'intera espressione è circondata da
parentesi e può essere confuso con una modalità di indirizzamento a microprocessore.
Esempi:
(base+$12) >> 8 & 0xff00
'A'-80H
(base+0x12)
L'ultimo esempio provoca un avvertimento perché le parentesi non erano necessarie e potrebbero
suggerire una modalità di indirizzamento del microprocessore.
Tutte le espressioni aritmetiche sono valutate su 32 bit. Overflow delle operazioni aritmetiche
silenziosamente. I valori aritmetici vengono quindi troncati alla dimensione implicata dal micro-
mnemonico del processore. Questo troncamento potrebbe causare un messaggio di avviso.
Esempi: tutte le seguenti istruzioni
(6502) lda # $ 1234
(6800) ldaa $ 1234, x
(Z80) ld (ix+0C2H), b
causare un avvertimento
>>> ATTENZIONE: operando traboccare
Tuttavia espressione
$1123454 * 1298992
trabocca silenziosamente.
Pseudo-mnemonici
I seguenti pseudo-mnemonici sono sempre riconosciuti.
CPU nomec
Indica il tipo di microprocessore selezionato. Questo deve apparire prima di un micro-
istruzioni specifiche del processore. I possibili valori di nomec sono elencati quando tu
invocare crasmo senza argomenti. L'elenco attuale include 6800 6801 6803 6502
65C02, e Z80
USCITA formato binario
Indica il formato del file di output. Discussione formato binario può assumere valori SCODO
per produrre un file di output utilizzando il codice S di Motorola, oppure HEX per Intel Hex
formato. L'impostazione predefinita dipende dal microprocessore selezionato.
CODICE
Delimitare l'ambito delle etichette locali e introdurre una sezione del programma.
MANICHINO Delimitare l'ambito delle etichette locali e introdurre una sezione di programma falsa la cui unica
l'effetto è definire etichette senza generare codice.
etichetta EQUIPAGGIARE espressione
etichetta = espressione
Definire il valore dell'etichetta etichetta. Le etichette definite utilizzando queste direttive possono essere
ridefinito più avanti nel programma.
[etichetta] DB espressione[,...,espressione]
Inserire i byte di dati specificati (8 bit).
[etichetta] DW espressione[,...,espressione]
Inserire le parole dati specificate (16 bit). L'ordinamento dei byte dipende da
microprocessore selezionato.
[etichetta] DL espressione[,...,espressione]
Inserire i dati long specificati (32 bit). L'ordinamento dei byte dipende da
microprocessore selezionato.
[etichetta] DDB espressione[,...,espressione]
Inserisci i doppi byte specificati (16 bit). L'ordinamento dei byte è l'opposto di
il consueto ordinamento dei byte per il microprocessore selezionato.
[etichetta] ASC stringacostante
Inserisci la rappresentazione ascii della stringa stringacostante . La stringa deve essere
delimitato da virgolette doppie. Le sequenze di escape C \r, \n, \t, \0, \', \"e \\
sono riconosciuti.
[etichetta] DS contaespr,[valexpr]
inserire contaespr byte con valore valexpr. Il valore di default è zero.
[etichetta] ALLINEARE ANCHE
[etichetta] ALLINEARE Quota
Inserire un byte nullo per rendere il contatore del programma pari o dispari.
IF condesp
...
ELSE
...
ENDC
Assemblaggio condizionale: If espressione condesp è diverso da zero, elabora le linee che si trovano
tra l' IF e il ELSE pseudo-mnemonici. Altrimenti elabora le linee localizzate
tra l' ELSE e il ENDC pseudo-mnemonici. Istruzioni di montaggio condizionale
può essere nidificato. Il ELSE parte può essere omessa.
etichetta MACRO
...
FINE
Definisci un nuovo mnemonico etichetta equivalente a tutte le istruzioni che si trovano tra
MACRO e FINE pseudo-mnemonici. Le invocazioni della macro possono specificare un elenco di
operandi separati da virgole. Le sequenze di caratteri \1, \2... \N nella macro
definizione sono sostituiti dagli operandi forniti. La sequenza dei caratteri \0 is
sostituito dal numero di operandi forniti.
EXITTM
Questo pseudo mnemonico può essere utilizzato all'interno di una definizione di macro per uscire dalla macro. Questo
è utile in combinazione con la pseudo-mnemonica dell'assemblaggio condizionale.
INCLUDERE Nome del file
Forza l'assemblatore a elaborare il file denominato Nome del file al punto attuale.
ELENCO ON
ELENCO OFF
Abilita o disabilita la produzione di un'inserzione (l'impostazione predefinita è attiva).
LISTA ON
LISTA OFF
Abilitare o disabilitare la produzione di una quotazione per le filiali non attive di a
costrutto di assieme condizionale (l'impostazione predefinita è attiva).
ILISTA ON
ILISTA OFF
Abilita o disabilita la produzione di un elenco per i file inclusi (l'impostazione predefinita è disattivata).
MLIST ON
MLIST OFF
Abilita o disabilita la produzione di un elenco per le espansioni macro (l'impostazione predefinita è
spento.)
NAM titolo
Fornisci il nome titolo per l'intestazione delle pagine di elenco.
PAGINA
Avvia una nuova pagina di elenco.
PAGINA colonne,righe
Specificare la dimensione di una pagina dell'inserzione.
SALTA numero
Saltare numero Linee.
FAIL messaggio
Genera un messaggio di errore messaggio.
ESEMPIO
Ecco un piccolo programma 6502:
cpu 6502
cout = $fded ; dalla visualizzazione a carattere
* = $300 ; assemblare at $300
codice
pstring ldy #0
.1 lda messaggio, sì
beq .2
JSR cout
ins
.2 bene .1
rts
messaggio asc "Questo is , il messaggio "
codice
CREDITS
Leon Bottou, settembre 1987.
Usa crasm online utilizzando i servizi onworks.net