home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / CROSSASM / ASM370.ZIP / DEMOPNUM.ALC < prev    next >
Encoding:
Text File  |  1985-06-15  |  3.7 KB  |  122 lines

  1.          TITLE 'DEMOPNUM - FIXED POINT PRIME NUMBER BENCHMARK'
  2. *
  3. *  AUTHOR.   DON HIGGINS.
  4. *  DATE.     04/27/85.
  5. *  REMARKS.  PC/370 PRIME NUMBER DEMO PROGRAM.
  6. *
  7. *  THIS PROGRAM USES PREVIOUSLY FOUND PRIMES AS TRIAL DIVISORS
  8. *  TO FIND THE FIRST 100 PRIME NUMBERS AND PRINT THEM.
  9. *
  10. *  THE FOLLOWING BASIC PROGRAM WAS RUN USING INTERPRETATIVE BASIC
  11. *  FROM MICROSOFT WITH THE FOLLOWING RESULTS:
  12. *
  13. *    1. IT TOOK 60 SECONDS ON TANDY MODEL II 4MHZ Z80 SYSTEM:
  14. *    2. iT TOOK 67 SECONDS ON IBM PC 4.77 MHZ 8088 SYSTEM.
  15. *
  16. *       DEFINT A-Z
  17. *       MT=100
  18. *       DIM T(MT)
  19. *       NT=1
  20. *       T(NT)=1
  21. *       PRINT NT,T(NT)
  22. *       NT=2
  23. *       T(NT)=2
  24. *       PRINT NT,T(NT)
  25. *       NT=3
  26. *       T(NT)=3
  27. *       PRINT NT,T(NT)
  28. *       N=3
  29. * 150   N=N+2
  30. *       FOR I=3 TO NT
  31. *         J=N/T(I)
  32. *         IF J*T(I)=N GOTO 150
  33. *       NEXT I
  34. *       NT=NT+1
  35. *       T(NT)=N
  36. *       PRINT NT,N
  37. *       IF NT<MT GOTO 150
  38. *       STOP
  39. *       END
  40. *
  41. *
  42. *       THE 370 ASSEMBLER BENCHMARK RESULTS ARE AS FOLLOWS:
  43. *
  44. *       1.  ON A 4 MHZ Z80 CP/M VERSION OF PC/370, THIS PROGRAM RAN
  45. *           IN 25 SECONDS.
  46. *
  47. *       2.  ON A 4.77 MHZ 8086 MSDOS VERSION OF PC/370, THIS PROGRAM
  48. *           RNA IN 25 SECONDS.
  49. *
  50. *
  51. *
  52. DEMOPNUM CSECT
  53.          LR    R12,R15
  54.          USING DEMOPNUM,R12
  55.          L     R15,=V(PET)
  56.          BALR  R14,R15
  57.          LA    R2,=C'   1   1$'
  58.          SVC   209
  59.          LA    R2,=C'   2   2$'
  60.          SVC   209
  61.          LA    R2,=C'   3   3$'
  62.          SVC   209                PRINT FIRST 3 PRIMES TO INITIALIZE
  63.          LA    MT,100             MAXIMUM NUMBER OF PRIMES TO PRINT
  64.          LA    NT,3               CURRENT NUMBER OF PRIMES IN TABLE
  65.          LA    N,3                CURRENT NUMBER TO TEST FOR PRIME
  66. L150     EQU   *
  67.          LA    N,2(N)             NEXT ODD NUMBER
  68.          LA    I,3                REST TABLE INDEX TO START WITH 3
  69. L160     EQU   *
  70.          LA    I4,0(I,I)
  71.          LA    I4,0(I4,I4)
  72.          L     TI,T-4(I4)         TI=T(I)   LOAD CURRENT TABLE ENTRY
  73.          LR    J,N
  74.          SR    J-1,J-1
  75.          DR    J-1,TI             J = N / T(I)
  76.          MR    J-1,TI             J = J * T(I)
  77.          CLR   J,N                IF J = N THEN NOT PRIME
  78.          BE    L150
  79.          LA    I,1(I)             NEXT TABLE ENTRY INDEX
  80.          CLR   I,NT               IF NORE ENTRIES, THEN TRY THEM
  81.          BNH   L160
  82.          LA    NT,1(NT)
  83.          LA    I4,0(NT,NT)
  84.          LA    I4,0(I4,I4)
  85.          ST    N,T-4(I4) T(NT)=N  STORE NEW PRIME IN TABLE
  86.          CVD   N,PN
  87.          CVD   NT,PNT
  88.          MVC   DNT,=X'40202020'
  89.          ED    DNT,PNT+6          EDIT PRIME COUNTER
  90.          MVC   DN,=X'40202020'
  91.          ED    DN,PN+6            EDIT PRIME NUMBER
  92.          LA    R2,PLINE
  93.          SVC   209                PRINT NEW PRIME
  94.          CLR   NT,MT
  95.          BL    L150
  96.          L     R15,=V(PET)
  97.          BALR  R14,R15            PRINT BENCHMARK STATISTICS
  98.          SVC   0
  99. R0       EQU   0
  100. R1       EQU   1
  101. J        EQU   1      0-1 USED FOR D AND M WORK
  102. R2       EQU   2      SVC ARG. REG.
  103. N        EQU   3      CURRENT TRIAL PRIME
  104. NT       EQU   4      SEQ. NUMBER OF PRIMES
  105. MT       EQU   5      MAX  PRIMES IN TABLE
  106. I        EQU   6      TABLE SUBSCRIPT
  107. I4       EQU   7      I * 4 TO INDEX FULL WORD ENTRIES
  108. TI       EQU   8      DIVISOR HOLD
  109. R12      EQU   12     BASE
  110. R14      EQU   14     LINK
  111. R15      EQU   15     ENTRY
  112. PWORK    DC    D'0'   PACKED DECIMAL CONVERT WORK AREA
  113. PLINE    EQU   *      PRINT LINE
  114. DNT      DC    CL4' '
  115. DN       DC    CL4' '
  116.          DC    C'$'
  117. PNT      DC    PL8'0' PRIME COUNTER
  118. PN       DC    PL8'0' PRIME NUMBER
  119. T        DC    F'1,2,3'  TABLE OF PRIMES
  120.          DS    97F
  121.          END   DEMOPNUM
  122.