Accès à la mémoire par adressage dans l'ACCU 1
Suite de l'exemple 2
Contenu des mémentos
MW 10 :
bits 4 à 19 de l'adresse de début du DB/DX (pointe sur le DW 0)
MW 12 :
longueur du DB/DX (nombre de mots de données)
MD 14 :
adresse du dernier mot de données présent dans le DB/DX + 1
(adresse physique)
FB
6
SEGMENT 1
NOM :INSCR DB
0005
:
0006
:L
DH
0009
:L
KF
000B
:+D
000C
:
000D
:LIR
000E
:T
MW
000F
:L
KB
0010
:!=F
0011
:SPB
=NIVO
0012
:
0013
:L
MW
0014
:SLD
0015
:L
KB
0016
:-D
0017
:LIR
0018
:ADD
BF
0019
:
001A
:T
MW
001B
:
001C
:L
MW
001D
:L
MW
001E
:SLD
001F
:+D
0020
:T
MD
0021
:
0022
:L
KH
0024
:
0025
:L
MD
0026
:ENT
0027
:
0028
:L
MW
0029
:SLD
002A
:
002B BOUCL
:
002C
:
002D
:
002E
:
002F
:TIR
0030
:
0031
:
0032
:ADD
DH
0035
:
0036
:><D
0037
:SPB
=SCHL
0038
:
0039 SUITE
:
003A
:
003B
:
003C
:BEA
003D
:
003E NIVO
:
003F
:BE
9 - 16
0000
Inscription d'une constante dans un DB
! mémentos requis : MB 10 à MB 17
000E EC00
Adresse de début de la liste des DB
+100
ainsi que du numéro de DB
= entrée du DB 100 dans la liste d'adresses
(bits 4 à 19)
1
Adresse de début du DB 100 vers l'ACCU 1
10
Mémorisation intermédiaire de l'adresse de début
0
(adresse de paragraphe)
Lorsque l'adresse de début = 0, le DB est
inexistant
10
Adresse de début du DB (1
4
Convertir l'adresse en adresse physique
1
Indication de la longueur de DB par
ème
le 5
1
Nombre, en-tête compris, vers l'ACCU 1
-5
Longueur DW = longueur totale - 5 mots
(en-tête de bloc)
12
Sauvegarde intermédiaire de la longueur
12
Nombre de mots de données +
10
adresse de début (DW 0 – convertie en
4
adresse physique –)
donne
14
adresse du dernier DW + 1
A5A5
Constante à attribuer à chaque mot de données
14
Adresse du dernier DW + 1
Décaler la constante dans l'ACCU 3-L
(= registre 10)
10
Adresse du 1
4
La convertir en adresse physique
Boucle :
ACCU 1 : adresse du DW où écrire
ACCU 2 : adresse du dernier DW + 1
ACCU 3 : constante
10
Sauvegarder la valeur de l'ACCU 3-L dans le DW
avec l'adresse se trouvant dans l'ACCU 1
0000 0001
Incrémenter l'adresse de "1"
Interrogation si le dernier DW est atteint
(si ce n'est pas le cas, retour dans la boucle)
Suite du programme ...
après écriture dans tous les DW ...
Si le DB 100 n'existe pas
er
DW)
mot de l'en-tête de bloc
er
mot de données (DW 0)
!
Programmation de la CPU 948
C79000-G8577-C848-04