Image non trouvée !Assembleur 6502

 

Editeur/assembleur 6502:

J'ai développé cette application sous Windows pour permettre de développer sur un Atari 800XL en assembleur !!!

En fait, il s'agit d'un programme exemple sur le cours développement en C sous Windows. Il s'agit aussi d'une base pour le développement de ce type de programme. L'application est donc loin d'être complète. Il y a quand même le minimum : Editeur et assembleur. Les fichiers générés pourront alors être chargés dans un émulateur 800XL !

Si cela vous intéresse, suivez moi !

 

Un site où trouver un assembleur 6502 en shareware:

http://www.ticalc.org/archives/files/fileinfo/15/1504.html

Ce programme tourne sous DOS. Il permet en fait d'assembler suivant différents types de microprocesseurs dont le 6502.

Pour l'utiliser, tapez tasm -65 -b nomdusource nomducible

Pour avoir de l'aide, tapez tasm

Vous obtiendrez ceci:

tasm -<nn> [-options] src_file [obj_file [lst_file [exp_file [sym_file]]]]
Option Flags defined as follows:
-<nn> Table (48=8048 65=6502 51=8051 85=8085 80=z80)
(68=6800 05=6805 70=TMS7000 96=8096)
(3210=TMS32010 3225=TMS32025)
-t<tab> Table (alternate form of above)
-a Assembly control (strict error checking)
-b Produce object in binary format
-c Object file written as a contigous block
-d<macro> Define macro
-e Show source lines with macros expanded
-f<xx> Fill entire memory space with 'xx' (hex)
-g<x> Obj format (0=Intel,1=MOSTech,2=Motorola,3=bin,4=IntelWord)
-h Produce hex table of the assembled code
-i Ignore case in labels
-l[al] Produce a label table in the listing[l=long,a=all]
-m Produce object in MOS Technology format
-o<xx> Define number of bytes per obj record = <xx>
-p<lines> Page the listing file
-q Quiet, disable the listing file
-r<kb> Set read buffer size (KB)
-s Write a symbol table file
-x<xx> Enable extended instruction set (if any)

 

Les instructions de l'assembleur:

.ORG adresse

Indique que le code sera à l'adresse adresse. Ce qui veut dire que tous les sautsabsolus utiliseront comme origine l'adresse $0600

label .EQU nombre

label .EQU nombre + nombre

Définition d'un label qui correspond en fait à un nombre qui peut être éventuellement une adresse. Ceci permettant une lecture plus facile du code.

Les labels pour des boucles: il suffit d'indiquer un nom de label en démarrant du bord le plus à gauche.

Il faut terminer son code assembleur par .END. Cette commande permettant normalement à l'assembleur d'indiquer que le fichier semble ok. L'absence du .END provoquant une alerte, fin de fichier atteint, mais absence de END (fichier corrompu ?).

Voici un exemple :

0001

0600

.ORG

$0600

0002

0600

COULEUR

.EQU

$2C6

0003

0600

0004

0600

68

PLA

0005

0601

A2

00

LDX

#0

0006

0603

E8

LOOP

INX

0007

0604

8E

C6

02

STX

COULEUR

0008

0607

D0

FA

BNE

LOOP

0009

0609

60

RTS

0010

060A

.END

0011

060A

 

Pour définir un block de donnée:

message .DB "Salut"

ou

tableau .DB 10,20,30,40

 

Pour charger un registre avec la partie haute d'une adresse:

LDX ADRESSE/256

Avec la partie basse:

LDX ADRESSE&255

ADRESSE .DB "Texte"

 

Vous trouverez ici un tableau d'instructions de différents assembleurs