home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 04 / review / sievefit.asm next >
Assembly Source File  |  1991-01-04  |  4KB  |  137 lines

  1. TITLE SIEVEFIT.ASM - MODULE SieveFitted.MOD
  2.  
  3. ;  Module created 01-05-1991/09:52 by TOBJ2ASM
  4.  
  5. EXTRN         System_INIT:FAR
  6. EXTRN         InOut_INIT:FAR
  7. EXTRN         InOut_WriteString:FAR
  8. EXTRN         InOut_Read:FAR
  9. EXTRN         InOut_WriteLn:FAR
  10. EXTRN         InOut_Write:FAR
  11. EXTRN         InOut_WriteCard:FAR
  12. EXTRN         System_Terminate:FAR
  13.  
  14. EXTRN         DATA_System:BYTE
  15. EXTRN         DATA_InOut:BYTE
  16. EXTRN         System_INIT:BYTE
  17.  
  18.               .286    
  19.               .287    
  20.  
  21. CODE          SEGMENT PARA 'CODE'
  22.  
  23.               ASSUME  CS:CODE
  24.  
  25.               ADD     [BX+SI],AL
  26.               PUSH    BP
  27.               MOV     BP,SP
  28.               PUSH    BP
  29.               ADD     SP,65528
  30.               MOV     DS,CS:[0]
  31.               MOV     WORD PTR [BP-4],1
  32.               CMP     WORD PTR [BP-4],2000
  33.               JBE     lbl1
  34.               JMP     lbl9
  35. lbl1:         MOV     WORD PTR DS:[8234],0
  36.               MOV     WORD PTR [BP-6],0
  37.               CMP     WORD PTR [BP-6],8190
  38.               JA      lbl3
  39. lbl2:         MOV     SI,[BP-6]
  40.               MOV     BYTE PTR [SI+40],1
  41.               CMP     WORD PTR [BP-6],8190
  42.               JAE     lbl3
  43.               INC     WORD PTR [BP-6]
  44.               JMP     lbl2
  45. lbl3:         MOV     WORD PTR [BP-6],0
  46.               CMP     WORD PTR [BP-6],8190
  47.               JA      lbl8
  48. lbl4:         MOV     SI,[BP-6]
  49.               MOV     AL,[SI+40]
  50.               ROR     AL,1
  51.               JAE     lbl7
  52.               MOV     AX,[BP-6]
  53.               ADD     AX,[BP-6]
  54.               ADD     AX,3
  55.               MOV     [BP-10],AX
  56.               MOV     AX,[BP-6]
  57.               ADD     AX,[BP-10]
  58.               MOV     [BP-8],AX
  59. lbl5:         CMP     WORD PTR [BP-8],8190
  60.               JA      lbl6
  61.               MOV     SI,[BP-8]
  62.               MOV     BYTE PTR [SI+40],0
  63.               MOV     AX,[BP-10]
  64.               ADD     SS:[BP-8],AX
  65.               JMP     lbl5
  66. lbl6:         INC     WORD PTR DS:[8234]
  67. lbl7:         CMP     WORD PTR [BP-6],8190
  68.               JAE     lbl8
  69.               INC     WORD PTR [BP-6]
  70.               JMP     lbl4
  71. lbl8:         CMP     WORD PTR [BP-4],2000
  72.               JAE     lbl9
  73.               INC     WORD PTR [BP-4]
  74.               JMP     lbl1
  75. lbl9:         MOV     SP,BP
  76.               POP     BP
  77.               RETF    0
  78.  
  79. PUBLIC        SieveFitted_INIT
  80.  
  81. SieveFitted_INIT PROC    FAR
  82.  
  83.               CALL    System_INIT
  84.               PUSH    BP
  85.               MOV     BP,SP
  86.               CALL    System_INIT
  87.               CALL    InOut_INIT
  88.               MOV     DS,CS:[0]
  89.               MOV     AX,33
  90.               PUSH    AX
  91.               LEA     AX,DS:[8236]
  92.               PUSH    DS
  93.               PUSH    AX
  94.               CALL    InOut_WriteString
  95.               MOV     DS,CS:[0]
  96.               LEA     AX,DS:[8232]
  97.               PUSH    DS
  98.               PUSH    AX
  99.               CALL    InOut_Read
  100.               MOV     DS,CS:[0]
  101.               CALL    InOut_WriteLn
  102.               MOV     DS,CS:[0]
  103.               CALL    Code2
  104.               MOV     AX,7
  105.               PUSH    AX
  106.               CALL    InOut_Write
  107.               MOV     DS,CS:[0]
  108.               PUSH    WORD PTR DS:[8234]
  109.               MOV     AX,5
  110.               PUSH    AX
  111.               CALL    InOut_WriteCard
  112.               MOV     DS,CS:[0]
  113.               MOV     AX,0
  114.               PUSH    AX
  115.               CALL    System_Terminate
  116.               MOV     DS,CS:[0]
  117.  
  118. SieveFitted_INIT ENDP                ; Size: 120 Byte
  119.  
  120. CODE          ENDS                   ; Size: 288 Byte
  121.  
  122. DATA          SEGMENT PARA 'DATA'
  123.  
  124. PUBLIC        DATA_SieveFitted
  125. DATA_SieveFitted LABEL BYTE 
  126. Data0         DB      8236 DUP (0),'Hit a key to start 2000 ITERATIONS',2 DUP (0)
  127.  
  128. DATA          ENDS                   ; Size: 8272 Byte
  129.  
  130. STACK         SEGMENT PARA STACK 'STACK'
  131.  
  132. @Stack        DB      8192 DUP (?)
  133.  
  134. STACK         ENDS                   ; Size: 8192 Byte
  135.  
  136.               END     
  137.