Comme cité dans l'aide EASy68K, la syntaxe d'une boucle dans 68K est la suivante:
FOR[.size] op1 = op2 TO op3 [BY op4] DO[.extent]
code
ENDF
ou
FOR[.size] op1 = op2 DOWNTO op3 [BY op4] DO[.extent]
code
ENDF
autrement dit:
for.size counter_location = starting_condition to ending_condition step_size
operations to be executed each loop
end of for loop
Les tailles de pas et de taille sont toutes deux facultatives.
Un exemple en pratique.
Le code suivant suppose la variable dc.b majuscule « ABCDEFGHIJKLMNOPQRSTUVWXYZ » suivants, 0
lea uppercase, a1 ; points a1 at the start of the uppercase variable
lea $002000, a2 ; points a2 at the start of the destination address
for d1 = #1 to #26 do.s
move.b (a1)+, (a2)+
endf
; Memory locations $002000 - $002019 now contain ABCDEFGHIJKLMNOPQRSTUVYWXYZ
Cette boucle se déplace 26 octets de l'adresse pointée par a1, à l'adresse pointée par a2. Le compteur sera stocké dans d1. La boucle commencera à 1 (# 1 indique un 'nombre brut' sous forme décimale), augmentera à chaque fois et se terminera à 26. Les do.s à la fin de la première ligne traitent de la taille de la branche aller vers utilisation. Il est également facultatif, mais envoie un avertissement dans EASy68K. Par conséquent, la boucle for ci-dessous fonctionnera également si vous n'avez pas besoin de définir la condition de la branche.
for d1 = #1 to #26
move.b (a1)+, (a2)+
endf
En ce qui concerne un tutoriel, je recommande http://mrjester.hapisan.com/04_MC68/. Il ne traite pas des commandes et des sujets les plus avancés, mais il offre une bonne compréhension de ce qui se passe au niveau de base/intermédiaire.
Avez-vous un processeur 68000 et un compilateur (n'importe quelle langue) pour cela? –
J'utilise Easy68k (un émulateur et un compilateur). – Blackbinary