Subversion Repositories Kolibri OS

Rev

Rev 7693 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7693 Rev 7696
Line 7... Line 7...
7
  Âõîä - òåêñòîâûå ôàéëû ìîäóëåé ñ ðàñøèðåíèåì ".ob07", êîäèðîâêà ANSI èëè
7
  Âõîä - òåêñòîâûå ôàéëû ìîäóëåé ñ ðàñøèðåíèåì ".ob07", êîäèðîâêà ANSI èëè
8
UTF-8 ñ BOM-ñèãíàòóðîé.
8
UTF-8 ñ BOM-ñèãíàòóðîé.
9
  Âûõîä - èñïîíÿåìûé ôàéë ôîðìàòà PE32, ELF èëè MENUET01/MSCOFF.
9
  Âûõîä - èñïîíÿåìûé ôàéë ôîðìàòà PE32, ELF èëè MENUET01/MSCOFF.
10
  Ïàðàìåòðû:
10
  Ïàðàìåòðû:
11
  1) èìÿ ãëàâíîãî ìîäóëÿ
11
  1) èìÿ ãëàâíîãî ìîäóëÿ
12
  2) èìÿ ðåçóëüòèðóþùåãî ôàéëà
-
 
13
  3) òèï ïðèëîæåíèÿ è ïëàòôîðìà
12
  2) òèï ïðèëîæåíèÿ
14
      "console" - Windows console
13
      "console" - Windows console
15
      "gui" - Windows GUI
14
      "gui" - Windows GUI
16
      "dll" - Windows DLL
15
      "dll" - Windows DLL
17
      "kos" - KolibriOS
16
      "kos" - KolibriOS
18
      "obj" - KolibriOS DLL
17
      "obj" - KolibriOS DLL
19
      "elfexe" - Linux ELF-EXEC
18
      "elfexe" - Linux ELF-EXEC
20
      "elfso"  - Linux ELF-SO
19
      "elfso"  - Linux ELF-SO
21
  4) íåîáÿçàòåëüíûå ïàðàìåòðû-êëþ÷è
20
  3) íåîáÿçàòåëüíûå ïàðàìåòðû-êëþ÷è
22
      -stk  ðàçìåð ñòýêà â ìåãàáàéòàõ (ïî óìîë÷àíèþ 2 Ìá)
21
      -out  èìÿ ðåçóëüòèðóþùåãî ôàéëà; ïî óìîë÷àíèþ,
23
      -base 
àäðåñ çàãðóçêè èñïîëíÿåìîãî ôàéëà â êèëîáàéòàõ
22
      ñîâïàäàåò ñ èìåíåì ãëàâíîãî ìîäóëÿ, íî ñ äðóãèì ðàñøèðåíèåì
24
      -ver  âåðñèÿ ïðîãðàììû (òîëüêî äëÿ obj)
23
      (ñîîòâåòñòâóåò òèïó èñïîëíÿåìîãî ôàéëà)
-
 
24
      -stk  ðàçìåð ñòýêà â ìåãàáàéòàõ (ïî óìîë÷àíèþ 2 Ìá,
-
 
25
       äîïóñòèìî îò 1 äî 32 Ìá)
25
      -nochk <"ptibcwra"> îòêëþ÷èòü ïðîâåðêè ïðè âûïîëíåíèè (ñì. íèæå)
26
      -nochk <"ptibcwra"> îòêëþ÷èòü ïðîâåðêè ïðè âûïîëíåíèè (ñì. íèæå)
-
 
27
      -ver  âåðñèÿ ïðîãðàììû (òîëüêî äëÿ obj)
Line 26... Line 28...
26
 
28
 
27
      ïàðàìåòð -nochk çàäàåòñÿ â âèäå ñòðîêè èç ñèìâîëîâ:
29
      ïàðàìåòð -nochk çàäàåòñÿ â âèäå ñòðîêè èç ñèìâîëîâ:
28
      "p" - óêàçàòåëè
30
      "p" - óêàçàòåëè
29
      "t" - òèïû
31
      "t" - òèïû
Line 40... Line 42...
40
      Íàïðèìåð: -nochk it - îòêëþ÷èòü ïðîâåðêó èíäåêñîâ è îõðàíó òèïà.
42
      Íàïðèìåð: -nochk it - îòêëþ÷èòü ïðîâåðêó èíäåêñîâ è îõðàíó òèïà.
41
      -nochk a - îòêëþ÷èòü âñå îòêëþ÷àåìûå ïðîâåðêè.
43
      -nochk a - îòêëþ÷èòü âñå îòêëþ÷àåìûå ïðîâåðêè.
Line 42... Line 44...
42
 
44
 
Line 43... Line 45...
43
  Íàïðèìåð:
45
  Íàïðèìåð:
44
 
46
 
45
  Compiler.exe "C:\example.ob07" "C:\example.exe" console -stk 1
47
  Compiler.exe "C:\example.ob07" console -out "C:\example.exe" -stk 1
46
  Compiler.exe "C:\example.ob07" "C:\example.dll" dll
48
  Compiler.exe "C:\example.ob07" dll -out "C:\example.dll"
47
  Compiler.exe "C:\example.ob07" "C:\example.exe" gui -stk 4
49
  Compiler.exe "C:\example.ob07" gui -out "C:\example.exe" -stk 4
48
  Compiler.exe "C:\example.ob07" "C:\example.exe" console -nochk pti
50
  Compiler.exe "C:\example.ob07" console -out "C:\example.exe" -nochk pti
49
  Compiler.kex "/tmp0/1/example.ob07" "/tmp0/1/example.kex" kos -stk 2
51
  Compiler.kex "/tmp0/1/example.ob07" kos -out "/tmp0/1/example.kex" -stk 4
Line 50... Line 52...
50
  Compiler.kex "/tmp0/1/example.ob07" "/tmp0/1/example.obj" obj -ver 2.7
52
  Compiler.kex "/tmp0/1/example.ob07" obj -out "/tmp0/1/example.obj" -ver 2.7
51
  Compiler.exe "C:\example.ob07" "C:\example" elfexe
53
  Compiler.exe "C:\example.ob07" elfexe -out "C:\example" -stk 1 -nochk a
Line 52... Line 54...
52
 
54
 
Line 164... Line 166...
164
                Âñòàâêà ìàøèííîãî êîäà,
166
                Âñòàâêà ìàøèííîãî êîäà,
165
                byte1, byte2 ... - êîíñòàíòû â äèàïàçîíå 0..255,
167
                byte1, byte2 ... - êîíñòàíòû â äèàïàçîíå 0..255,
166
                íàïðèìåð:
168
                íàïðèìåð:
167
                SYSTEM.CODE(08BH, 045H, 008H) (* mov eax, dword [ebp + 08h] *)
169
                SYSTEM.CODE(08BH, 045H, 008H) (* mov eax, dword [ebp + 08h] *)
Line 168... Line -...
168
 
-
 
169
  Òàêæå â ìîäóëå SYSTEM îïðåäåëåí òèï CARD16 (2 áàéòà). Äëÿ òèïà CARD16 íå
-
 
170
äîïóñêàþòñÿ íèêàêèå ÿâíûå îïåðàöèè, çà èñêëþ÷åíèåì ïðèñâàèâàíèÿ.
-
 
171
Ïðåîáðàçîâàíèÿ CARD16 -> INTEGER è INTEGER -> CARD16 ìîãóò áûòü ðåàëèçîâàíû
-
 
172
òàê:
-
 
173
 
-
 
174
        PROCEDURE Card16ToInt (w: SYSTEM.CARD16): INTEGER;
-
 
175
        VAR i: INTEGER;
-
 
176
        BEGIN
-
 
177
            SYSTEM.PUT(SYSTEM.ADR(i), w)
-
 
178
            RETURN i
-
 
179
        END Card16ToInt;
-
 
180
 
-
 
181
        PROCEDURE IntToCard16 (i: INTEGER): SYSTEM.CARD16;
-
 
182
        VAR w: SYSTEM.CARD16;
-
 
183
        BEGIN
-
 
184
            SYSTEM.GET(SYSTEM.ADR(i), w)
-
 
185
            RETURN w
-
 
Line 186... Line 170...
186
        END IntToCard16;
170
 
Line 187... Line 171...
187
 
171
 
188
  Ôóíêöèè ïñåâäîìîäóëÿ SYSTEM íåëüçÿ èñïîëüçîâàòü â êîíñòàíòíûõ âûðàæåíèÿõ.
172
  Ôóíêöèè ïñåâäîìîäóëÿ SYSTEM íåëüçÿ èñïîëüçîâàòü â êîíñòàíòíûõ âûðàæåíèÿõ.