Test de séquence pseudo-aléatoire

En tant qu'utilisateurs finaux du canal de communication, nous avons dû participer aux tests du système de communication modifié. En fait, notre participation a été simple - apporter un ordinateur portable et une unité d'interface, le connecter au système et sortir en permanence toutes les trames d'information de l'ordinateur comme une sorte de «charge utile».





Les développeurs ont dû exécuter le système dans différents modes, puis les télémétristes ont dû nous donner le tableau de données reçu. Après cela, nous avons dû vérifier les sommes de contrôle (désolé, code de redondance cyclique) de chaque trame et, si nous trouvons des erreurs, saisir leur numéro dans le rapport de test.





Par conséquent, il était nécessaire de préparer un programme simple (en termes de logiciel) pour les tests. Et la question s'est posée, que donner comme "information"? Après tout, nous n'avons pas résolu le «réseau» trivial AA55, mais une séquence pseudo-aléatoire en utilisant un polynôme de Galois primitif.





L'algorithme y est vraiment très simple:





;----    ----

:  MOV       EBX,   ;  
      MOV       CX,_   ;   

;----      ----

M1:   MOV       EAX,1
      XCHG      CH,CL
      SHL       EAX,CL
      XCHG      CH,CL

;----    ----

      ROR       EBX,1
      JNB       M2

;----   -  ----

      AND       EAX,EBX 	;   
      MOV       EAX,1
      JNZ       @
      SHL       EAX,CL
      OR        EBX,EAX 	;  =0,  1
      JMPS      M4
@:    SHL       EAX,CL
      NOT       EAX
      AND       EBX,EAX 	;  =1,  0
      JMPS      M4

;----   -  ----

M2:   AND       EAX,EBX 	;   
      MOV       EAX,1
      JZ        @
      SHL       EAX,CL
      OR        EBX,EAX 	;  =1,  1
      JMPS      M3
@:    SHL       EAX,CL
      NOT       EAX
      AND       EBX,EAX 	;  =0,  0

;----   ----

M3:  CLC
     RCR       ,1
     JMPS      @

;----   ----

M4:  STC
     RCR       ,1

;----     ----

@:   DEC           	;    ?
     JNZ       M1

     MOV       ,8  	; 8 
     MOV       ,EBX ;  
     MOV       AL, 	;   
     RET
      
      







( ) . 32 . .





, 2 . , . , .





. , : « » !





? . . : . , - , .





: , «» ( ? «»!), . : ! , .





-, -. !





.





, . , « »? – . , , : , .





, . « » , , . – , «» ( ). , « » : , .





, , , , .





, (, , ) . . 20 4 , , , .





, . , , . , , , , , . , , , FPU .





- . , , - . : . , , « », : « , , » - , , ! ( ) .





Si Galois n'était pas mort jeune, combien de découvertes il aurait pu faire. Et s'il rencontrait Charles Babbage, eh bien, ou avec Ada Lovelace, peut-être vivrions-nous maintenant dans un monde informatique complètement différent ...








All Articles