Teste de sequência pseudo-aleatória

Como usuários finais do canal de comunicação, tivemos que participar dos testes do sistema de comunicação modificado. Na verdade, nossa participação foi simples - trazer um laptop e uma unidade de interface, conectá-los ao sistema e emitir continuamente quaisquer frames de informação do computador como algum tipo de "carga útil".





Os desenvolvedores tiveram que executar o sistema em modos diferentes, e então os telemetristas tiveram que nos fornecer a matriz de dados recebida. Depois disso, tivemos que verificar as somas de verificação (desculpe, código de redundância cíclica) de cada quadro e, se encontrarmos erros, inserir seu número no relatório de teste.





Portanto, foi necessário preparar um programa simples (em termos de software) para teste. E surgiu a pergunta: o que dar como "informação"? Afinal, resolvemos não a "rede" trivial AA55, mas uma sequência pseudo-aleatória usando um polinômio de Galois primitivo.





O algoritmo é realmente muito simples aqui:





;----    ----

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





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





Se Galois não tivesse morrido jovem, quantas descobertas mais ele poderia ter feito. E se ele se encontrasse com Charles Babbage, bem, ou com Ada Lovelace, talvez vivêssemos agora em um mundo de computador completamente diferente ...








All Articles