   inc   %l2
 
   cmp   %l2, 9
-  bg    ValiderLignes       ! Lancer la validation du Sudoku
+  bg    ValiderLignes00     ! Lancer la validation du Sudoku
   nop
 
   ba  AfficherSudoku04      ! Afficher une ligne du Sudoku avec des chiffres

  sautligne:         .asciz  "\n"
  lecturecons:       .asciz  "%d"
  validligne1:       .asciz  "Validation des lignes du Sudoku\n"
  validligne2:       .asciz  "Ligne #%d..."
  validligne3:       .asciz  "Ligne #%d, validation entre %d[%d] et %d[%d]..."
  validlignecor:     .asciz  "Valide !\n"
  validligneinc:     .asciz  "Invalide !\n"

/* Espace mémoire */


  nop
  /* end Aff */

  ba    ValiderLignes02     ! Lancer la validation des lignes
  nop
  

/* Validation de la ligne courante */
ValiderLignes02:
  set   validligne2, %o0        ! Afficher qu'on valider la ligne courante
  mov   %l1, %o1
  call  printf
  nop

  mov   0, %l2                  ! Compteur du nombre courant sur la ligne
  mov   1, %l3                  ! Compteur du nombre a tester avec le nombre courant sur la ligne

  ba    ValiderLignes04         ! Lancer la validation de la ligne
  nop

ValiderLignes03:
  inc   %l1                     ! Ligne suivante
  add   %l0, 9, %l0             ! Déplacer le pointeur du Sudoku sur la prochaine ligne

  cmp   %l1, 9                  ! Si on a fait le tour du Sudoku, on passe au mode de validation suivant
  be    ValiderColonnes00
  nop

  ba    ValiderLignes02
  nop


ValiderLignes04:
  ldub  [%l0+%l2], %l4          ! Charger le nombre courant en mémoire
    
  cmp   %l4, 0                  ! Le chiffre doit être entre 1 et 9
  ble   LigneInvalide
  nop

  cmp   %l4, 10
  bge   LigneInvalide
  nop

  ba    ValiderLignes06         ! Lancer la validation du nombre courant sur la ligne
  nop


ValiderLignes05:
  inc   %l2                     ! Passer au nombre suivant pour la validation
  add   %l2, 1, %l3             ! Le nombre a tester est toujours le nombre après le nombre courant (au début de la validation du nombre courant)

  cmp   %l2, 9                  ! Continuer a valider la ligne si nombre courant n'est pas le dernier
  bl    ValiderLignes04
  nop

  set   resvalide, %o0      ! Affichage d'un message disant que la ligne est valide
  call  printf
  nop

  ba    ValiderLignes03
  nop


ValiderLignes06:
  cmp   %l2, 8
  bge   ValiderLignes05
  nop
 
  ldub  [%l0+%l3], %l5          ! Charger le nombre a tester dans le registre l5
  
  !set   validligne3, %o0        ! Debug INFOS
  !mov   %l2, %o1
  !mov   %l4, %o2
  !mov   %l3, %o3
  !mov   %l5, %o4
  !call  printf
  !nop

  cmp   %l4, %l5                ! Comparer le nombre courant avec le nombre a tester pour s'assurer qu'ils ne sont pas identique
  be    LigneInvalide
  nop

  inc   %l3                     ! Tester le nombre suivant

  cmp   %l3, 9                  ! S'il nous reste des chiffre a tester, on les tests
  bl    ValiderLignes06
  nop
  
  ba    ValiderLignes05
  nop


LigneInvalide:
  set   redinvalide, %o0      ! Affichage d'un message disant que la ligne est invalide
  call  printf
  nop

  call  exit                    ! On quitte le programme
  nop

ValiderColonnes00:
  call  exit
  nop

/* 
