pxh

Prime number algorithm for redstone computer

pxh
Jan 3rd, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     mov 3, R2                   ; 00 0001 0010
  2.                                 ; 01 0000 0011
  3.     mov 0b10000000, OR          ; 02 0001 1000
  4.                                 ; 03 1000 0000
  5. .outerloop
  6.     mov 3, R3                   ; 04 0001 0011
  7.                                 ; 05 0000 0011
  8.     mov 1, R4                   ; 06 0001 0100
  9.                                 ; 07 0000 0001
  10.     mov R2, R5                  ; 08 0010 0101
  11.     mov .upperlimitloop, TNZ    ; 09 0001 1101 
  12.                                 ; 10 0000 1101
  13.     mov .innerloop, TZ          ; 11 0001 1111
  14.                                 ; 12 0001 0101
  15. .upperlimitloop
  16.     mov R5, RSHF                ; 13 0101 0111
  17.     mov RSHF, RSHF              ; 14 0111 0111
  18.     mov RSHF, R5                ; 15 0111 0101
  19.     mov R4, ADD                 ; 16 0100 1010
  20.     mov R4, NEG                 ; 17 0100 1011
  21.     mov ADD, R4                 ; 18 1010 0100
  22.     mov R5, TEST                ; 19 0101 1110
  23.     mov TEST, PC                ; 20 1110 0000
  24. .innerloop
  25.     mov R3, ADD                 ; 21 0011 1010
  26.     mov R4, NEG                 ; 22 0100 1011
  27.     mov NEG, NEG                ; 23 1011 1011
  28.     mov RSHF, AND               ; 24 0111 1001
  29.     mov AND, TEST               ; 25 1001 1110
  30.     mov .isprime, TNZ           ; 26 0001 1101
  31.                                 ; 27 0101 0010
  32.     mov .modulo, TZ             ; 28 0001 1111
  33.                                 ; 29 0001 1111
  34.     mov TEST, PC                ; 30 1110 0000
  35. .modulo
  36.     mov R2, R5                  ; 31 0010 0101
  37.     mov R3, R6                  ; 32 0011 0110
  38.     mov R6, AND                 ; 33 0110 1001
  39.     mov AND, TEST               ; 34 1001 1110
  40.     mov .modloop, TNZ           ; 35 0001 1101
  41.                                 ; 36 0010 1110
  42.     mov .shiftleft, TZ          ; 37 0001 1111
  43.                                 ; 38 0010 1000
  44.     mov TEST, PC                ; 39 1110 0000
  45. .shiftleft
  46.     mov R6, ADD                 ; 40 0110 1010
  47.     mov R6, NEG                 ; 41 0110 1011
  48.     mov ADD, R6                 ; 42 1010 0110
  49.     mov ADD, AND                ; 43 1010 1001
  50.     mov AND, TEST               ; 44 1001 1110
  51.     mov TEST, PC                ; 45 1110 0000
  52. .modloop
  53.     mov R5, ADD                 ; 46 0101 1010
  54.     mov R6, NEG                 ; 47 0110 1011
  55.     mov NEG, NEG                ; 48 1011 1011
  56.     mov RSHF, AND               ; 49 0111 1001
  57.     mov AND, TEST               ; 50 1001 1110
  58.     mov .updateremainder, TNZ   ; 51 0001 1101
  59.                                 ; 52 0011 1000
  60.     mov .dontupdate, TZ         ; 53 0001 1111
  61.                                 ; 54 0011 1001
  62.     mov TEST, PC                ; 55 1110 0000
  63. .updateremainder
  64.     mov ADD, R5                 ; 56 1010 0101
  65. .dontupdate
  66.     mov R6, ADD                 ; 57 0110 1010
  67.     mov R3, NEG                 ; 58 0011 1011
  68.     mov NEG, NEG                ; 59 1011 1011
  69.     mov ADD, TEST               ; 60 1010 1110
  70.     mov .continue, TNZ          ; 61 0001 1011
  71.                                 ; 62 0100 0010
  72.     mov .endmodloop, TZ         ; 63 0001 1111
  73.                                 ; 64 0100 0110
  74.     mov TEST, PC                ; 65 1110 0000
  75. .continue
  76.     mov R6, RSHF                ; 66 0110 0111
  77.     mov RSHF, R6                ; 67 0111 0110
  78.     mov .modloop, PC            ; 68 0001 0000
  79.                                 ; 69 0010 1110
  80. .endmodloop
  81.     mov R5, TEST                ; 70 0101 1110
  82.     mov .cantdivide, TNZ        ; 71 0001 1101
  83.                                 ; 72 0100 1100
  84.     mov .candivide, TZ          ; 73 0001 1111
  85.                                 ; 74 0101 0011
  86.     mov TEST, PC                ; 75 1110 0000
  87. .cantdivide
  88.     mov R3, ADD                 ; 76 0011 1010
  89.     mov 2, NEG                  ; 77 0001 1011
  90.                                 ; 78 0000 0010
  91.     mov ADD, R3                 ; 79 1010 0011
  92.     mov .innerloop, PC          ; 80 0001 0000
  93.                                 ; 81 0001 0101
  94. .isprime
  95.     mov R2, DISP                ; 82 0010 0001
  96. .candivide
  97.     mov R2, ADD                 ; 83 0010 1010
  98.     mov 2, NEG                  ; 84 0001 1011
  99.                                 ; 85 0000 0010
  100.     mov ADD, R2                 ; 86 1010 0010
  101.     mov RSHF, AND               ; 87 0111 1001
  102.     mov AND, TEST               ; 88 1001 1110
  103.     mov .done, TNZ              ; 89 0001 1101
  104.                                 ; 90 0101 1110
  105.     mov .outerloop, TZ          ; 91 0001 1111
  106.                                 ; 92 0000 0100
  107.     mov TEST, PC                ; 93 1110 0000
  108. .done
  109.     halt                        ; 94 0000 0000
Advertisement
Add Comment
Please, Sign In to add comment