Envoyer un e-mail à Collection ThomsonCollection Thomson
EditoForum 2002Liens
Nanoreseau
Docs
Logiciels
Matériel
Imprimer le documentLa documentation de Prehis-To
Retour à la liste

Memento de ASSEMBLER 2.0

Récapitulatif des commandes moniteur

/ Désassemblage
       Les curseurs haut et bas servent ensuite à passer au désassemblage        précédent ou suivant. Le curseur droit sert à passer au désassemblage à partir de l'adresse indiquée par l'opérande dans le        cas d'un désassemblage mnémonique.
A Sortie en ASCII (ASCII Output)
       La sortie du désassemblage sera traduite alors en ASCII.
B Affiche la liste des points d'arrêt (Breakpoint)
C Continuer l'exécution du programme machine (Continue)
       Reprend l'exécution du programme en stoppant à chaque point d'arrêt programmé valide.
D Affichage d'un bloc de 128 octets (Dump)
       sous la forme:
       D<adresse>
       Exemple: DE000 affiche 128 octets à partir de l'adresse $E000
E Passage d'un fichier sur cassette (End Of File)
G Exécution d'un programme machine (Go)
       Exemple: GDEBUT engage l'exécution à l'étiquette "DEBUT".
H Désassemblage en symbolique et numérique
       Si la valeur numérique rencontrée correspond à un symbole, elle sera affichée sous forme de symbole. Sinon, sous forme numérique.        Ce mode de désassemblage est le mode initial de ASSEMBLER.
I Détermine le type d'input (Input)
       Utilisable seulement en mode combiné. Exemples:
       IH Les valeurs d'entrée devront être en hexadécimal
       ID Les valeurs d'entrées devront être en décimal
J Copie d'une zone mémoire
       sous la forme J <adresse source> <adresse destination> <taille>
       Exemple:
       J E000 A000 4
    copie la zone $E000-$E003 en $A000-$A003 (4 octets en tout)
K Ajoute un point d'arrêt programmé
       Exemple:
       KDEBUT stoppera le programme à l'étiquette DEBUT lors de l'exécution.
L Chargement d'un fichier binaire (Load)
       sous la forme:
      L<numéro de lecteur>:<nom de fichier>.<suffixe> <offset>
       L'offset d'implantation, s'il est omis, est égal à $0000.
       Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
       Le numéro de lecteur est "C" pour la cassette.
M Output en mnémonique
       La sortie du désassemblage se fera en mnémonique.
N Output en numérique
       La sortie du désassemblage se fera en numérique 8 bits.
       En mode combiné:
       N1 la sortie numérique sera en 8 bits
       N2 la sortie numérique sera en 16 bits
O Détermine le type d'output (OutPut)
       Utilisable seulement en mode combiné. Exemples:
       OH Les valeurs de sortie seront en hexadécimal
       OD Les valeurs de sortie seront en décimal
P Active la sortie sur imprimante (Print)
Q Retour au menu d'ASSEMBLER (Quit)
R Affichage des registres (Registers)
S Sauvegarde d'un programme binaire (Save)
       sous la forme:
       S<numéro de lecteur>:<nom de fichier>.<suffixe> <a0> <a1> <exec>        a0 étant d'adresse de départ, a1 l'adresse de fin et exec l'adresse        d'exécution. Le numéro de lecteur est "C" pour la cassette.
       Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
T Active le traçage de l'exécution (Trace)
       Un débogueur pour ASSEMBLER. En mode combiné, il suffit de faire        suivre le nombre de lignes que l'on veut tracer. Chaque ligne        de traçage de l'exécution sera constituée de la ligne de programme        et de l'état des registres. Cette commande ne peut être utilisée        que lors d'un point d'arrêt programmé.
U Désassemblage en numérique exclusivement
       Le désassemblage se fera sous forme numérique exclusivement.
V Vérification de sauvegarde d'un fichier binaire (Verify)
       sous la forme:
       V<numéro de lecteur>:<nom de fichier>.<suffixe> <a0> <a1> <exec>
       a0 étant d'adresse de départ, a1 l'adresse de fin et exec l'adresse
       d'exécution. Le numéro de lecteur est "C" pour la cassette.
       Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
W Active le traçage en mode WRITE (Write)
       Même caractéristiques que TRACE mais pour tracer les programmes en ROM.
X Retour à l'éditeur (Exit)
Y Elimine un point d'arrêt programmé (Yank)
       Exemple:
YDEBUT élimine l'étiquette DEBUT de la liste des points d'arrêts.
Z Désassemblage en symbolique exclusivement
       Même caractéristiques que pour la commande H. La seule particularité est que les symboles seront combinés à l'affichage du désassemblage si leur somme est égale à la valeur rencontrée.

Récapitulatif des commandes pour l'éditeur

  Espace   Tabulation pour le passage de champs à champs
  RAZ      Descente d'une page
  HOME     Remontée d'une page
  CNT+X    Efface la ligne au curseur
  CNT+E    Positionne le curseur en fin de ligne
  CNT+D    Positionne le curseur en début de ligne
  CNT+A    Ecriture du caractère "["
  CNT+Z    Ecriture du caractère "]"
  CNT+S    Ecriture du caractère 127 (caractère espace pour la directive FCC)

Récapitulatif des commandes pour la barre d'édition

A Assemblage du programme source (Assemble)
       sous la forme:
       A<numéro de lecteur>:<nom de fichier>.<suffixe>/NS/NL/WE/NO/SS/LP
       /NS = Pas de listing des symboles
       /NL = Pas de listing des lignes
       /WE = Stoppe le listing à la première erreur rencontrée (l'appui              sur la touche "c" ou "C" pendant l'assemblage annule l'effet              de l'option). L'assemblage est relancé en appuyant sur une              touche quelconque.
       /NO = Pas de programme objet généré en mémoire
       /SS = Edition des source et objet sur des lignes séparées
       /LP = Sortie du listing sur imprimante
       Si le numéros de lecteur, le nom de fichier et le suffixe sont       omis, le programme sera assemblée en direction de la mémoire. Si       seul le numéro de lecteur est présent (suivi du caractère ":"), le programme sera assemblé sur le périphérique sous le nom du fichier assembleur. Si le nom de fichier est présent, le fichier binaire sera sauvegardé sous ce nom. Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
Le numéro de lecteur est "C" pour la cassette.
B Saut en fin de programme source (Bottom)
C Copie d'une zone de texte dans le buffer de copie (Copy)
       La zone à copier doit avoir d'abord été sélectionnée par la commande "Z". Si aucune zone n'est sélectionnée, seule la ligne au        curseur sera copiée.
D Effacement d'une zone de texte (Delete)
       La zone à effacer doit avoir d'abord été sélectionnée par la commande "Z". Si aucune zone n'est sélectionnée, seule la ligne au        curseur sera effacée.
E Passage d'un fichier sur cassette (End Of File)
F Recherche d'une expression dans le texte (Find)
       sous la forme:
       F/expression/
       où "expression" est l'expression à rechercher. Celle-ci peut être        encadrée par n'importe quel caractère (ici "/") du moment que les caractères d'encadrement sont identiques.
I Insertion du contenu du buffer de copie dans le texte (Insert)
      La zone à insérer doit avoir d'abord été copiée à l'aide de la        commande "C".
L Chargement d'un programme source (Load)
       sous la forme:
       L<numéro de lecteur>:<nom de fichier>.<suffixe>
Le numéro de lecteur est "C" pour la cassette.
       Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
M Fusion d'un programme source (Merge)
       sous la forme:
       M<numéro de lecteur>:<nom de fichier>.<suffixe>
Le numéro de lecteur est "C" pour la cassette.
       Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
N Effacement du programme source (New)
O Annulation de la tabulation automatique (Off)
       ASSEMBLER se comportera comme un éditeur de texte. Pour annuler        l'effet de cette commande, retourner à la page d'accueil de ASSEMBLER ("Q") puis entrer à nouveau dans l'éditeur ("1").
P Impression du programme source (Print)
Q Retour à la page de menu ASSEMBLER (Quit)
R Remplacement d'un expression dans le texte (Replace)
       sous la forme:
       R/expr1/expr2/
       expr1 = expression à rechercher
       expr2 = expression pour remplacement
       La zone de remplacement doit d'abord avoir été sélectionnée par le biais de la commande "Z".
Si aucune zone n'a été sélectionnée, seule la ligne au curseur sera traitée.
S Sauvegarde du programme source (Save)
      sous la forme:
       S<numéro de lecteur>:<nom de fichier>.<suffixe>
       Si une zone a été déclarée par la commande "Z", seule cette zone
       sera sauvegardée. Sinon, tout le source sera sauvegardé.
Le numéro de lecteur est "C" pour la cassette.
       Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
T Retour en début de programme source (Top)
V Vérification de sauvegarde du programme source (Verify)
       sous la forme:
       V<numéro de lecteur>:<nom de fichier>.<suffixe>
  Le numéro de lecteur est "C" pour la cassette.
       Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
X Retour au moniteur (Exit)
Z Sélection d'une zone de texte (Zone)
      Les touches de curseur, RAZ et HOME peuvent alors être utilisées
       pour agrandir la zone. Cette zone peut être ensuite copiée, effacée
       ou sauvegardée. La zone est désélectionnée par la même commande.

Les fichiers ".ASM"

Les fichiers ".ASM" sont les fichiers de type ASCII dont le format est propre à ASSEMBLER. Dans le bloc descripteur de fichier, leur type est de valeur $03 et leur flag de valeur $FF. Une ligne de programme source est limité à 40 caractères, espaces compris, et comporte 4 champs:

  • Le champ étiquette (Position 0/Majuscules)
  • Le champ instruction (Positon 6/Majuscules)
  • Le champ opérande (Position 14/Majuscules)
  • Le champ commentaire (Position suivante/Majuscules/Minuscules)

Chacun de ces champs doit être séparé par un espace au moins.

Les minuscules accentuées sont codées sur un quartet faible augmenté de $80 (avec les touches à actionner en préalable, bien que la plupart d'entre ces caractères se trouvent en raccourcis sur le clavier):

            ACC+"Kc"  $80 = ç
  	      ACC+"Ba"  $81 =  á
  	      ACC+"Ca"  $82 = â
  	      ACC+"Ha"  $83 = ä
  	      ACC+"Aa"  $84 = à
  	      ACC+"Be"  $85 = é
  	      ACC+"Ce"  $86 = è
  	      ACC+"He"  $87 = ë
  	      ACC+"Ae"  $88 = ê
  	      ACC+"Ci"  $89 = î
  	      ACC+"Hi"  $8A = ï
  	      ACC+"Co"  $8B = ô
  	      ACC+"Ho"  $8C = ö
  	      ACC+"Cu"  $8D = û
  	      ACC+"Hu"  $8E = ü
  	      ACC+"Au"  $8F = ù

  Les espaces entre champs et les espaces de commentaires obéissent aux mêmes lois. Le nombre d'espaces consécutifs est codé sur un quartet faible augmenté de $F0 (de $F1 à $FF). Si le nombre d'espaces consécutifs dépasse 15, un nouveau code d'espace est créé, jusqu'à ce que le nombre d'espaces total soit atteint. Les espaces de fin de ligne sont ignorés. Une ligne de programme source est clôturée par le caractère CR ($0D).

Constitution d'une ligne de programme source en mémoire

       Pour chaque ligne (à partir de l'adresse contenue en $6300/$2300):
Offsets 0-1 Numéro de ligne sur 16 bits
Offset 2 Taille X de la ligne
Offset 3-X+3 Ligne en question
       La ligne est codée de la même façon qu'une ligne de programme source ".ASM" sauf que la ligne n'est pas clôturée par le caractère CR ($0D).

Registres fondamentaux

Ces registres ont cours sur toutes les versions de ASSEMBLER. Les quatre premiers registres concernent l'aménagement de la mémoire par ASSEMBLER (avec les intervalles d'adressage pour TO et MO):

6300-6301/2300-2301  Pointeur sur le début du programme source
6302-6303/2302-2303  Pointeur sur la fin du programme source
6304-6305/2304-2305  Pointeur sur le buffer de copie
6306-6307/2306-2307  Pointeur sur le fond de la mémoire
63AE-63AF/23AE-23AF  Numéro de la dernière ligne du source

Il est alors possible de générer un code source directement sous ASSEMBLER (liste de FCB, FDB, FCC, mnémonique) dont la routine de renumérotation des lignes en fin de création serait la suivante:

  RENUM  LDX     $6300       Charge adresse de départ du source
         LDU     #$0000      Initialise numéro de première ligne ($0000)
  RENUM1 CMPX    $6302       | Si fin du source,
         BEQ     RENUM1      | sort du programme de renumérotation
         STU     ,X++        Ecrit le numéro de ligne
         LDB     ,X+         Lit (et passe) la taille de la ligne
         ABX                 Passe la ligne
         LEAU    1,U         Incrémente le numéro de ligne de 1 unité
         BRA     RENUM0      Ligne suivante
  RENUM1 STU     $63AE       Fixe le numéro de la dernière ligne du source
         RTS

Et pour MO:

  RENUM  LDX     $2300       Charge adresse de départ du source
         LDU     #$0000      Initialise numéro de première ligne ($0000)
  RENUM1 CMPX    $2302       | Si fin du source,
         BEQ     RENUM1      | sort du programme de renumérotation
         STU     ,X++        Ecrit le numéro de ligne
         LDB     ,X+         Lit (et passe) la taille de la ligne
         ABX                 Passe la ligne
         LEAU    1,U         Incrémente le numéro de ligne de 1 unité
         BRA     RENUM0      Ligne suivante
  RENUM1 STU     $23AE       Fixe le numéro de la dernière ligne du source
         RTS                  |
Site
Plus
Forums
Code
Créations

*Site en favoris
*Page en favoris
*Site en démarrage
*Page en démarrage


Haut de page

Collection Thomson 2015 © Ghislain Fournier & François Mouret