home *** CD-ROM | disk | FTP | other *** search
- Modula-2 OBJ File Decoder Rel. 3.30 Dec 89
- ----------------------------------------------
- decoding : D:sievelog.OBJ
- output file: sievelog.DEC
-
- Module Name : SIEVEFIT
-
- Library Import List: M2RTS
- M2LIB
- M2USER
-
-
- Objects Import List: InOut
- FileSystem
- RTSMain
-
-
- Logical Names :
- CODE
- FAR_DATA
- SIEVEFITTED_DATA
- SIEVEFITTED_TEXT
- MODULE_TABLE_DATA
- FAR_BSS
- INIT_FLAG_DATA
- DGROUP
- CONST
-
-
- DATA Segment: SIEVEFITTED_DATA
- Length : 8194
-
- 0000 flag__SieveFitted DUP 8191
- 1FFF ch__SieveFitted DUP 1
- 2000 count__SieveFitted DUP 2
-
-
- CODE Segment: SIEVEFITTED_TEXT
- Length : 298
-
- 0000 00 00 48 69 74 20 61 20 DB '..Hit a '
- 0008 6B 65 79 20 74 6F 20 73 DB 'key to s'
- 0010 74 61 72 74 20 32 30 30 DB 'tart 200'
- 0018 30 20 49 54 45 52 41 54 DB '0 ITERAT'
- 0020 49 4F 4E 53 00 DB 'IONS.'
-
- 0025 ; PROCEDURE S__SieveTest__SieveFitted
-
- 0025 ; *** line #18 ; BEGIN
- 0025
- 0025 55 PUSH BP
- 0026 8B EC MOV BP,SP
- 0028 83 EC 08 SUB SP, 08
-
- 002B ; *** line #19 ; FOR i := 1 TO ITER DO
- 002B 8D 5E F8 LEA BX,[BP-0008]
- 002E 36 C7 07 01 00 MOV SS:[BX],0001
- 0033 36 FF 0F DEC SS:[BX]
- 0036 36 FF 07 INC SS:[BX]
-
- 0039 ; *** line #20 ; count := 0;
- 0039 B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 003C 8E D9 MOV DS,CX
- 003E C7 06 00 00 00 00 MOV [count__SieveFitted],0000
-
- 0044 ; *** line #21 ; FOR j := 0 TO SIZE DO
- 0044 8D 76 FA LEA SI,[BP-0006]
- 0047 36 C7 04 00 00 MOV SS:[SI],0000
- 004C 36 FF 0C DEC SS:[SI]
- 004F 36 FF 04 INC SS:[SI]
-
- 0052 ; *** line #22 ; flag[j] := TRUE;
- 0052 8B 7E FA MOV DI,[BP-0006]
- 0055 B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 0058 8E D9 MOV DS,CX
- 005A C6 85 00 00 01 MOV [DI+flag__SieveFitted],01
- 005F 36 81 3C FE 1F CMP SS:[SI], 1FFE
- 0064 72 E9 JB 004F
-
- 0066 ; *** line #23 ; END;
- 0066 ; *** line #24 ; FOR j := 0 TO SIZE DO
- 0066 8D 76 FA LEA SI,[BP-0006]
- 0069 36 C7 04 00 00 MOV SS:[SI],0000
- 006E 36 FF 0C DEC SS:[SI]
- 0071 36 FF 04 INC SS:[SI]
-
- 0074 ; *** line #25 ; IF flag[j] THEN
- 0074 8B 7E FA MOV DI,[BP-0006]
- 0077 B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 007A 8E D9 MOV DS,CX
- 007C 82 BD 00 00 00 CMP [DI+flag__SieveFitted], 00
- 0081 74 36 JE 00B9
-
- 0083 ; *** line #26 ; prime := j+j+3;
- 0083 03 7E FA ADD DI,[BP-0006]
- 0086 83 C7 03 ADD DI, 03
- 0089 89 7E FE MOV [BP-0002],DI
-
- 008C ; *** line #27 ; k := j+prime;
- 008C 8B 46 FA MOV AX,[BP-0006]
- 008F 03 C7 ADD AX,DI
- 0091 89 46 FC MOV [BP-0004],AX
-
- 0094 ; *** line #28 ; WHILE k <= SIZE DO
- 0094 81 7E FC FE 1F CMP [BP-0004], 1FFE
- 0099 77 15 JNBE 00B0
-
- 009B ; *** line #29 ; flag[k] := FALSE;
- 009B 8B 7E FC MOV DI,[BP-0004]
- 009E B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 00A1 8E D9 MOV DS,CX
- 00A3 C6 85 00 00 00 MOV [DI+flag__SieveFitted],00
-
- 00A8 ; *** line #30 ; INC(k,prime);
- 00A8 8B 46 FE MOV AX,[BP-0002]
- 00AB 01 46 FC ADD [BP-0004],AX
- 00AE EB E4 JMP 0094
-
- 00B0 ; *** line #31 ; END;
- 00B0 ; *** line #32 ; INC(count);
- 00B0 B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 00B3 8E D9 MOV DS,CX
- 00B5 FF 06 00 00 INC [count__SieveFitted]
- 00B9 36 81 3C FE 1F CMP SS:[SI], 1FFE
- 00BE 72 B1 JB 0071
- 00C0 36 81 3F D0 07 CMP SS:[BX], 07D0
- 00C5 73 03 JNB 00CA
- 00C7 E9 6C FF JMP 0036
-
- 00CA ; *** line #33 ; END;
- 00CA ; *** line #34 ; END;
- 00CA ; *** line #35 ; END;
- 00CA ; *** line #36 ; END SieveTest;
- 00CA 89 EC MOV SP,BP
- 00CC 5D POP BP
- 00CD C3 RET
-
- 00CE ; PROCEDURE $BODY__SieveFitted
-
- 00CE ; *** line #38 ; BEGIN
- 00CE 55 PUSH BP
- 00CF 8B EC MOV BP,SP
-
- 00D1 ; *** line #39 ; WriteString("Hit a key to start 2000 ITERATIONS");
- 00D1 B8 21 00 MOV AX,0021
- 00D4 50 PUSH AX
- 00D5 BB 00 00 MOV BX,0002
- 00D8 0E PUSH CS
- 00D9 53 PUSH BX
- 00DA 9A 00 00 00 00 CALLF L__WriteString__InOut
-
- 00DF ; *** line #40 ; Read(ch); WriteLn;
- 00DF B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 00E2 8E D9 MOV DS,CX
- 00E4 BB 00 00 MOV BX,ch__SieveFitted
- 00E7 1E PUSH DS
- 00E8 53 PUSH BX
- 00E9 9A 00 00 00 00 CALLF L__Read__InOut
- 00EE 9A 00 00 00 00 CALLF L__WriteLn__InOut
-
- 00F3 ; *** line #41 ; SieveTest;
- 00F3 E8 00 00 CALLS S__SieveTest__SieveFitted
-
- 00F6 ; *** line #42 ; Write(7C); WriteCard(count,5);
- 00F6 B0 07 MOV AL,07
- 00F8 50 PUSH AX
- 00F9 9A 00 00 00 00 CALLF L__Write__InOut
- 00FE B9 00 00 MOV CX,SEG SIEVEFITTED_DATA
- 0101 8E D9 MOV DS,CX
- 0103 FF 36 00 00 PUSH [count__SieveFitted]
- 0107 B8 05 00 MOV AX,0005
- 010A 50 PUSH AX
- 010B 9A 00 00 00 00 CALLF L__WriteCard__InOut
-
- 0110 ; *** line #43 ; END SieveFitted.
- 0110 89 EC MOV SP,BP
- 0112 5D POP BP
- 0113 CB RET
-
-
- 0114 ; PROCEDURE StartModula
- 0114 55 PUSH BP
- 0115 8B EC MOV BP,SP
- 0117 9A 00 00 00 00 CALLF $INIT__RTSMain
- 011C 9A 00 00 00 00 CALLF $INIT__InOut
- 0121 9A 00 00 00 00 CALLF $INIT__FileSystem
- 0126 5D POP BP
- 0127 E9 00 00 JMP $BODY__SieveFitted
-