Pseudozufallssequenztest

Als Endnutzer des Kommunikationskanals mussten wir an den Tests des modifizierten Kommunikationssystems teilnehmen. Tatsächlich war unsere Teilnahme einfach - einen Laptop und eine Schnittstelleneinheit mitzubringen, sie an das System anzuschließen und alle Informationsrahmen vom Computer kontinuierlich als eine Art "Nutzlast" auszugeben.





Die Entwickler mussten das System in verschiedenen Modi ausführen, und dann mussten die Telemetriker uns das empfangene Datenarray geben. Danach mussten wir die Prüfsummen (sorry, zyklisch redundanter Code) jedes Frames überprüfen und, falls wir Fehler finden, deren Nummer in den Testbericht eingeben.





Daher war es notwendig, ein einfaches Programm (in Bezug auf Software) zum Testen vorzubereiten. Und es stellte sich die Frage, was als "Information" ausgegeben werden soll. Schließlich haben wir nicht das triviale "Gitter" AA55 gelöst, sondern eine pseudozufällige Sequenz unter Verwendung eines primitiven Galois-Polynoms.





Der Algorithmus ist dort wirklich sehr einfach:





;----    ----

:  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 .





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





Wenn Galois nicht in jungen Jahren gestorben wäre, wie viele weitere Entdeckungen hätte er machen können. Und wenn er sich mit Charles Babbage oder Ada Lovelace treffen würde, würden wir jetzt vielleicht in einer völlig anderen Computerwelt leben ...








All Articles