Visualizza il feed RSS

L'angolo di Antonio ...

Tutorial di base per D64ASM

Valuta questo inserimento
di pubblicato il 10-03-2012 alle 19:12 (2471 Visite)
Eccomi di nuovo con le indicazioni per utilizzare il mio assembler D64ASM (nella versione attuale, la 47).

Buon divertimento.

=======
Simboli
=======

Un simbolo è un nome univoco che deve iniziare con un carattere alfabetico o un _ e che continua con altri caratteri alfabetici, numerici o _

Può rappresentare un indirizzo (a 16 bit) quando usato come

LABEL

o un valore simbolico se usato con il simbolo

=

di assegnazione come in

SYMB = 1


=====
Direttive
=====

.ORG <numexp>
Imposta l'indirizzo attuale nel Program Counter.
Il parametro (obbligatorio) è una espressione numerica con valore intero a 16 bit senza segno che indica un indirizzo da $0000 a $FFFF

Esempio: .ORG $C000


.INCLUDE "filename"
Indica un nuovo file sorgente da assemblare a partire da questo punto.
Il parametro obbligatorio, di tipo costante stringa, indica il file del sorgente da includere.
L'assemblaggio continua con la prima linea del nuovo file e riprende dalla linea seguente l'INCLUDE

Esempio: .INCLUDE "Defs.Inc"


.DB <numexp>[,<numexp> ...]
Genera una serie di valori numerici di un byte
(8 bit, da 0 a 255 o da -128 a 127) uguali al risultato delle singole espressioni separate da virgola.
Almeno una espressione è obbligatoria.

Esempio: .DB $10, $20, $30


.DW <numexp>[,<numexp> ...]
Genera una serie di valori numerici di una word
(16 bit, da 0 a 65535 o da -32768 a 327677) uguali al risultato delle singole espressioni separate da virgola.
Almeno una espressione è obbligatoria.

Esempio: .DW $1000, $2000, $3000


.DD <numexp>[,<numexp> ...]
Genera una serie di valori numerici di una doppia word
(32 bit, da 0 a 4294967295 o da -2147483648 a 2147483647) uguali al risultato delle singole espressioni separate da virgola.
Almeno una espressione è obbligatoria.

Esempio: .DD $10000000, $20000000, $30000000


.ASCII "stringa"
Genera la sequenza di valori ASCII della stringa costante passata come parametro.
La stringa è obbligatoria.

Esempio: .ASCII "COMMODORE 64"


.ASCIS "stringa"
Genera la sequenza di valori ASCII della stringa costante passata come parametro;
nell'ultimo valore il bit 7 è posto a 1.
La stringa è obbligatoria.

Esempio: .ASCIS "RUN"


.ASCIZ "stringa"
Genera la sequenza di valori ASCII della stringa costante passata come parametro;
viene aggiunto un byte (0 binario) alla fine.
La stringa è obbligatoria.

Esempio: .ASCIZ "PRESS PLAY ON TAPE"


.END
Senza parametri, interrompe l'assemblaggio del file sorgente corrente, ignorando le restanti linee.

Esempio: .END


========
Opcode 65XX
========

Tutti gli opcode sono riconosciuti con la seguente sintassi per i modi di indirizzamento (esempi)

CLC Implicito
ASL A Accumulatore
LDA #$20 Immediato
LDA $30 Pagina Zero
LDA $30,X Pagina Zero + registro X
LDA $30,Y Pagina Zero + registro Y
LDA $3000 Assoluto
LDA $3000,X Assoluto + registro X
LDA $3000,Y Assoluto + registro Y
LDA ($20,X) Indicizzato Indiretto
LDA ($20),Y Indiretto Indicizzato
JMP ($1000) Indiretto
BNE LABEL Relativo

aggiornamento da 11-03-2012 a 20:43 di AntonioG

Categorie
Programmazione

Commenti