Subversion Repositories Kolibri OS

Rev

Rev 7496 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7496 Rev 7544
Line -... Line 1...
-
 
1
 
1
 
2
 
2
Äîêóìåíòàöèÿ íà C--
3
	Äîêóìåíòàöèÿ íà C--
3
 
4
	
-
 
5
	
-
 
26
 
26
 
27
 
27
Ñîäåðæàíèå.
28

Ñîäåðæàíèå

28
 
-
 
29
                
29
 
30
 
-
 
31
 
30
 
32
1      Ââåäåíèå.
31
1      Ââåäåíèå.
33
1.1    Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
32
1.1    Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
34
1.2    ×òî òàêîå C--?
33
1.2    ×òî òàêîå C--?
35
1.3    Êàê óñòàíîâèòü C--.
34
1.3    Êàê óñòàíîâèòü C--.
36
 
35
 
37
2.     Óïðàâëåíèå êîìïèëÿöèåé.
36
2.     Óïðàâëåíèå êîìïèëÿöèåé.
38
2.1    Ïàðàìåòðû êîìàíäíîé ñòðîêè êîìïèëÿòîðà C--.
37
2.1    Ïàðàìåòðû êîìàíäíîé ñòðîêè êîìïèëÿòîðà C--.
39
2.1.1  /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
38
2.1.1  /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
40
2.1.2  /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
39
2.1.2  /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
41
2.1.3  /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
40
2.1.3  /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
42
2.1.4  /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
41
2.1.4  /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
43
2.1.5  /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
42
2.1.5  /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
44
2.1.6  /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
43
2.1.6  /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
45
2.1.7  /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.
44
2.1.7  /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.
46
2.1.8  /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
45
2.1.8  /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
47
2.1.9  /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
46
2.1.9  /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
48
2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
47
2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
49
2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
48
2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
50
2.1.12 /J0 /J1 /J2.
49
2.1.12 /J0 /J1 /J2.
51
2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
50
2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
52
2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.
51
2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.
53
2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
52
2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
54
2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.
53
2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.
55
2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
54
2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
56
2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
55
2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
57
2.2    Äèðåêòèâû òðàíñëÿòîðà.
56
2.2    Äèðåêòèâû òðàíñëÿòîðà.
58
2.2.1  ?ifdef/?ifndef
57
2.2.1  ?ifdef/?ifndef
59
2.2.2  ?initallvar
58
2.2.2  ?initallvar
60
2.2.3  ?usestartup
59
2.2.3  ?usestartup
61
2.2.4  ?startusevar
60
2.2.4  ?startusevar
62
2.2.5  ?atexit
61
2.2.5  ?atexit
63
2.2.6  ?startuptomain
62
2.2.6  ?startuptomain
64
2.2.7  ?undef
63
2.2.7  ?undef
65
2.2.8  ?align è ?aligncode
64
2.2.8  ?align è ?aligncode
66
2.2.9  ?pragma
65
2.2.9  ?pragma
67
 
66
 
68
3.     Êîíñòàíòû.
67
3.     Êîíñòàíòû.
69
3.1    ×èñëîâûå êîíñòàíòû.
68
3.1    ×èñëîâûå êîíñòàíòû.
70
3.2    Ñèìâîëüíûå êîíñòàíòû.
69
3.2    Ñèìâîëüíûå êîíñòàíòû.
71
3.3    Ñòðîêîâûå êîíñòàíòû.
70
3.3    Ñòðîêîâûå êîíñòàíòû.
72
3.4    Ïîñòîÿííûå âûðàæåíèÿ.
71
3.4    Ïîñòîÿííûå âûðàæåíèÿ.
73
 
72
 
74
4.     Âûðàæåíèÿ.
73
4.     Âûðàæåíèÿ.
75
4.1    Òèïû âûðàæåíèé.
74
4.1    Òèïû âûðàæåíèé.
76
4.2    Âûðàæåíèÿ òèïà EAX/AX/AL.
75
4.2    Âûðàæåíèÿ òèïà EAX/AX/AL.
77
4.3    Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
76
4.3    Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
78
4.4    Íå - EAX/AX/AL âûðàæåíèÿ.
77
4.4    Íå - EAX/AX/AL âûðàæåíèÿ.
79
4.5    Óñëîâíûå âûðàæåíèÿ.
78
4.5    Óñëîâíûå âûðàæåíèÿ.
80
4.5.1  Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
79
4.5.1  Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
81
4.5.2  Ñëîæíûå óñëîâíûå âûðàæåíèÿ.
80
4.5.2  Ñëîæíûå óñëîâíûå âûðàæåíèÿ.
82
4.6    Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
81
4.6    Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
83
4.7    Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
82
4.7    Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
84
 
83
 
85
5.     Èäåíòèôèêàòîðû.
84
5.     Èäåíòèôèêàòîðû.
86
5.1    Ôîðìàò èäåíòèôèêàòîðà.
85
5.1    Ôîðìàò èäåíòèôèêàòîðà.
87
5.2    Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
86
5.2    Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
88
5.3    Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
87
5.3    Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
89
5.4    Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
88
5.4    Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
90
 
89
 
91
6.     Ïåðåìåííûå.
90
6.     Ïåðåìåííûå.
92
6.1    Òèïû ïåðåìåííûõ.
91
6.1    Òèïû ïåðåìåííûõ.
93
6.2    Îáúÿâëåíèå ïåðåìåííûõ.
92
6.2    Îáúÿâëåíèå ïåðåìåííûõ.
94
6.3    Ãëîáàëüíûå ïåðåìåííûå.
93
6.3    Ãëîáàëüíûå ïåðåìåííûå.
95
6.4    Ëîêàëüíûå ïåðåìåííûå.
94
6.4    Ëîêàëüíûå ïåðåìåííûå.
96
6.5    Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
95
6.5    Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
97
6.6    Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
96
6.6    Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
98
6.7    Ïåðåìåííûå òèïà float.
97
6.7    Ïåðåìåííûå òèïà float.
99
6.7.1  Ôîðìàò ïåðåìåííûõ òèïà float.
98
6.7.1  Ôîðìàò ïåðåìåííûõ òèïà float.
100
6.7.2  Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
99
6.7.2  Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
101
6.7.3  Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.
100
6.7.3  Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.
102
6.7.4  Ìàòåìàòè÷åñêèå îïåðàöèè.
101
6.7.4  Ìàòåìàòè÷åñêèå îïåðàöèè.
103
6.7.5  Ïðåîáðàçîâàíèÿ òèïîâ.
102
6.7.5  Ïðåîáðàçîâàíèÿ òèïîâ.
104
6.7.6  Îïåðàöèè ñðàâíåíèÿ.
103
6.7.6  Îïåðàöèè ñðàâíåíèÿ.
105
6.7.7  Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
104
6.7.7  Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
106
6.8    Óêàçàòåëè.
105
6.8    Óêàçàòåëè.
107
 
106
 
108
7.     Àäðåñàöèÿ.
107
7.     Àäðåñàöèÿ.
109
7.1    Îòíîñèòåëüíàÿ àäðåñàöèÿ.
108
7.1    Îòíîñèòåëüíàÿ àäðåñàöèÿ.
110
7.2    Àáñîëþòíàÿ àäðåñàöèÿ.
109
7.2    Àáñîëþòíàÿ àäðåñàöèÿ.
111
 
110
 
112
8.     Ðàáîòà ñ áëîêàìè äàííûõ.
111
8.     Ðàáîòà ñ áëîêàìè äàííûõ.
113
8.1    Ñòðóêòóðû.
112
8.1    Ñòðóêòóðû.
114
8.1.1  ×òî òàêîå ñòðóêòóðû.
113
8.1.1  ×òî òàêîå ñòðóêòóðû.
115
8.1.2  Ñèíòàêñèñ.
114
8.1.2  Ñèíòàêñèñ.
116
8.1.3  Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
115
8.1.3  Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
117
8.1.4  Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
116
8.1.4  Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
118
8.1.5  Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
117
8.1.5  Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
119
8.1.6  Âëîæåííûå ñòðóêòóðû.
118
8.1.6  Âëîæåííûå ñòðóêòóðû.
120
8.1.7  Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
119
8.1.7  Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
121
8.1.8  Áèòîâûå ïîëÿ ñòðóêòóð.
120
8.1.8  Áèòîâûå ïîëÿ ñòðóêòóð.
122
8.2    Îáúåäèíåíèÿ.
121
8.2    Îáúåäèíåíèÿ.
123
8.3    Êîìàíäû FROM è EXTRACT.
122
8.3    Êîìàíäû FROM è EXTRACT.
124
 
123
 
125
9.     Îïåðàòîðû.
124
9.     Îïåðàòîðû.
126
9.1    Óñëîâíûå èíñòðóêöèè.
125
9.1    Óñëîâíûå èíñòðóêöèè.
127
9.2    Öèêëû do{} while.
126
9.2    Öèêëû do{} while.
128
9.3    Öèêëû loop, LOOPNZ, loopnz.
127
9.3    Öèêëû loop, LOOPNZ, loopnz.
129
9.4    Öèêë while, WHILE.
128
9.4    Öèêë while, WHILE.
130
9.5    Öèêë for, FOR.
129
9.5    Öèêë for, FOR.
131
9.6    Îïåðàòîð ïåðåêëþ÷àòåëü switch.
130
9.6    Îïåðàòîð ïåðåêëþ÷àòåëü switch.
132
9.7    Îïåðàòîð ïåðåõîäà goto, GOTO.
131
9.7    Îïåðàòîð ïåðåõîäà goto, GOTO.
133
9.8    Îïåðàòîð ðàçðûâà break, BREAK.
132
9.8    Îïåðàòîð ðàçðûâà break, BREAK.
134
9.9    Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
133
9.9    Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
135
9.10   Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
134
9.10   Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
136
9.11   Ïåðåõîä ÷åðåç öèêëû.
135
9.11   Ïåðåõîä ÷åðåç öèêëû.
137
9.12   Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
136
9.12   Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
138
9.13   Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.
137
9.13   Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.
139
9.14   Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
138
9.14   Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
140
9.15   Îïåðàòîð ïåðåñòàíîâêè.
139
9.15   Îïåðàòîð ïåðåñòàíîâêè.
141
9.16   Îïåðàòîð îòðèöàíèÿ.
140
9.16   Îïåðàòîð îòðèöàíèÿ.
142
9.17   Îïåðàòîð èíâåðñèè.
141
9.17   Îïåðàòîð èíâåðñèè.
143
9.18   Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
142
9.18   Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
144
9.19   Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
143
9.19   Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
145
9.20   Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
144
9.20   Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
146
9.21   Îïåðàòîð sizeof.
145
9.21   Îïåðàòîð sizeof.
147
9.22   Ìåòêè ïåðåõîäà.
146
9.22   Ìåòêè ïåðåõîäà.
148
 
147
 
149
10.    Àññåìáëåð.
148
10.    Àññåìáëåð.
150
10.1   Ïîääåðæêà êîìàíä àññåìáëåðà.
149
10.1   Ïîääåðæêà êîìàíä àññåìáëåðà.
151
10.2   Êëþ÷åâîå ñëîâî asm.
150
10.2   Êëþ÷åâîå ñëîâî asm.
152
10.3   Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
151
10.3   Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
153
10.4   Èíñòðóêöèè ïðîöåññîðà Pentium III.
152
10.4   Èíñòðóêöèè ïðîöåññîðà Pentium III.
154
 
153
 
155
11.    Ïðîöåäóðû.
154
11.    Ïðîöåäóðû.
156
11.1   Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
155
11.1   Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
157
11.2   Ñòåêîâûå ïðîöåäóðû.
156
11.2   Ñòåêîâûå ïðîöåäóðû.
158
11.3   Ðåãèñòðîâûå ïðîöåäóðû.
157
11.3   Ðåãèñòðîâûå ïðîöåäóðû.
159
11.4   Äèíàìè÷åñêèå ïðîöåäóðû.
158
11.4   Äèíàìè÷åñêèå ïðîöåäóðû.
160
11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
159
11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
161
11.5   inline-ïðîöåäóðû.
160
11.5   inline-ïðîöåäóðû.
162
11.5.1 Äðóãîå ïðèìåíåíèå inline.
161
11.5.1 Äðóãîå ïðèìåíåíèå inline.
163
11.6   Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
162
11.6   Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
164
11.7   Çàìåíà return íà goto.
163
11.7   Çàìåíà return íà goto.
165
11.8   Âîçâðàùàåìûå çíà÷åíèÿ.
164
11.8   Âîçâðàùàåìûå çíà÷åíèÿ.
166
11.9   Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
165
11.9   Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
167
11.10  Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
166
11.10  Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
168
11.11  Èñïîëüçîâàíèå ìàêðîêîìàíä.
167
11.11  Èñïîëüçîâàíèå ìàêðîêîìàíä.
169
11.12  Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.
168
11.12  Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.
170
11.13  Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
169
11.13  Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
171
11.14  Âñòîåííûå â êîìïèëÿòîð ïðîöåäóðû.
170
11.14  Âñòîåííûå â êîìïèëÿòîð ïðîöåäóðû.
172
11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
171
11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
173
11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
172
11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
174
        outportd.
173
        outportd.
175
11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
174
11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
176
11.15  Êëàññû.
175
11.15  Êëàññû.
177
11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
176
11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
178
11.15.2 Íàñëåäîâàíèå.
177
11.15.2 Íàñëåäîâàíèå.
179
11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
178
11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
180
 
179
 
181
12.    Òèïû âûõîäíûõ ôàéëîâ.
180
12.    Òèïû âûõîäíûõ ôàéëîâ.
182
12.1   Âûõîäíûå ôàéëû òèïà COM.
181
12.1   Âûõîäíûå ôàéëû òèïà COM.
183
12.2   Âûõîäíûå ôàéëû òèïà EXE.
182
12.2   Âûõîäíûå ôàéëû òèïà EXE.
184
12.3   Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.
183
12.3   Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.
185
12.4   Îáúåêòíûé âûõîäíîé ôàéë OBJ.
184
12.4   Îáúåêòíûé âûõîäíîé ôàéë OBJ.
186
12.5   COM ôàéë symbiosis.
185
12.5   COM ôàéë symbiosis.
187
12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
186
12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
188
12.5.2 Êàê ýòî äåëàòü.
187
12.5.2 Êàê ýòî äåëàòü.
189
12.5.3 Èñïîëüçîâàíèå.
188
12.5.3 Èñïîëüçîâàíèå.
190
12.5.4 Çëîóïîòðåáëåíèÿ.
189
12.5.4 Çëîóïîòðåáëåíèÿ.
191
12.6   SYS - äðàéâåðû óñòðîéñòâ.
190
12.6   SYS - äðàéâåðû óñòðîéñòâ.
192
12.7   Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
191
12.7   Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
193
12.8   32-áèòíûå ôàéëû.
192
12.8   32-áèòíûå ôàéëû.
194
12.8.1 32-áèòíûé êîä ïîä DOS.
193
12.8.1 32-áèòíûé êîä ïîä DOS.
195
12.8.2 32-áèòíûé êîä ïîä Windows.
194
12.8.2 32-áèòíûé êîä ïîä Windows.
196
12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
195
12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
197
12.8.4 Ñîçäàíèå DLL ïîä Windows.
196
12.8.4 Ñîçäàíèå DLL ïîä Windows.
198
12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
197
12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
199
12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
198
12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
200
12.9   Âûõîäíûå ôàéëû äëÿ MeOS.
199
12.9   Âûõîäíûå ôàéëû äëÿ MeOS.
201
 
200
 
202
13.    Ïðèëîæåíèÿ.
201
13.    Ïðèëîæåíèÿ.
203
13.1   Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
202
13.1   Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
204
13.2   Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
203
13.2   Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
205
13.3   C--.ini ôàéë.
204
13.3   C--.ini ôàéë.
206
13.4   startup.h-- ôàéë.
205
13.4   startup.h-- ôàéë.
207
13.5   mainlib.ldp ôàéë.
206
13.5   mainlib.ldp ôàéë.
208
13.6   C-- ñèìâîëû.
207
13.6   C-- ñèìâîëû.
209
 
208
 
Line 210... Line 209...
210
 
209
 
Line 211... Line 210...
211
 
210
 
212
1. Âñòóïëåíèå.
211

1. Âñòóïëåíèå.

Line 213... Line 212...
213
 
212
 
214
  1.1 Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
213
  1.1 Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
215
 
214
 
216
 
215
 
Line 249... Line 248...
249
  íå ãàðàíòèðóþ, ÷òî âñå îíè áóäóò ðåàëèçîâàíû. Åñëè ðåàëèçîâûâàòü âñå
248
  íå ãàðàíòèðóþ, ÷òî âñå îíè áóäóò ðåàëèçîâàíû. Åñëè ðåàëèçîâûâàòü âñå
250
  ïîñòóïàþùèå ïðåäëîæåíèÿ, òî êîìïèëÿòîð ïðåâðàòèòñÿ â ñâàëêó. Íî åñëè Âàøå
249
  ïîñòóïàþùèå ïðåäëîæåíèÿ, òî êîìïèëÿòîð ïðåâðàòèòñÿ â ñâàëêó. Íî åñëè Âàøå
251
  ïðåäëîæåíèå áóäåò öåííûì (íà ìîé âçãëÿä, òàê ÷òî Âàì ïðèäåòñÿ ñâîå
250
  ïðåäëîæåíèå áóäåò öåííûì (íà ìîé âçãëÿä, òàê ÷òî Âàì ïðèäåòñÿ ñâîå
252
  ïðåäëîæåíèå õîðîøî àðãóìåíòèðîâàòü) è åãî áóäåò âîçìîæíûì ðåàëèçîâàòü, îíî
251
  ïðåäëîæåíèå õîðîøî àðãóìåíòèðîâàòü) è åãî áóäåò âîçìîæíûì ðåàëèçîâàòü, îíî
253
  áåç ñîìíåíèÿ íàéäåò ìåñòî â êîìïèëÿòîðå.
252
  áåç ñîìíåíèÿ íàéäåò ìåñòî â êîìïèëÿòîðå.
254
Return to contents.
253
Return to contents.
Line 255... Line 254...
255
 
254
 
256
 
255
 
257
 
256
 
Line 258... Line 257...
258
  1.2 ×òî òàêîå C--?
257
  1.2 ×òî òàêîå C--?
259
 
258
 
260
 
259
 
261
      C-- áûë ðàçðàáîòàí, äëÿ òîãî ÷òîáû ñòðîèòü ìàëåíüêèå è áûñòðûå
260
      C-- áûë ðàçðàáîòàí, äëÿ òîãî ÷òîáû ñòðîèòü ìàëåíüêèå è áûñòðûå
Line 278... Line 277...
278
  ìîæåò ñîçäàâàòü îáúåêòíûå ôàéëû (obj), íî òîëüêî äëÿ DOS ïðîãðàìì.
277
  ìîæåò ñîçäàâàòü îáúåêòíûå ôàéëû (obj), íî òîëüêî äëÿ DOS ïðîãðàìì.
Line 279... Line 278...
279
 
278
 
280
      C-- ðàçðàáîòàí òîëüêî äëÿ èñïîëüçîâàíèÿ íà êîìïüþòåðàõ ñ ïðîöåññîðàìè
279
      C-- ðàçðàáîòàí òîëüêî äëÿ èñïîëüçîâàíèÿ íà êîìïüþòåðàõ ñ ïðîöåññîðàìè
281
  ñîâìåñòèìûìè ñ ñåìåéñòâîì 80x86. Êîìïèëÿòîð ìîæåò ðàáîòàòü òîëüêî ñ
280
  ñîâìåñòèìûìè ñ ñåìåéñòâîì 80x86. Êîìïèëÿòîð ìîæåò ðàáîòàòü òîëüêî ñ
282
  îïåðàöèîííûìè ñèñòåìàìè DOS è ñåìåéñòâîì Windows.
281
  îïåðàöèîííûìè ñèñòåìàìè DOS è ñåìåéñòâîì Windows.
Line 283... Line 282...
283
Return to contents.
282
Return to contents.
284
 
283
 
285
 
284
 
Line 286... Line 285...
286
 
285
 
287
  1.3 Êàê óñòàíîâèòü C--.
286
  1.3 Êàê óñòàíîâèòü C--.
288
 
287
 
289
 
288
 
Line 318... Line 317...
318
 
317
 
319
  Áîëüøîé íåîáõîäèìîñòè â ïåðåìåííîé îêðóæåíèÿ äëÿ ñåãîäíÿøíåé âåðñèè
318
  Áîëüøîé íåîáõîäèìîñòè â ïåðåìåííîé îêðóæåíèÿ äëÿ ñåãîäíÿøíåé âåðñèè
320
  êîìïèëÿòîðà íåò. Ñóùåñòâóåò íåñêîëüêî äðóãèõ ñïîñîáîâ, óêàçàòü êîìïèëÿòîðó
319
  êîìïèëÿòîðà íåò. Ñóùåñòâóåò íåñêîëüêî äðóãèõ ñïîñîáîâ, óêàçàòü êîìïèëÿòîðó
321
  ìåñòî ðàñïîëîæåíèÿ áèáëèîòåê. Ïîýòîìó îïðåäåëÿòü èëè íå îïðåäåëÿòü
320
  ìåñòî ðàñïîëîæåíèÿ áèáëèîòåê. Ïîýòîìó îïðåäåëÿòü èëè íå îïðåäåëÿòü
322
  ïåðåìåííóþ îêðóæåíèÿ äåëî âàøåãî âêóñà è ïðèâû÷åê.
321
  ïåðåìåííóþ îêðóæåíèÿ äåëî âàøåãî âêóñà è ïðèâû÷åê.
Line 323... Line 322...
323
Return to contents.
322
Return to contents.
324
 
323
 
Line 325... Line 324...
325
 
324
 
326
 
325
 
Line 327... Line 326...
327
2. Óïðàâëåíèå êîìïèëÿöèåé.
326
2. Óïðàâëåíèå êîìïèëÿöèåé.
Line 328... Line 327...
328
 
327
 
Line 496... Line 495...
496
 
495
 
Line 497... Line 496...
497
  /WFA-
496
  /WFA-
498
 
497
 
499
       Ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî ïèñàòü êàê áîëüøèìè, òàê è
498
       Ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî ïèñàòü êàê áîëüøèìè, òàê è
Line 500... Line 499...
500
  ìàëåíüêèìè áóêâàìè.
499
  ìàëåíüêèìè áóêâàìè.
501
Return to contents.
500
Return to contents.
502
 
501
 
Line 503... Line 502...
503
 
502
 
504
 
503
 
505
    2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
504
    2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
Line 541... Line 540...
541
 
540
 
542
    AX = var;
541
    AX = var;
543
    AX = AX / 16;
542
    AX = AX / 16;
544
    AX = AX * 16;
543
    AX = AX * 16;
545
    var = AX;
544
    var = AX;
Line 546... Line 545...
546
Return to contents.
545
Return to contents.
547
 
546
 
548
 
547
 
Line 549... Line 548...
549
 
548
 
550
    2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
549
    2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
551
 
550
 
552
 
551
 
Line 570... Line 569...
570
      a = b * c / d;
569
      a = b * c / d;
Line 571... Line 570...
571
 
570
 
572
    åñëè çíà÷åíèÿ ïåðåìåííûõ b = 0xC000, c = 0x1000, d=0x10, ïîñëå çàïóñêà
571
    åñëè çíà÷åíèÿ ïåðåìåííûõ b = 0xC000, c = 0x1000, d=0x10, ïîñëå çàïóñêà
573
    òàêàÿ ïðîãðàììà çàâèñíåò ñ ñîîáùåíèåì î òîì, ÷òî ïðîèçîøëî ïåðåïîëíåíèå
572
    òàêàÿ ïðîãðàììà çàâèñíåò ñ ñîîáùåíèåì î òîì, ÷òî ïðîèçîøëî ïåðåïîëíåíèå
574
    ïðè äåëåíèè.
573
    ïðè äåëåíèè.
Line 575... Line 574...
575
Return to contents.
574
Return to contents.
576
 
575
 
577
 
576
 
Line 578... Line 577...
578
 
577
 
579
    2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
578
    2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
580
 
579
 
581
 
580
 
Line 587... Line 586...
587
    êîìàíäíîé ñòðîêå ïëþñ îäèí.
586
    êîìàíäíîé ñòðîêå ïëþñ îäèí.
Line 588... Line 587...
588
 
587
 
589
        Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè âêëþ÷àåòñÿ äèðåêòèâîé
588
        Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè âêëþ÷àåòñÿ äèðåêòèâîé
590
    ?argc TRUE èëè èç êîìàíäíîé ñòðîêè êîìïèëÿòîðà êëþ÷îì /argc èëè
589
    ?argc TRUE èëè èç êîìàíäíîé ñòðîêè êîìïèëÿòîðà êëþ÷îì /argc èëè
591
    ñòðî÷êîé argc â ôàéëå C--.INI.
590
    ñòðî÷êîé argc â ôàéëå C--.INI.
Line 592... Line 591...
592
Return to contents.
591
Return to contents.
593
 
592
 
594
 
593
 
Line 595... Line 594...
595
 
594
 
596
    2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
595
    2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
597
 
596
 
598
 
597
 
Line 619... Line 618...
619
    âûäàâàòü ïðåäóïðåæäåíèÿ.
618
    âûäàâàòü ïðåäóïðåæäåíèÿ.
Line 620... Line 619...
620
 
619
 
621
        Âêëþ÷àåòñÿ ýòîò ðåæèì îïòèìèçàöèè ëèáî ñ êîìàíäíîé ñòðîêè /ost, ëèáî
620
        Âêëþ÷àåòñÿ ýòîò ðåæèì îïòèìèçàöèè ëèáî ñ êîìàíäíîé ñòðîêè /ost, ëèáî
622
    äèðåêòèâîé #pragma option ost, ëèáî ñòðîêîé â ôàéëå c--.ini - ost.
621
    äèðåêòèâîé #pragma option ost, ëèáî ñòðîêîé â ôàéëå c--.ini - ost.
623
    Îòêëþ÷èòü, âêëþ÷åííûé ðàíåå, ýòîò ðåæèì ìîæíî äèðåêòèâîé #pragma option ost-.
622
    Îòêëþ÷èòü, âêëþ÷åííûé ðàíåå, ýòîò ðåæèì ìîæíî äèðåêòèâîé #pragma option ost-.
Line 624... Line 623...
624
Return to contents.
623
Return to contents.
625
 
624
 
626
 
625
 
Line 627... Line 626...
627
 
626
 
628
    2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
627
    2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
629
 
628
 
630
 
629
 
631
        Åñëè Âû íàïèñàëè ïðîãðàììó, êîòîðàÿ ìîæåò êîìïèëèðîâàòüñÿ ïî ðàçíîìó,
630
        Åñëè Âû íàïèñàëè ïðîãðàììó, êîòîðàÿ ìîæåò êîìïèëèðîâàòüñÿ ïî ðàçíîìó,
632
    â çàâèñèìîñòè îò ñîñòîÿíèÿ íåêîòîðûõ èäåíòèôèêàòîðîâ (èñïîëüçóåòñÿ ðåæèì
631
    â çàâèñèìîñòè îò ñîñòîÿíèÿ íåêîòîðûõ èäåíòèôèêàòîðîâ (èñïîëüçóåòñÿ ðåæèì
Line 633... Line 632...
633
    óñëîâíîé êîìïèëÿöèè), òî Âàì î÷åíü ìîæåò ïðèãîäèòñÿ ýòà îïöèÿ.
632
    óñëîâíîé êîìïèëÿöèè), òî Âàì î÷åíü ìîæåò ïðèãîäèòñÿ ýòà îïöèÿ.
634
    Óñòàíàâëèâàÿ ñ êîìàíäíîé ñòðîêè ðàçëè÷íûå èäåíòèôèêàòîðû, Âû ìîæåòå
633
    Óñòàíàâëèâàÿ ñ êîìàíäíîé ñòðîêè ðàçëè÷íûå èäåíòèôèêàòîðû, Âû ìîæåòå
Line 635... Line 634...
635
    ïîëó÷àòü ðàçëè÷íûå âàðèàíòû ïðîãðàììû, íå ðåäàêòèðóÿ èñõîäíûé òåêñò
634
    ïîëó÷àòü ðàçëè÷íûå âàðèàíòû ïðîãðàììû, íå ðåäàêòèðóÿ èñõîäíûé òåêñò
636
    ïðîãðàììû.
635
    ïðîãðàììû.
637
 
636
 
Line 638... Line 637...
638
        Èäåíòèôèêàòîð ââîäèòñÿ ñ êîìàíäíîé ñòðîêè êëþ÷îì /d=idname.
637
        Èäåíòèôèêàòîð ââîäèòñÿ ñ êîìàíäíîé ñòðîêè êëþ÷îì /d=idname.
639
Return to contents.
638
Return to contents.
640
 
639
 
Line 641... Line 640...
641
 
640
 
642
 
641
 
643
    2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
642
    2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
644
 
643
 
645
 
644
 
646
        Ñòàëî âîçìîæíûì èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè áåç ïðåôèêñà $
645
        Ñòàëî âîçìîæíûì èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè áåç ïðåôèêñà $
Line 647... Line 646...
647
    è âíå áëîêà asm. Ýòîò ðåæèì âêëþ÷àåòñÿ: ñ êîìàíäíîé ñòðîêè îïöèåé /ia;
646
    è âíå áëîêà asm. Ýòîò ðåæèì âêëþ÷àåòñÿ: ñ êîìàíäíîé ñòðîêè îïöèåé /ia;
648
    â ôàéëå êîíôèãóðàöèè ñòðîêîé ia èëè äèðåêòèâîé #pragma option ia.
647
    â ôàéëå êîíôèãóðàöèè ñòðîêîé ia èëè äèðåêòèâîé #pragma option ia.
649
 
648
 
Line 650... Line 649...
650
        Êîãäà ýòîò ðåæèì âêëþ÷åí, âñå èìåíà àññåìáëåðíûõ èíñòðóêöèé ñòàíîâÿòñÿ
649
        Êîãäà ýòîò ðåæèì âêëþ÷åí, âñå èìåíà àññåìáëåðíûõ èíñòðóêöèé ñòàíîâÿòñÿ
651
    çàðåçåðâèðîâàííûìè ñëîâàìè, ò.å. Âû íå ñìîæåòå ýòè èìåíà èñïîëüçîâàòü â
650
    çàðåçåðâèðîâàííûìè ñëîâàìè, ò.å. Âû íå ñìîæåòå ýòè èìåíà èñïîëüçîâàòü â
652
    êà÷åñòâå èìåí ïåðåìåííûõ èëè ïðîöåäóð. Àññåìáëåðíûå èíñòðóêöèè êîìïèëÿòîð
651
    êà÷åñòâå èìåí ïåðåìåííûõ èëè ïðîöåäóð. Àññåìáëåðíûå èíñòðóêöèè êîìïèëÿòîð
653
    ðàñïîçíàåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè
652
    ðàñïîçíàåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè
Line 669... Line 668...
669
        Íî èíîãäà (î÷åíü ðåäêî) âîçíèêàåò ïîòðåáíîñòü ñäåëàòü ïîâòîðíîå
668
        Íî èíîãäà (î÷åíü ðåäêî) âîçíèêàåò ïîòðåáíîñòü ñäåëàòü ïîâòîðíîå
670
    âêëþ÷åíèå ôàéëà. Äëÿ ýòîãî â êîìïèëÿòîðå åñòü îïöèÿ êîìàíäíîé ñòðîêè
669
    âêëþ÷åíèå ôàéëà. Äëÿ ýòîãî â êîìïèëÿòîðå åñòü îïöèÿ êîìàíäíîé ñòðîêè
671
    /cri-, êîòîðàÿ çàïðåùàåò êîìïèëÿòîðó äåëàòü ïðîâåðêó íà ïîâòîðíîå
670
    /cri-, êîòîðàÿ çàïðåùàåò êîìïèëÿòîðó äåëàòü ïðîâåðêó íà ïîâòîðíîå
672
    âêëþ÷åíèå. Ñîîòâåòñòâåííî, äëÿ c--.ini ôàéëà, ýòî ìîæíî ñäåëàòü ñòðîêîé
671
    âêëþ÷åíèå. Ñîîòâåòñòâåííî, äëÿ c--.ini ôàéëà, ýòî ìîæíî ñäåëàòü ñòðîêîé
673
    cri- èëè äèðåêòèâîé â êîìïèëèðóåìîì ôàéëå - #pragma option cri-.
672
    cri- èëè äèðåêòèâîé â êîìïèëèðóåìîì ôàéëå - #pragma option cri-.
674
Return to contents.
673
Return to contents.
Line 675... Line 674...
675
 
674
 
676
 
675
 
677
 
676
 
Line 678... Line 677...
678
    2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
677
    2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
679
 
678
 
680
 
679
 
681
        Åñëè Âû õîòèòå â ñâîåé ïðîãðàììå èñïîëüçîâàòü DLL, äëÿ êîòîðîé íåò
680
        Åñëè Âû õîòèòå â ñâîåé ïðîãðàììå èñïîëüçîâàòü DLL, äëÿ êîòîðîé íåò
Line 690... Line 689...
690
    îáÿçàòåëüíî äîëæíà ïðèñóòñòâîâàòü â êîìïüþòåðå. Òàêæå, åñëè èìåíà â
689
    îáÿçàòåëüíî äîëæíà ïðèñóòñòâîâàòü â êîìïüþòåðå. Òàêæå, åñëè èìåíà â
691
    áèáëèîòåêå íàïèñàíû áåç ñóôôèêñà '@number', êîìïèëÿòîð íå áóäåò
690
    áèáëèîòåêå íàïèñàíû áåç ñóôôèêñà '@number', êîìïèëÿòîð íå áóäåò
692
    êîíòðîëèðîâàòü ÷èñëî ïàðàìåòðîâ ïåðåäàâàåìûõ ïðîöåäóðå. È, ê ñîæàëåíèþ,
691
    êîíòðîëèðîâàòü ÷èñëî ïàðàìåòðîâ ïåðåäàâàåìûõ ïðîöåäóðå. È, ê ñîæàëåíèþ,
693
    êîìïèëÿòîð óìååò èìïîðòèðîâàòü èìåíà èç áèáëèîòåê èìåþùèõ òîëüêî ôîðìàò
692
    êîìïèëÿòîð óìååò èìïîðòèðîâàòü èìåíà èç áèáëèîòåê èìåþùèõ òîëüêî ôîðìàò
694
    PE-ôàéëà.
693
    PE-ôàéëà.
695
Return to contents.
694
Return to contents.
Line 696... Line 695...
696
 
695
 
697
 
696
 
698
 
697
 
Line 699... Line 698...
699
    2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
698
    2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
700
 
699
 
701
 
700
 
702
        Êàê èçâåñòíî, â ïðîãðàììàõ ïîä windows åñòü DOS çàãëóøêà, íàçûâàåìàÿ
701
        Êàê èçâåñòíî, â ïðîãðàììàõ ïîä windows åñòü DOS çàãëóøêà, íàçûâàåìàÿ
Line 709... Line 708...
709
    ñòðîêè /ws=filename, ëèáî ñòðîêîé â INI-ôàéëå ws=filename, ëèáî
708
    ñòðîêè /ws=filename, ëèáî ñòðîêîé â INI-ôàéëå ws=filename, ëèáî
710
    äèðåêòèâîé #pragma option ws=filename.
709
    äèðåêòèâîé #pragma option ws=filename.
Line 711... Line 710...
711
 
710
 
712
        Òàêèì îáðàçîì, ó Âàñ ïîÿâèëàñü âîçìîæíîñòü ñîçäàâàòü ïðîãðàììû,
711
        Òàêèì îáðàçîì, ó Âàñ ïîÿâèëàñü âîçìîæíîñòü ñîçäàâàòü ïðîãðàììû,
713
    ðàáîòàþùèå è ïîä DOS è ïîä windows.
712
    ðàáîòàþùèå è ïîä DOS è ïîä windows.
Line 714... Line 713...
714
Return to contents.
713
Return to contents.
715
 
714
 
716
 
715
 
Line 717... Line 716...
717
 
716
 
718
    2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
717
    2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
719
 
718
 
720
 
719
 
Line 726... Line 725...
726
 
725
 
727
        Èñïîëüçîâàíèå ñåêöèè .bss ïðàêòè÷åñêè íå âëèÿåò íà ðàçìåð ïîëó÷àåìîãî
726
        Èñïîëüçîâàíèå ñåêöèè .bss ïðàêòè÷åñêè íå âëèÿåò íà ðàçìåð ïîëó÷àåìîãî
728
    ôàéëà. Òåîðåòè÷åñêè, äëÿ ïðîöåññîðîâ, ó êîòîðûõ åñòü îòäåëüíûé êýø äëÿ
727
    ôàéëà. Òåîðåòè÷åñêè, äëÿ ïðîöåññîðîâ, ó êîòîðûõ åñòü îòäåëüíûé êýø äëÿ
729
    äàííûõ, èñïîëüçîâàíèå ñåêöèè .bss, äîëæíî ïîâûøàòü ñêîðîñòü ðàáîòû
728
    äàííûõ, èñïîëüçîâàíèå ñåêöèè .bss, äîëæíî ïîâûøàòü ñêîðîñòü ðàáîòû
730
    ïðîãðàììû.
729
    ïðîãðàììû.
Line 731... Line 730...
731
Return to contents.
730
Return to contents.
732
 
731
 
733
 
732
 
Line 734... Line 733...
734
 
733
 
735
    2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
734
    2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
736
 
735
 
737
 
736
 
Line 755... Line 754...
755
        Äëÿ 32-áèòíûõ ïðîãðàìì, èñïîëüçóþùèõ ðàñøèðèòåëü DOS ïðèìåíÿòü äëÿ
754
        Äëÿ 32-áèòíûõ ïðîãðàìì, èñïîëüçóþùèõ ðàñøèðèòåëü DOS ïðèìåíÿòü äëÿ
756
    îòëàäêè Turbo Debugger íåâîçìîæíî. Íî, ìîæåò áûòü ÿ íå çíàþ, êàê ýòî
755
    îòëàäêè Turbo Debugger íåâîçìîæíî. Íî, ìîæåò áûòü ÿ íå çíàþ, êàê ýòî
757
    äåëàòü. Åñëè Âû çíàåòå, êàê ñîçäàâàòü 32-áèòíûå ïðîãðàììû ñ
756
    äåëàòü. Åñëè Âû çíàåòå, êàê ñîçäàâàòü 32-áèòíûå ïðîãðàììû ñ
758
    DOS-ðàñøèðèòåëåì êîìïèëÿòîðàìè ôèðìû Borland ñ âêëþ÷åíèåì â íèõ îòëàäî÷íîé
757
    DOS-ðàñøèðèòåëåì êîìïèëÿòîðàìè ôèðìû Borland ñ âêëþ÷åíèåì â íèõ îòëàäî÷íîé
759
    èíôîðìàöèè, òî ðàññêàæèòå ìíå. À ÿ ïîïðîáóþ ïðèìåíèòü ýòî äëÿ C--.
758
    èíôîðìàöèè, òî ðàññêàæèòå ìíå. À ÿ ïîïðîáóþ ïðèìåíèòü ýòî äëÿ C--.
760
Return to contents.
759
Return to contents.
Line 761... Line 760...
761
 
760
 
762
 
761
 
763
 
762
 
Line 764... Line 763...
764
    2.1.12 /J0 /J1 /J2
763
    2.1.12 /J0 /J1 /J2
765
 
764
 
Line 766... Line 765...
766
 
765
 
Line 809... Line 808...
809
 
808
 
810
    dword main ( dword hInstDLL, reason, reserv )
809
    dword main ( dword hInstDLL, reason, reserv )
811
    {
810
    {
812
      ...
811
      ...
813
    }
812
    }
Line 814... Line 813...
814
Return to contents.
813
Return to contents.
815
 
814
 
816
 
815
 
Line 817... Line 816...
817
 
816
 
818
    2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
817
    2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
819
 
818
 
820
 
819
 
Line 821... Line 820...
821
        Ñ ïîìîùüþ äîïîëíèòåëüíîé îïöèè êîìàíäíîé ñòðîêè -lst Âû ìîæåòå
820
        Ñ ïîìîùüþ äîïîëíèòåëüíîé îïöèè êîìàíäíîé ñòðîêè -lst Âû ìîæåòå
822
    ïîëó÷èòü âìåñòå ñ èñïîëíèòåëüíûì ôàéëîì è åãî àññåìáëåðíûé ëèñòèíã.
821
    ïîëó÷èòü âìåñòå ñ èñïîëíèòåëüíûì ôàéëîì è åãî àññåìáëåðíûé ëèñòèíã.
823
    Ëèñòèíã áóäåò ïîìåùåí â ôàéë îäíîèìåííûé ñ èñïîëíèòåëüíûì ôàéëîì è
822
    Ëèñòèíã áóäåò ïîìåùåí â ôàéë îäíîèìåííûé ñ èñïîëíèòåëüíûì ôàéëîì è
Line 824... Line 823...
824
    èìåþùèì ðàñøèðåíèå *.lst.
823
    èìåþùèì ðàñøèðåíèå *.lst.
825
 
824
 
826
        Àññåìáëåðíûé ëèñòèíã ñîçäàåòñÿ íåçàâèñèìîé îò êîìïèëÿòîðà ÷àñòüþ êîäà
825
        Àññåìáëåðíûé ëèñòèíã ñîçäàåòñÿ íåçàâèñèìîé îò êîìïèëÿòîðà ÷àñòüþ êîäà
Line 827... Line 826...
827
    ñ èñïîëüçîâàíèåì èíôîðìàöèè íàêàïëèâàåìîé ïðè êîìïèëÿöèè ïðîãðàììû.
826
    ñ èñïîëüçîâàíèåì èíôîðìàöèè íàêàïëèâàåìîé ïðè êîìïèëÿöèè ïðîãðàììû.
828
Return to contents.
827
Return to contents.
829
 
828
 
830
 
829
 
831
 
830
 
832
    2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.
831
    2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.
833
 
832
 
Line 834... Line 833...
834
 
833
 
835
        Åñëè ïðè êîìïèëÿöèè ïðîãðàììû Âû â êîìàíäíóþ ñòðîêó äîáàâèòå îïöèþ
834
        Åñëè ïðè êîìïèëÿöèè ïðîãðàììû Âû â êîìàíäíóþ ñòðîêó äîáàâèòå îïöèþ
836
    -ENV èëè â ôàéë c--.ini ñòðîêà ENV, òî êîìïèëÿòîð äîáàâèò â âàøó
835
    -ENV èëè â ôàéë c--.ini ñòðîêà ENV, òî êîìïèëÿòîð äîáàâèò â âàøó
Line 837... Line 836...
837
    ïðîãðàììó ïåðåìåííóþ environ, â êîòîðîé ïðè çàãðóçêå áóäåò ñîõðàíÿòñÿ
836
    ïðîãðàììó ïåðåìåííóþ environ, â êîòîðîé ïðè çàãðóçêå áóäåò ñîõðàíÿòñÿ
838
    àäðåñ ïåðåìåííûõ îêðóæåíèÿ çàïóñêàåìîé ïðîãðàììû. Äëÿ ïðîãðàìì ïîä
837
    àäðåñ ïåðåìåííûõ îêðóæåíèÿ çàïóñêàåìîé ïðîãðàììû. Äëÿ ïðîãðàìì ïîä
839
    Windows ýòî áóäåò ïîëíûé àäðåñ, à äëÿ îñòàëüíûõ â ýòîé ïåðåìåííîé áóäåò
838
    Windows ýòî áóäåò ïîëíûé àäðåñ, à äëÿ îñòàëüíûõ â ýòîé ïåðåìåííîé áóäåò
840
    ñîõðàíÿòüñÿ òîëüêî àäðåñ ñåãìåíòà.
839
    ñîõðàíÿòüñÿ òîëüêî àäðåñ ñåãìåíòà.
Line 841... Line 840...
841
Return to contents.
840
Return to contents.
842
 
841
 
843
 
842
 
844
 
843
 
Line 845... Line 844...
845
    2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
844
    2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
846
 
845
 
847
 
846
 
Line 848... Line 847...
848
        Ïåðåìåííûå, êîòîðûì â òåëå ïðîãðàììû íå áûëî ïðèñâîåíî íèêàêîå
847
        Ïåðåìåííûå, êîòîðûì â òåëå ïðîãðàììû íå áûëî ïðèñâîåíî íèêàêîå
849
    çíà÷åíèå, íå âêëþ÷àþòñÿ â òåëî ñêîìïèëèðîâàííîé ïðîãðàììû. Äëÿ íèõ
848
    çíà÷åíèå, íå âêëþ÷àþòñÿ â òåëî ñêîìïèëèðîâàííîé ïðîãðàììû. Äëÿ íèõ
850
    ðåçåðâèðóåòñÿ ïàìÿòü çà ïðåäåëàìè ïðîãðàììû. Íî ýòà ïàìÿòü ìîæåò áûòü
849
    ðåçåðâèðóåòñÿ ïàìÿòü çà ïðåäåëàìè ïðîãðàììû. Íî ýòà ïàìÿòü ìîæåò áûòü
851
    çàïîëíåíà ïðîèçâîëüíîé èíôîðìàöèåé.
850
    çàïîëíåíà ïðîèçâîëüíîé èíôîðìàöèåé.
Line 877... Line 876...
877
 
876
 
878
    w
877
    w
Line 879... Line 878...
879
    wf=warning
878
    wf=warning
880
 
879
 
Line 881... Line 880...
881
        Âû áóäåòå ïîëó÷àòü â ôàéëå warning ïðåäóïðåæäåíèÿ.
880
        Âû áóäåòå ïîëó÷àòü â ôàéëå warning ïðåäóïðåæäåíèÿ.
882
Return to contents.
881
Return to contents.
883
 
882
 
Line 884... Line 883...
884
 
883
 
885
 
884
 
886
    2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
885
    2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
887
 
886
 
Line 903... Line 902...
903
      8 - Variable/structure/procedure '...' possible not used
902
      8 - Variable/structure/procedure '...' possible not used
904
      9 - Non-initialized variable may have been used
903
      9 - Non-initialized variable may have been used
905
     10 - Return flag was destroyed
904
     10 - Return flag was destroyed
906
     11 - Code may not be executable
905
     11 - Code may not be executable
907
     12 - Don't use local/parametric values in inline procedures
906
     12 - Don't use local/parametric values in inline procedures
908
Return to contents.
907
Return to contents.
Line 909... Line 908...
909
 
908
 
910
 
909
 
911
 
910
 
Line 912... Line 911...
912
    2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
911
    2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
913
 
912
 
Line 914... Line 913...
914
 
913
 
915
        Òàáëèöà èìïîðòà îáû÷íî ñîñòîèò â ñâîþ î÷åðåäü èç ÷åòûðåõ òàáëèö. Äâå
914
        Òàáëèöà èìïîðòà îáû÷íî ñîñòîèò â ñâîþ î÷åðåäü èç ÷åòûðåõ òàáëèö. Äâå
916
    òàáëèöû LookUp Table è Import Address Table àáñîëþòíî îäèíàêîâû.
915
    òàáëèöû LookUp Table è Import Address Table àáñîëþòíî îäèíàêîâû.
917
 
916
 
918
        Îïöèåé êîìàíäíîé ñòðîêè /WSI Âû ìîæåòå çàñòàâèòü êîìïèëÿòîð
917
        Îïöèåé êîìàíäíîé ñòðîêè /WSI Âû ìîæåòå çàñòàâèòü êîìïèëÿòîð
919
    ãåíåðèðîâàòü òîëüêî îäíó èç ýòèõ äâóõ îäèíàêîâûõ òàáëèö (ãåíåðèðóåòñÿ
918
    ãåíåðèðîâàòü òîëüêî îäíó èç ýòèõ äâóõ îäèíàêîâûõ òàáëèö (ãåíåðèðóåòñÿ
Line 920... Line 919...
920
    òîëüêî Import Address Table). Òåì ñàìûì ó Âàñ ïîëó÷èòñÿ áîëåå êîìïàêòíàÿ
919
    òîëüêî Import Address Table). Òåì ñàìûì ó Âàñ ïîëó÷èòñÿ áîëåå êîìïàêòíàÿ
921
    òàáëèöà èìïîðòà, ÷òî ïðèâåäåò, â íåêîòîðûõ ñëó÷àÿõ, ê ñîçäàíèþ áîëåå
920
    òàáëèöà èìïîðòà, ÷òî ïðèâåäåò, â íåêîòîðûõ ñëó÷àÿõ, ê ñîçäàíèþ áîëåå
922
    êîìïàêòíîãî âûõîäíîãî ôàéëà.
921
    êîìïàêòíîãî âûõîäíîãî ôàéëà.
Line 923... Line 922...
923
Return to contents.
922
Return to contents.
924
 
923
 
Line 925... Line 924...
925
 
924
 
Line 1127... Line 1126...
1127
                                 MMX.
1126
                                 MMX.
Line 1128... Line 1127...
1128
 
1127
 
1129
  ? usestartup                   ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè
1128
  ? usestartup                   ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè
1130
                                 ïàìÿòè, çàíèìàåìûå êîäîì íà÷àëüíîé
1129
                                 ïàìÿòè, çàíèìàåìûå êîäîì íà÷àëüíîé
1131
                                 èíèöèàëèçàöèè ïðîãðàììû.
1130
                                 èíèöèàëèçàöèè ïðîãðàììû.
Line 1132... Line 1131...
1132
Return to contents.
1131
Return to contents.
1133
 
1132
 
1134
 
1133
 
Line 1135... Line 1134...
1135
 
1134
 
1136
    2.2.1 ?ifdef/?ifndef
1135
    2.2.1 ?ifdef/?ifndef
1137
 
1136
 
1138
 
1137
 
Line 1157... Line 1156...
1157
    ?ifdef cpu < 3   // -------//------------- õóæå 80386
1156
    ?ifdef cpu < 3   // -------//------------- õóæå 80386
1158
    ?ifdef cpu <= 2  // -------//------------- õóæå èëè ðàâåí 80286
1157
    ?ifdef cpu <= 2  // -------//------------- õóæå èëè ðàâåí 80286
Line 1159... Line 1158...
1159
 
1158
 
1160
        Ýòà äèðåêòèâà ïîçâîëèò Âàì ïèñàòü îäíó ïðîöåäóðó äëÿ ðàçëè÷íûõ òèïîâ
1159
        Ýòà äèðåêòèâà ïîçâîëèò Âàì ïèñàòü îäíó ïðîöåäóðó äëÿ ðàçëè÷íûõ òèïîâ
1161
    CPU.
1160
    CPU.
Line 1162... Line 1161...
1162
Return to contents.
1161
Return to contents.
1163
 
1162
 
1164
 
1163
 
Line 1165... Line 1164...
1165
 
1164
 
1166
    2.2.2 ?initallvar
1165
    2.2.2 ?initallvar
1167
 
1166
 
1168
 
1167
 
1169
        Äèðåêòèâîé ?initallvar TRUE âêëþ÷àåòñÿ ðåæèì ïðè êîòîðîì âñåì
1168
        Äèðåêòèâîé ?initallvar TRUE âêëþ÷àåòñÿ ðåæèì ïðè êîòîðîì âñåì
Line 1170... Line 1169...
1170
    íåèíèöèàëèçèðîâàííûì ïåðåìåííûì áóäåò ïðèñâîåíî íóëåâîå çíà÷åíèå è îíè
1169
    íåèíèöèàëèçèðîâàííûì ïåðåìåííûì áóäåò ïðèñâîåíî íóëåâîå çíà÷åíèå è îíè
1171
    áóäóò ðàñïîëàãàòüñÿ â òîì ìåñòå, ãäå áûëè îáúÿâëåíû. Ò.å. ïðàêòè÷åñêè
1170
    áóäóò ðàñïîëàãàòüñÿ â òîì ìåñòå, ãäå áûëè îáúÿâëåíû. Ò.å. ïðàêòè÷åñêè
1172
    èñ÷åçíóò íåèíèöèàëèçèðîâàííûå ïåðåìåííûå. Ýòî ìîæåò áûòü ïîëåçíûì ïðè
1171
    èñ÷åçíóò íåèíèöèàëèçèðîâàííûå ïåðåìåííûå. Ýòî ìîæåò áûòü ïîëåçíûì ïðè
Line 1173... Line 1172...
1173
    íàïèñàíèè äðàéâåðîâ è ðåçèäåíòíûõ ïðîãðàìì.
1172
    íàïèñàíèè äðàéâåðîâ è ðåçèäåíòíûõ ïðîãðàìì.
1174
 
1173
 
1175
        Ïàðàìåòð FALSE ýòîé äèðåêòèâû îòêëþ÷àåò ýòîò ðåæèì.
1174
        Ïàðàìåòð FALSE ýòîé äèðåêòèâû îòêëþ÷àåò ýòîò ðåæèì.
Line 1176... Line 1175...
1176
        Ïî óìîë÷àíèþ ýòà äèðåêòèâà óñòàíîâëåíà â FALSE.
1175
        Ïî óìîë÷àíèþ ýòà äèðåêòèâà óñòàíîâëåíà â FALSE.
1177
Return to contents.
1176
Return to contents.
1178
 
1177
 
1179
 
1178
 
1180
 
1179
 
Line 1181... Line 1180...
1181
    2.2.3 ?usestartup
1180
    2.2.3 ?usestartup
1182
 
1181
 
Line 1183... Line 1182...
1183
 
1182
 
1184
        Äèðåêòèâà ?usestartup ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè êîäà
1183
        Äèðåêòèâà ?usestartup ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè êîäà
1185
    íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû (startup) äëÿ ïîñëåäóþùåãî ðàçìåùåíèÿ â
1184
    íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû (startup) äëÿ ïîñëåäóþùåãî ðàçìåùåíèÿ â
Line 1186... Line 1185...
1186
    íèõ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ. Ýòî ìîæåò áûòü ïîëåçíûì äëÿ ïîëó÷åíèÿ
1185
    íèõ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ. Ýòî ìîæåò áûòü ïîëåçíûì äëÿ ïîëó÷åíèÿ
1187
    áîëåå êîìïàêòíîãî êîäà, êàê îáû÷íûõ ïðîãðàìì, òàê è â îñîáåííîñòè
1186
    áîëåå êîìïàêòíîãî êîäà, êàê îáû÷íûõ ïðîãðàìì, òàê è â îñîáåííîñòè
1188
    ðåçèäåíòíûõ.
1187
    ðåçèäåíòíûõ.
1189
 
1188
 
1190
        Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
1189
        Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
1191
Return to contents.
1190
Return to contents.
Line 1192... Line 1191...
1192
 
1191
 
1193
 
1192
 
Line 1194... Line 1193...
1194
 
1193
 
1195
    2.2.4 ?startusevar
1194
    2.2.4 ?startusevar
1196
 
1195
 
Line 1197... Line 1196...
1197
 
1196
 
1198
        Äèðåêòèâîé ?startusevar ìîæíî óêàçàòü íà÷àëüíûé àäðåñ ñ êîòîðîãî
1197
        Äèðåêòèâîé ?startusevar ìîæíî óêàçàòü íà÷àëüíûé àäðåñ ñ êîòîðîãî
1199
    êîìïèëÿòîð áóäåò ðàñïðåäåëÿòü ïàìÿòü äëÿ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
1198
    êîìïèëÿòîð áóäåò ðàñïðåäåëÿòü ïàìÿòü äëÿ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
Line 1219... Line 1218...
1219
    áóäåò âûçâàíà â ìîìåíò çàâåðøåíèÿ ïðîãðàììû ïðîöåäóðàìè ABORT èëè EXIT
1218
    áóäåò âûçâàíà â ìîìåíò çàâåðøåíèÿ ïðîãðàììû ïðîöåäóðàìè ABORT èëè EXIT
1220
    èëè èíñòðóêöèåé RET èç main.
1219
    èëè èíñòðóêöèåé RET èç main.
Line 1221... Line 1220...
1221
 
1220
 
1222
        Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ïðîöåäóð. Ïðîöåäóðû âûçûâàþòñÿ â
1221
        Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ïðîöåäóð. Ïðîöåäóðû âûçûâàþòñÿ â
1223
    ïîðÿäêå îáðàòíîì ïîðÿäêó èõ ðåãèñòðàöèè.
1222
    ïîðÿäêå îáðàòíîì ïîðÿäêó èõ ðåãèñòðàöèè.
Line 1224... Line 1223...
1224
Return to contents.
1223
Return to contents.
1225
 
1224
 
1226
 
1225
 
Line 1227... Line 1226...
1227
 
1226
 
1228
    2.2.6 ?startuptomain
1227
    2.2.6 ?startuptomain
1229
 
1228
 
1230
 
1229
 
1231
        Ïî ýòîé äèðåêòèâå êîìïèëÿòîð â íà÷àëå ôàéëà äåëàåò jmp íà íà÷àëî
1230
        Ïî ýòîé äèðåêòèâå êîìïèëÿòîð â íà÷àëå ôàéëà äåëàåò jmp íà íà÷àëî
1232
    ïðîöåäóðû main(). Ïåðåä íà÷àëîì êîìïèëÿöèè ýòîé ïðîöåäóðû êîìïèëÿòîð
1231
    ïðîöåäóðû main(). Ïåðåä íà÷àëîì êîìïèëÿöèè ýòîé ïðîöåäóðû êîìïèëÿòîð
Line 1233... Line 1232...
1233
    íà÷íåò êîìïèëÿöèþ startup êîäà è ëèøü çàòåì áóäåò ïðîäîëæåíà êîìïèëÿöèÿ
1232
    íà÷íåò êîìïèëÿöèþ startup êîäà è ëèøü çàòåì áóäåò ïðîäîëæåíà êîìïèëÿöèÿ
1234
    ïðîöåäóðû main(). Òåì ñàìûì startup êîä îêàæåòñÿ íå â íà÷àëå ôàéëà, êàê
1233
    ïðîöåäóðû main(). Òåì ñàìûì startup êîä îêàæåòñÿ íå â íà÷àëå ôàéëà, êàê
Line 1235... Line 1234...
1235
    ýòî ïðîèñõîäèò îáû÷íî, à â òåëå ïðîöåäóðû main(). Ýòî áóäåò ïîëåçíûì ïðè
1234
    ýòî ïðîèñõîäèò îáû÷íî, à â òåëå ïðîöåäóðû main(). Ýòî áóäåò ïîëåçíûì ïðè
1236
    êîìïèëÿöèè ðåçèäåíòíûõ ïðîãðàìì (TSR).
1235
    êîìïèëÿöèè ðåçèäåíòíûõ ïðîãðàìì (TSR).
1237
 
1236
 
Line 1238... Line 1237...
1238
        Äèðåêòèâà ?startuptomain ðàáîòàåò òîëüêî ïðè êîìïèëÿöèè com-ôàéëîâ.
1237
        Äèðåêòèâà ?startuptomain ðàáîòàåò òîëüêî ïðè êîìïèëÿöèè com-ôàéëîâ.
1239
Return to contents.
1238
Return to contents.
1240
 
1239
 
1241
 
1240
 
Line 1242... Line 1241...
1242
 
1241
 
1243
    2.2.7 ?undef
1242
    2.2.7 ?undef
1244
 
1243
 
Line 1245... Line 1244...
1245
 
1244
 
1246
        Ýòà äèðåêòèâà óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé ?define. Åå
1245
        Ýòà äèðåêòèâà óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé ?define. Åå
1247
    ìîæíî ïðèìåíÿòü äëÿ èçìåíåíèÿ â ïðîöåññå êîìïèëÿöèè çíà÷åíèÿ êàêîé-íèáóäü
1246
    ìîæíî ïðèìåíÿòü äëÿ èçìåíåíèÿ â ïðîöåññå êîìïèëÿöèè çíà÷åíèÿ êàêîé-íèáóäü
1248
    êîíñòàíòû.
1247
    êîíñòàíòû.
Line 1268... Line 1267...
1268
    çàïîëíåíèÿ â ýòîé äèðåêòèâå ÿâëÿåòñÿ ÷èñëî 0x90 - êîä èíñòðóêöèè NOP.
1267
    çàïîëíåíèÿ â ýòîé äèðåêòèâå ÿâëÿåòñÿ ÷èñëî 0x90 - êîä èíñòðóêöèè NOP.
1269
    Çíà÷åíèå áàéòà çàïîëíåíèÿ äëÿ ýòîé äèðåêòèâû èçìåíèòü íåëüçÿ. Ò.î. ýòó
1268
    Çíà÷åíèå áàéòà çàïîëíåíèÿ äëÿ ýòîé äèðåêòèâû èçìåíèòü íåëüçÿ. Ò.î. ýòó
1270
    äèðåêòèâó ìîæíî ïðèìåíÿòü è âíóòðè èñïîëíÿåìîãî êîäà. Íàïðèìåð, åñëè Âû
1269
    äèðåêòèâó ìîæíî ïðèìåíÿòü è âíóòðè èñïîëíÿåìîãî êîäà. Íàïðèìåð, åñëè Âû
1271
    õîòèòå ïîëó÷èòü áûñòðûé êîä íà 486 ïðîöåññîðå, òî ðåêîìåíäóåòñÿ äåëàòü
1270
    õîòèòå ïîëó÷èòü áûñòðûé êîä íà 486 ïðîöåññîðå, òî ðåêîìåíäóåòñÿ äåëàòü
1272
    âûðàâíèâàíèå íà÷àëà ïðîöåäóð è öèêëîâ íà àäðåñ êðàòíûé 16.
1271
    âûðàâíèâàíèå íà÷àëà ïðîöåäóð è öèêëîâ íà àäðåñ êðàòíûé 16.
1273
Return to contents.
1272
Return to contents.
Line 1274... Line 1273...
1274
 
1273
 
1275
 
1274
 
1276
 
1275
 
Line 1277... Line 1276...
1277
    2.2.9 ?pragma
1276
    2.2.9 ?pragma
1278
 
1277
 
Line 1279... Line 1278...
1279
 
1278
 
Line 1328... Line 1327...
1328
        END
1327
        END
1329
        MENUITEM "Other",                           65535
1328
        MENUITEM "Other",                           65535
1330
    END
1329
    END
Line 1331... Line 1330...
1331
 
1330
 
1332
    #pragma resource end
1331
    #pragma resource end
Line 1333... Line 1332...
1333
Return to contents.
1332
Return to contents.
1334
 
1333
 
Line 1335... Line 1334...
1335
 
1334
 
1336
 
1335
 
Line 1337... Line 1336...
1337
3. Êîíñòàíòû.
1336
3. Êîíñòàíòû.
1338
 
1337
 
1339
  3.1 ×èñëîâûå êîíñòàíòû.
1338
  3.1 ×èñëîâûå êîíñòàíòû.
Line 1380... Line 1379...
1380
  #define DEF2 2Lu
1379
  #define DEF2 2Lu
1381
  #define DEF3 3.0F
1380
  #define DEF3 3.0F
Line 1382... Line 1381...
1382
 
1381
 
1383
      Ýòè ñóôôèêñû íå çàâèñÿò îò ðåãèñòðà, ò.å. èõ ìîæíî ïèñàòü êàê
1382
      Ýòè ñóôôèêñû íå çàâèñÿò îò ðåãèñòðà, ò.å. èõ ìîæíî ïèñàòü êàê
1384
  ìàëåíüêèìè, òàê è áîëüøèìè áóêâàìè.
1383
  ìàëåíüêèìè, òàê è áîëüøèìè áóêâàìè.
Line 1385... Line 1384...
1385
Return to contents.
1384
Return to contents.
1386
 
1385
 
1387
 
1386
 
Line 1388... Line 1387...
1388
 
1387
 
1389
  3.2 Ñèìâîëüíûå êîíñòàíòû.
1388
  3.2 Ñèìâîëüíûå êîíñòàíòû.
Line 1390... Line 1389...
1390
 
1389
 
Line 1432... Line 1431...
1432
 
1431
 
1433
      C-- îáðàáàòûâàåò âñå ñèìâîëüíûå êîíñòàíòû êàê ÷èñëîâûå çíà÷åíèÿ ASCII
1432
      C-- îáðàáàòûâàåò âñå ñèìâîëüíûå êîíñòàíòû êàê ÷èñëîâûå çíà÷åíèÿ ASCII
1434
  ñèìâîëîâ. Äëÿ ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò ïåðâûé ñèìâîë
1433
  ñèìâîëîâ. Äëÿ ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò ïåðâûé ñèìâîë
1435
  ñîîòâåòñòâóåò ñòàðøèì ðàçðÿäàì, òàêèì îáðàçîì, çíà÷åíèå äëÿ ab áóäåò
1434
  ñîîòâåòñòâóåò ñòàðøèì ðàçðÿäàì, òàêèì îáðàçîì, çíà÷åíèå äëÿ ab áóäåò
1436
  çàêîäèðîâàíî êàê a*256+b.
1435
  çàêîäèðîâàíî êàê a*256+b.
Line 1437... Line 1436...
1437
Return to contents.
1436
Return to contents.
1438
 
1437
 
1439
 
1438
 
Line 1440... Line 1439...
1440
 
1439
 
1441
  3.3 Ñòðîêîâûå êîíñòàíòû.
1440
  3.3 Ñòðîêîâûå êîíñòàíòû.
1442
 
1441
 
1443
 
1442
 
Line 1449... Line 1448...
1449
  ñòðîêè.
1448
  ñòðîêè.
Line 1450... Line 1449...
1450
 
1449
 
1451
      Â íàñòîÿùåå âðåìÿ íàèáîëüøàÿ äëèíà ñòðîêîâîé êîíñòàíòû - 2048 ñèìâîëîâ,
1450
      Â íàñòîÿùåå âðåìÿ íàèáîëüøàÿ äëèíà ñòðîêîâîé êîíñòàíòû - 2048 ñèìâîëîâ,
1452
  âêëþ÷àÿ ñèìâîë-îãðàíè÷èòåëü 0, òàêèì îáðàçîì, ìàêñèìóì 2047 çíà÷àùèõ
1451
  âêëþ÷àÿ ñèìâîë-îãðàíè÷èòåëü 0, òàêèì îáðàçîì, ìàêñèìóì 2047 çíà÷àùèõ
1453
  ñèìâîëîâ.
1452
  ñèìâîëîâ.
Line 1454... Line 1453...
1454
Return to contents.
1453
Return to contents.
1455
 
1454
 
1456
 
1455
 
Line 1457... Line 1456...
1457
 
1456
 
1458
  3.4 Ïîñòîÿííûå âûðàæåíèÿ.
1457
  3.4 Ïîñòîÿííûå âûðàæåíèÿ.
1459
 
1458
 
1460
 
1459
 
Line 1472... Line 1471...
1472
  45 & 1 + 3 // ðàâíÿåòñÿ 4
1471
  45 & 1 + 3 // ðàâíÿåòñÿ 4
1473
  14 - 1 / 2 // ðàâíÿåòñÿ 6 (ïîìíèòå öåëî÷èñëåííûå çíà÷åíèÿ)
1472
  14 - 1 / 2 // ðàâíÿåòñÿ 6 (ïîìíèòå öåëî÷èñëåííûå çíà÷åíèÿ)
1474
  1 * 2 * 3 / 2 + 4 // ðàâíÿåòñÿ 7
1473
  1 * 2 * 3 / 2 + 4 // ðàâíÿåòñÿ 7
1475
      Ïðèìåðû ñ ïðèìåíåíèåì âåùåñòâåííûõ ÷èñåë:
1474
      Ïðèìåðû ñ ïðèìåíåíèåì âåùåñòâåííûõ ÷èñåë:
1476
  3.23*1.53+2.0E2 // ðàâíÿåòñÿ 204.9419
1475
  3.23*1.53+2.0E2 // ðàâíÿåòñÿ 204.9419
1477
Return to contents.
1476
Return to contents.
Line 1478... Line 1477...
1478
 
1477
 
1479
 
1478
 
Line 1480... Line 1479...
1480
 
1479
 
1481
4. Âûðàæåíèÿ.
1480
4. Âûðàæåíèÿ.
Line 1482... Line 1481...
1482
 
1481
 
1483
  4.1 Òèïû âûðàæåíèé.
1482
  4.1 Òèïû âûðàæåíèé.
1484
 
1483
 
1485
 
1484
 
1486
      Èìåþòñÿ òðè òèïà âûðàæåíèé â C--, íå ñ÷èòàÿ ïîñòîÿííûõ âûðàæåíèé. Ýòî
1485
      Èìåþòñÿ òðè òèïà âûðàæåíèé â C--, íå ñ÷èòàÿ ïîñòîÿííûõ âûðàæåíèé. Ýòî
Line 1487... Line 1486...
1487
  âûðàæåíèÿ òèïà EAX/AX/AL, âûðàæåíèÿ òèïà íåEAX/AX/AL è óñëîâíûå âûðàæåíèÿ.
1486
  âûðàæåíèÿ òèïà EAX/AX/AL, âûðàæåíèÿ òèïà íåEAX/AX/AL è óñëîâíûå âûðàæåíèÿ.
1488
  Âñå C-- âûðàæåíèÿ âû÷èñëÿþòñÿ ñëåâà íàïðàâî, íåçàâèñèìî îò ñòàðøèíñòâà
1487
  Âñå C-- âûðàæåíèÿ âû÷èñëÿþòñÿ ñëåâà íàïðàâî, íåçàâèñèìî îò ñòàðøèíñòâà
1489
  âõîäÿùèõ â âûðàæåíèå ìàòåìàòè÷åñêèõ îïåðàöèé.
1488
  âõîäÿùèõ â âûðàæåíèå ìàòåìàòè÷åñêèõ îïåðàöèé.
Line 1490... Line 1489...
1490
Return to contents.
1489
Return to contents.
1491
 
1490
 
Line 1492... Line 1491...
1492
 
1491
 
Line 1503... Line 1502...
1503
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà word èëè int,
1502
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà word èëè int,
1504
  èñïîëüçóåòñÿ íîòàöèÿ AX.
1503
  èñïîëüçóåòñÿ íîòàöèÿ AX.
Line 1505... Line 1504...
1505
 
1504
 
1506
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà dword, long èëè
1505
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà dword, long èëè
1507
  float, èñïîëüçóåòñÿ íîòàöèÿ EAX.
1506
  float, èñïîëüçóåòñÿ íîòàöèÿ EAX.
Line 1508... Line 1507...
1508
Return to contents.
1507
Return to contents.
1509
 
1508
 
1510
 
1509
 
Line 1511... Line 1510...
1511
 
1510
 
1512
  4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
1511
  4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
1513
 
1512
 
1514
 
1513
 
Line 1522... Line 1521...
1522
 
1521
 
1523
  int var;
1522
  int var;
1524
    var = BX = 2;
1523
    var = BX = 2;
1525
    var = 3 + var; // ðåçóëüòàòîì áóäåò 5
1524
    var = 3 + var; // ðåçóëüòàòîì áóäåò 5
1526
    BX = 3 + BX;   // ðåçóëüòàòîì áóäåò 6
1525
    BX = 3 + BX;   // ðåçóëüòàòîì áóäåò 6
Line 1527... Line 1526...
1527
Return to contents.
1526
Return to contents.
1528
 
1527
 
1529
 
1528
 
Line 1530... Line 1529...
1530
 
1529
 
1531
  4.4 Íå - EAX/AX/AL âûðàæåíèÿ.
1530
  4.4 Íå - EAX/AX/AL âûðàæåíèÿ.
1532
 
1531
 
1533
 
1532
 
Line 1559... Line 1558...
1559
 
1558
 
1560
      Ïðèìå÷àíèå:  äëÿ 8 áèòíûõ íå-AL âûðàæåíèé óìíîæàòü ìîæíî òîëüêî íà
1559
      Ïðèìå÷àíèå:  äëÿ 8 áèòíûõ íå-AL âûðàæåíèé óìíîæàòü ìîæíî òîëüêî íà
1561
  ÷èñëà: 0, 1, 2, 4, 8, 16, 32, 64 è 128. Âñå ýòè îãðàíè÷åíèÿ ñâÿçàíû ñî
1560
  ÷èñëà: 0, 1, 2, 4, 8, 16, 32, 64 è 128. Âñå ýòè îãðàíè÷åíèÿ ñâÿçàíû ñî
1562
  ñòðåìëåíèåì íå ðàçðóøàòü äðóãèå ðåãèñòðû ïðè èñïîëüçîâàíèè íå-EAX/AX/AL
1561
  ñòðåìëåíèåì íå ðàçðóøàòü äðóãèå ðåãèñòðû ïðè èñïîëüçîâàíèè íå-EAX/AX/AL
1563
  âûðàæåíèé.
1562
  âûðàæåíèé.
Line 1564... Line 1563...
1564
Return to contents.
1563
Return to contents.
1565
 
1564
 
1566
 
1565
 
Line 1567... Line 1566...
1567
 
1566
 
1568
  4.5 Óñëîâíûå âûðàæåíèÿ.
1567
  4.5 Óñëîâíûå âûðàæåíèÿ.
1569
 
1568
 
Line 1570... Line 1569...
1570
 
1569
 
Line 1571... Line 1570...
1571
      Óñëîâíûå âûðàæåíèÿ - âûðàæåíèÿ, ðåçóëüòàòîì âû÷èñëåíèÿ êîòîðûõ ÿâëÿåòñÿ
1570
      Óñëîâíûå âûðàæåíèÿ - âûðàæåíèÿ, ðåçóëüòàòîì âû÷èñëåíèÿ êîòîðûõ ÿâëÿåòñÿ
1572
  ëîãè÷åñêîå çíà÷åíèå äà èëè íåò, èñïîëüçóåìîå â îïåðàòîðå if è öèêëàõ do {}
1571
  ëîãè÷åñêîå çíà÷åíèå äà èëè íåò, èñïîëüçóåìîå â îïåðàòîðå if è öèêëàõ do {}
Line 1573... Line 1572...
1573
  while, while, for.
1572
  while, while, for.
1574
 
1573
 
1575
      Èìåþòñÿ äâà òèïà óñëîâíûõ âûðàæåíèé, ïðîñòûå è ñëîæíûå.
1574
      Èìåþòñÿ äâà òèïà óñëîâíûõ âûðàæåíèé, ïðîñòûå è ñëîæíûå.
Line 1576... Line 1575...
1576
 
1575
 
1577
      Âîçìîæíî ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
1576
      Âîçìîæíî ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
1578
Return to contents.
1577
Return to contents.
1579
 
1578
 
Line 1580... Line 1579...
1580
 
1579
 
1581
 
1580
 
1582
    4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
1581
    4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
Line 1583... Line 1582...
1583
 
1582
 
Line 1584... Line 1583...
1584
 
1583
 
Line 1620... Line 1619...
1620
    Ïðèìåðû íåäîïóñòèìûõ ñëîæíûõ óñëîâíûõ âûðàæåíèé:
1619
    Ïðèìåðû íåäîïóñòèìûõ ñëîæíûõ óñëîâíûõ âûðàæåíèé:
Line 1621... Line 1620...
1621
 
1620
 
1622
         (x+y >= x-y) // ïðàâàÿ ÷àñòü íå ÿâëÿåòñÿ îäèíî÷íîé ëåêñåìîé èëè
1621
         (x+y >= x-y) // ïðàâàÿ ÷àñòü íå ÿâëÿåòñÿ îäèíî÷íîé ëåêñåìîé èëè
1623
                         ïîñòîÿííûì âûðàæåíèåì.
1622
                         ïîñòîÿííûì âûðàæåíèåì.
1624
         (Z = y) // âìåñòî == îøèáî÷íî ïîñòàâëåí =
1623
         (Z = y) // âìåñòî == îøèáî÷íî ïîñòàâëåí =
Line 1625... Line 1624...
1625
Return to contents.
1624
Return to contents.
1626
 
1625
 
1627
 
1626
 
Line 1628... Line 1627...
1628
 
1627
 
1629
  4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
1628
  4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
1630
 
1629
 
1631
 
1630
 
Line 1647... Line 1646...
1647
    i = long a * b + c ;
1646
    i = long a * b + c ;
Line 1648... Line 1647...
1648
 
1647
 
1649
      òî  ïåðåìåííûå  a,  b,  è  c  â  ýòîì  ïðèìåðå  ïåðåä  âû÷èñëåíèåì áóäóò
1648
      òî  ïåðåìåííûå  a,  b,  è  c  â  ýòîì  ïðèìåðå  ïåðåä  âû÷èñëåíèåì áóäóò
1650
  ïðåîáðàçîâàíû ê òèïó  long, à êîíå÷íûé  ðåçóëüòàò áóäåò ïðåîáðàçîâàí  ê òèïó
1649
  ïðåîáðàçîâàíû ê òèïó  long, à êîíå÷íûé  ðåçóëüòàò áóäåò ïðåîáðàçîâàí  ê òèïó
1651
  ïåðåìåííîé i - int.
1650
  ïåðåìåííîé i - int.
Line 1652... Line 1651...
1652
Return to contents.
1651
Return to contents.
1653
 
1652
 
1654
 
1653
 
Line 1655... Line 1654...
1655
 
1654
 
1656
  4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
1655
  4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
Line 1657... Line 1656...
1657
 
1656
 
Line 1672... Line 1671...
1672
  òî êîìïèëÿòîð ñãåíåðèðóåò èíñòðóêöèè idiv è imul.
1671
  òî êîìïèëÿòîð ñãåíåðèðóåò èíñòðóêöèè idiv è imul.
Line 1673... Line 1672...
1673
 
1672
 
1674
       Îáðàùàþ âàøå âíèìàíèå, ÷òî äëÿ ðåãèñòðà AL ìîæíî èñïîëüçîâàòü òîëüêî
1673
       Îáðàùàþ âàøå âíèìàíèå, ÷òî äëÿ ðåãèñòðà AL ìîæíî èñïîëüçîâàòü òîëüêî
1675
  ìîäèôèêàòîð char, äëÿ AX ñîîòâåòñòâåííî òîëüêî int, à äëÿ EAX - long. Äëÿ
1674
  ìîäèôèêàòîð char, äëÿ AX ñîîòâåòñòâåííî òîëüêî int, à äëÿ EAX - long. Äëÿ
1676
  îñòàëüíûõ ðåãèñòðîâ ïîäîáíîå äåëàòü íåëüçÿ.
1675
  îñòàëüíûõ ðåãèñòðîâ ïîäîáíîå äåëàòü íåëüçÿ.
Line 1677... Line 1676...
1677
Return to contents.
1676
Return to contents.
1678
 
1677
 
Line 1679... Line 1678...
1679
 
1678
 
1680
 
1679
 
Line 1681... Line 1680...
1681
5. Èäåíòèôèêàòîðû.
1680
5. Èäåíòèôèêàòîðû.
1682
 
1681
 
1683
  5.1 Ôîðìàò èäåíòèôèêàòîðà.
1682
  5.1 Ôîðìàò èäåíòèôèêàòîðà.
1684
 
1683
 
Line 1702... Line 1701...
1702
  12bogus                                 /* íå ìîæåò íà÷èíàòüñÿ ñ ÷èñëà */
1701
  12bogus                                 /* íå ìîæåò íà÷èíàòüñÿ ñ ÷èñëà */
1703
  WowisthisalongidentifieryupitsureisnotOyoulengthismorethat64chars
1702
  WowisthisalongidentifieryupitsureisnotOyoulengthismorethat64chars
1704
   /*äëèíà èäåíòèôèêàòîðà ïðåâûøàåò 64 */
1703
   /*äëèíà èäåíòèôèêàòîðà ïðåâûøàåò 64 */
1705
  Y_es sir                                /* ïðîáåëû íåäîïóñòèìû */
1704
  Y_es sir                                /* ïðîáåëû íåäîïóñòèìû */
1706
  The-end                                 /* äåôèñû íåäîïóñòèìû */
1705
  The-end                                 /* äåôèñû íåäîïóñòèìû */
1707
Return to contents.
1706
Return to contents.
Line 1708... Line 1707...
1708
 
1707
 
1709
 
1708
 
1710
 
1709
 
Line 1711... Line 1710...
1711
  5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
1710
  5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
1712
 
1711
 
1713
 
1712
 
Line 1776... Line 1775...
1776
  dr0   dr1   dr2   dr3   dr4   dr5   dr6   dr7
1775
  dr0   dr1   dr2   dr3   dr4   dr5   dr6   dr7
1777
  cr0   cr1   cr2   cr3   cr4   cr5   cr6   cr7
1776
  cr0   cr1   cr2   cr3   cr4   cr5   cr6   cr7
1778
  tr0   tr1   tr2   tr3   tr4   tr5   tr6   tr7
1777
  tr0   tr1   tr2   tr3   tr4   tr5   tr6   tr7
1779
  mm0   mm1   mm2   mm3   mm4   mm5   mm6   mm7
1778
  mm0   mm1   mm2   mm3   mm4   mm5   mm6   mm7
1780
  xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7
1779
  xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7
1781
Return to contents.
1780
Return to contents.
Line 1782... Line 1781...
1782
 
1781
 
1783
 
1782
 
1784
 
1783
 
Line 1785... Line 1784...
1785
  5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
1784
  5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
1786
 
1785
 
1787
 
1786
 
1788
      Ïðè ñîçäàíèè áèáëèîòå÷íûõ ïðîöåäóð î÷åíü ÷àñòî ïðèõîäèòñÿ ïèñàòü
1787
      Ïðè ñîçäàíèè áèáëèîòå÷íûõ ïðîöåäóð î÷åíü ÷àñòî ïðèõîäèòñÿ ïèñàòü
Line 1797... Line 1796...
1797
      òî êîìïèëÿòîð áóäåò èñïîëüçîâàòü ïðè êîìïèëÿöèè 16-áèòíîãî êîäà ðåãèñòð
1796
      òî êîìïèëÿòîð áóäåò èñïîëüçîâàòü ïðè êîìïèëÿöèè 16-áèòíîãî êîäà ðåãèñòð
1798
  AX, à ïðè êîìïèëÿöèè 32-áèòíîãî êîäà ðåãèñòð EAX.
1797
  AX, à ïðè êîìïèëÿöèè 32-áèòíîãî êîäà ðåãèñòð EAX.
Line 1799... Line 1798...
1799
 
1798
 
1800
      Èñïîëüçîâàíèå àâòîìàòè÷åñêèõ ðåãèñòðîâ ïîçâîëèò óïðîñòèòü áèáëèîòå÷íûå
1799
      Èñïîëüçîâàíèå àâòîìàòè÷åñêèõ ðåãèñòðîâ ïîçâîëèò óïðîñòèòü áèáëèîòå÷íûå
1801
  ôàéëû è ñäåëàòü èõ áîëåå ïîíÿòíûìè.
1800
  ôàéëû è ñäåëàòü èõ áîëåå ïîíÿòíûìè.
Line 1802... Line 1801...
1802
Return to contents.
1801
Return to contents.
1803
 
1802
 
1804
 
1803
 
Line 1805... Line 1804...
1805
 
1804
 
1806
  5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
1805
  5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
Line 1807... Line 1806...
1807
 
1806
 
Line 1840... Line 1839...
1840
      Ýòè èäåíòèôèêàòîðû ìîãóò áûòü ïðîâåðåíû äèðåêòèâàìè #ifdef èëè #ifndef.
1839
      Ýòè èäåíòèôèêàòîðû ìîãóò áûòü ïðîâåðåíû äèðåêòèâàìè #ifdef èëè #ifndef.
1841
  Èäåíòèôèêàòîð cpu ìîæåò áûòü èñïîëüçîâàí ëèøü ñ îïåðàòîðàìè ïðîâåðêè
1840
  Èäåíòèôèêàòîð cpu ìîæåò áûòü èñïîëüçîâàí ëèøü ñ îïåðàòîðàìè ïðîâåðêè
1842
  óñëîâèé:
1841
  óñëîâèé:
Line 1843... Line 1842...
1843
 
1842
 
1844
  #ifdef cpu > 3  //åñëè òèï ïðîöåññîðà áîëüøå 80386
1843
  #ifdef cpu > 3  //åñëè òèï ïðîöåññîðà áîëüøå 80386
Line 1845... Line 1844...
1845
Return to contents.
1844
Return to contents.
1846
 
1845
 
Line 1847... Line 1846...
1847
 
1846
 
1848
 
1847
 
Line 1849... Line 1848...
1849
6. Ïåðåìåííûå.
1848
6. Ïåðåìåííûå.
1850
 
1849
 
Line 1851... Line 1850...
1851
  6.1 Òèïû ïåðåìåííûõ.
1850
  6.1 Òèïû ïåðåìåííûõ.
Line 1896... Line 1895...
1896
  16-áèòíîì ðåæèìå, òàêæå êàê è òèï unsigned int, èìååò 16-áèòíûé ðàçìåð, à
1895
  16-áèòíîì ðåæèìå, òàêæå êàê è òèï unsigned int, èìååò 16-áèòíûé ðàçìåð, à
1897
  â 32-áèòíîì ðåæèìå ýòè îáà òèïà èìåþò ðàçìåð â 32-áèòà. Íà ïåðâûé âçãëÿä
1896
  â 32-áèòíîì ðåæèìå ýòè îáà òèïà èìåþò ðàçìåð â 32-áèòà. Íà ïåðâûé âçãëÿä
1898
  òàêèå ñâîéñòâà òèïà int âíîñÿò íåêîòîðóþ ïóòàíèöó, íî ýòî äàåò áîëüøîé
1897
  òàêèå ñâîéñòâà òèïà int âíîñÿò íåêîòîðóþ ïóòàíèöó, íî ýòî äàåò áîëüøîé
1899
  âûèãðûø ïðè èñïîëüçîâàíèè ýòîãî òèïà â áèáëèîòå÷íûõ ôàéëàõ, êîòîðûå ìîãóò
1898
  âûèãðûø ïðè èñïîëüçîâàíèè ýòîãî òèïà â áèáëèîòå÷íûõ ôàéëàõ, êîòîðûå ìîãóò
1900
  áûòü èñïîëüçîâàíû ïðè êîìïèëÿöèè 16-áèòíûõ è 32-áèòíûõ ïðîãðàìì.
1899
  áûòü èñïîëüçîâàíû ïðè êîìïèëÿöèè 16-áèòíûõ è 32-áèòíûõ ïðîãðàìì.
1901
Return to contents.
1900
Return to contents.
Line 1902... Line 1901...
1902
 
1901
 
1903
 
1902
 
1904
 
1903
 
Line 1905... Line 1904...
1905
  6.2 Îáúÿâëåíèå ïåðåìåííûõ.
1904
  6.2 Îáúÿâëåíèå ïåðåìåííûõ.
Line 1906... Line 1905...
1906
 
1905
 
Line 1938... Line 1937...
1938
                  ýëåìåíòîâ òèïà word */
1937
                  ýëåìåíòîâ òèïà word */
1939
  int h,x[27]  /* îáúÿâëÿåò, ïåðåìåííóþ òèïà int ñ èìåíåì h,
1938
  int h,x[27]  /* îáúÿâëÿåò, ïåðåìåííóþ òèïà int ñ èìåíåì h,
1940
                  è ìàññèâ ñ èìåíåì x, ñîñòîÿùèé èç 27 ýëåìåíòîâ òèïà int */
1939
                  è ìàññèâ ñ èìåíåì x, ñîñòîÿùèé èç 27 ýëåìåíòîâ òèïà int */
1941
  long size=0; /* îáúÿâëåíà ïåðåìåííàÿ òèïà long ñ èìåíåì size è åé ïðèñâîåíî
1940
  long size=0; /* îáúÿâëåíà ïåðåìåííàÿ òèïà long ñ èìåíåì size è åé ïðèñâîåíî
1942
                  çíà÷åíèå 0. */
1941
                  çíà÷åíèå 0. */
1943
Return to contents.
1942
Return to contents.
Line 1944... Line 1943...
1944
 
1943
 
1945
 
1944
 
1946
 
1945
 
Line 1947... Line 1946...
1947
  6.3 Ãëîáàëüíûå ïåðåìåííûå.
1946
  6.3 Ãëîáàëüíûå ïåðåìåííûå.
1948
 
1947
 
1949
 
1948
 
1950
      Ãëîáàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå, îáëàñòü äåéñòâèÿ êîòîðûõ
1949
      Ãëîáàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå, îáëàñòü äåéñòâèÿ êîòîðûõ
Line 1977... Line 1976...
1977
      Ïàìÿòü ïîä ãëîáàëüíûå ïåðåìåííûå âûäåëÿåòñÿ â ñåãìåíòå äàííûõ. Åñëè
1976
      Ïàìÿòü ïîä ãëîáàëüíûå ïåðåìåííûå âûäåëÿåòñÿ â ñåãìåíòå äàííûõ. Åñëè
1978
  ïåðåìåííàÿ ïðè îáúÿâëåíèè èíèöèàëèçèðóåòñÿ (ò.å. åé ïðèñâîåíî êàêîå-òî
1977
  ïåðåìåííàÿ ïðè îáúÿâëåíèè èíèöèàëèçèðóåòñÿ (ò.å. åé ïðèñâîåíî êàêîå-òî
1979
  çíà÷åíèå), òî ïåðåìåííàÿ áóäåò âêëþ÷åíà â êîä êîìïèëèðóåìîãî ôàéëà. Åñëè
1978
  çíà÷åíèå), òî ïåðåìåííàÿ áóäåò âêëþ÷åíà â êîä êîìïèëèðóåìîãî ôàéëà. Åñëè
1980
  ïåðåìåííàÿ íå èíèöèàëèçèðóåòñÿ, òî ìåñòî äëÿ ïåðåìåííîé áóäåò
1979
  ïåðåìåííàÿ íå èíèöèàëèçèðóåòñÿ, òî ìåñòî äëÿ ïåðåìåííîé áóäåò
1981
  çàðåçåðâèðîâàíî ñðàçó æå çà ïîñëåäíèì áàéòîì ñêîìïèëèðîâàííîé ïðîãðàììû.
1980
  çàðåçåðâèðîâàíî ñðàçó æå çà ïîñëåäíèì áàéòîì ñêîìïèëèðîâàííîé ïðîãðàììû.
1982
Return to contents.
1981
Return to contents.
Line 1983... Line 1982...
1983
 
1982
 
1984
 
1983
 
1985
 
1984
 
Line 1986... Line 1985...
1986
  6.4 Ëîêàëüíûå ïåðåìåííûå.
1985
  6.4 Ëîêàëüíûå ïåðåìåííûå.
1987
 
1986
 
1988
 
1987
 
1989
      Ëîêàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå îáëàñòü äåéñòâèÿ êîòîðûõ
1988
      Ëîêàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå îáëàñòü äåéñòâèÿ êîòîðûõ
Line 2019... Line 2018...
2019
  int locproc;  // îáúÿâëåíèå ëîêàëüíîé ïðîöåäóðû
2018
  int locproc;  // îáúÿâëåíèå ëîêàëüíîé ïðîöåäóðû
2020
    locproc=0;  // à òåïåðü ïîøëî òåëî ïðîöåäóðû
2019
    locproc=0;  // à òåïåðü ïîøëî òåëî ïðîöåäóðû
2021
  int locproc;  // à íà ýòî îáúÿâëåíèå ïåðåìåííîé êîìïèëÿòîð âûäàñò ñîîáùåíèå
2020
  int locproc;  // à íà ýòî îáúÿâëåíèå ïåðåìåííîé êîìïèëÿòîð âûäàñò ñîîáùåíèå
2022
                // îá îøèáêå, ò.ê. óæå íà÷àëîñü òåëî ïðîöåäóðû
2021
                // îá îøèáêå, ò.ê. óæå íà÷àëîñü òåëî ïðîöåäóðû
2023
  }
2022
  }
2024
Return to contents.
2023
Return to contents.
Line 2025... Line 2024...
2025
 
2024
 
2026
 
2025
 
2027
 
2026
 
Line 2028... Line 2027...
2028
  6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
2027
  6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
2029
 
2028
 
2030
 
2029
 
2031
      Íàðÿäó ñ óæå èçâåñòíûìè Âàì äèíàìè÷åñêèìè ïðîöåäóðàìè â C-- åñòü
2030
      Íàðÿäó ñ óæå èçâåñòíûìè Âàì äèíàìè÷åñêèìè ïðîöåäóðàìè â C-- åñòü
Line 2045... Line 2044...
2045
 
2044
 
2046
      Äèíàìè÷åñêèå èíèöèàëèçèðîâàííûå ïåðåìåííûå è ñòðóêòóðû â ôàéëå áóäóò
2045
      Äèíàìè÷åñêèå èíèöèàëèçèðîâàííûå ïåðåìåííûå è ñòðóêòóðû â ôàéëå áóäóò
2047
  ðàñïîëîæåíû â åãî ñàìîì êîíöå, ïîñëå äèíàìè÷åñêèõ ïðîöåäóð. Ýòó èõ
2046
  ðàñïîëîæåíû â åãî ñàìîì êîíöå, ïîñëå äèíàìè÷åñêèõ ïðîöåäóð. Ýòó èõ
2048
  îñîáåííîñòü ìîæíî èñïîëüçîâàòü, åñëè Âàì áóäåò íåîáõîäèìî, ÷òîáû äàííûå íå
2047
  îñîáåííîñòü ìîæíî èñïîëüçîâàòü, åñëè Âàì áóäåò íåîáõîäèìî, ÷òîáû äàííûå íå
2049
  áûëè ðàçáðîñàíû ñðåäè êîäà, à áûëè ñãðóïïèðîâàíû â îäíîì ìåñòå.
2048
  áûëè ðàçáðîñàíû ñðåäè êîäà, à áûëè ñãðóïïèðîâàíû â îäíîì ìåñòå.
Line 2050... Line 2049...
2050
Return to contents.
2049
Return to contents.
2051
 
2050
 
2052
 
2051
 
Line 2053... Line 2052...
2053
 
2052
 
Line 2054... Line 2053...
2054
  6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
2053
  6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
2055
 
2054
 
Line 2064... Line 2063...
2064
 
2063
 
Line 2065... Line 2064...
2065
    var1=var2=var3=0;
2064
    var1=var2=var3=0;
2066
 
2065
 
2067
      Ïðè èñïîëüçîâàíèè òàêîé çàïèñè ãåíåðèðóåòñÿ áîëåå êîìïàêòíûé è áîëåå
2066
      Ïðè èñïîëüçîâàíèè òàêîé çàïèñè ãåíåðèðóåòñÿ áîëåå êîìïàêòíûé è áîëåå
Line 2068... Line 2067...
2068
  áûñòðûé êîä.
2067
  áûñòðûé êîä.
2069
Return to contents.
2068
Return to contents.
Line 2070... Line 2069...
2070
 
2069
 
2071
 
2070
 
Line 2072... Line 2071...
2072
 
2071
 
2073
  6.7 Ïåðåìåííûå òèïà float.
2072
  6.7 Ïåðåìåííûå òèïà float.
2074
 
2073
 
Line 2087... Line 2086...
2087
    31 30.....23 22........0
2086
    31 30.....23 22........0
2088
    |  |      |  |         |
2087
    |  |      |  |         |
2089
    |  |      |  -------------- - ïîëå ìàíòèññû
2088
    |  |      |  -------------- - ïîëå ìàíòèññû
2090
    |  ------------------------ - ïîëå ïîðÿäêà
2089
    |  ------------------------ - ïîëå ïîðÿäêà
2091
    --------------------------- - áèò çíàêà
2090
    --------------------------- - áèò çíàêà
2092
Return to contents.
2091
Return to contents.
Line 2093... Line 2092...
2093
 
2092
 
2094
 
2093
 
2095
 
2094
 
Line 2096... Line 2095...
2096
    6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
2095
    6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
2097
 
2096
 
2098
 
2097
 
2099
        Êîìïèëÿòîð îòëè÷àåò âåùåñòâåííîå ÷èñëî îò öåëîãî ïî íàëè÷èþ â íåì
2098
        Êîìïèëÿòîð îòëè÷àåò âåùåñòâåííîå ÷èñëî îò öåëîãî ïî íàëè÷èþ â íåì
Line 2104... Line 2103...
2104
 
2103
 
2105
     0.98
2104
     0.98
2106
     -15.75
2105
     -15.75
2107
     3.14e2
2106
     3.14e2
2108
     1.234567E-20
2107
     1.234567E-20
Line 2109... Line 2108...
2109
Return to contents.
2108
Return to contents.
2110
 
2109
 
2111
 
2110
 
Line 2112... Line 2111...
2112
 
2111
 
2113
    6.7.3 Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.
2112
    6.7.3 Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.
2114
 
2113
 
2115
 
2114
 
2116
        Âåùåñòâåííîå ÷èñëî òèïà float ìîæåò íàõîäèòüñÿ â äèàïàçîíå îò 3.37E38
2115
        Âåùåñòâåííîå ÷èñëî òèïà float ìîæåò íàõîäèòüñÿ â äèàïàçîíå îò 3.37E38
2117
    äî -3.37E38. Ìèíèìàëüíî áëèçêîå ê íóëþ çíà÷åíèå ðàâíÿåòñÿ 1.17E-38 è
2116
    äî -3.37E38. Ìèíèìàëüíî áëèçêîå ê íóëþ çíà÷åíèå ðàâíÿåòñÿ 1.17E-38 è
Line 2118... Line 2117...
2118
    -1.17E-38. Çàïèñûâàòü âåùåñòâåííîå ÷èñëî îäèíàðíîé òî÷íîñòè áîëåå ÷åì 8
2117
    -1.17E-38. Çàïèñûâàòü âåùåñòâåííîå ÷èñëî îäèíàðíîé òî÷íîñòè áîëåå ÷åì 8
2119
    öèôðàìè íå èìååò ñìûñëà. Ïîêàçàòåëü ñòåïåíè ìîæåò ïðèíèìàòü çíà÷åíèÿ îò
2118
    öèôðàìè íå èìååò ñìûñëà. Ïîêàçàòåëü ñòåïåíè ìîæåò ïðèíèìàòü çíà÷åíèÿ îò
2120
    +38 äî -38.
2119
    +38 äî -38.
Line 2121... Line 2120...
2121
Return to contents.
2120
Return to contents.
2122
 
2121
 
2123
 
2122
 
2124
 
2123
 
Line 2134... Line 2133...
2134
    è ïåðåìåííûå äðóãèõ òèïîâ, îíè áóäóò àâòîìàòè÷åñêè ïðåîáðàçîâàíû â òèï
2133
    è ïåðåìåííûå äðóãèõ òèïîâ, îíè áóäóò àâòîìàòè÷åñêè ïðåîáðàçîâàíû â òèï
2135
    float.
2134
    float.
Line 2136... Line 2135...
2136
 
2135
 
2137
        ÂÍÈÌÀÍÈÅ! Ñîñòàâíûå ìàòåìàòè÷åñêèå  îïåðàöèè âûïîëíÿþòñÿ â òîì
2136
        ÂÍÈÌÀÍÈÅ! Ñîñòàâíûå ìàòåìàòè÷åñêèå  îïåðàöèè âûïîëíÿþòñÿ â òîì
2138
    ïîðÿäêå, â êîòîðîì îíè çàïèñàíû, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè.
2137
    ïîðÿäêå, â êîòîðîì îíè çàïèñàíû, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè.
Line 2139... Line 2138...
2139
Return to contents.
2138
Return to contents.
2140
 
2139
 
2141
 
2140
 
Line 2142... Line 2141...
2142
 
2141
 
2143
    6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.
2142
    6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.
2144
 
2143
 
2145
 
2144
 
Line 2151... Line 2150...
2151
        Åñëè ïðè öåëî÷èñëåííûõ âû÷èñëåíèÿõ îäíèì èç îïåðàíäîâ áóäåò ïåðåìåííàÿ
2150
        Åñëè ïðè öåëî÷èñëåííûõ âû÷èñëåíèÿõ îäíèì èç îïåðàíäîâ áóäåò ïåðåìåííàÿ
2152
    òèïà float, òî èç íåãî áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è ïðèìåò
2151
    òèïà float, òî èç íåãî áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è ïðèìåò
2153
    ó÷àñòèå â âû÷èñëåíèÿõ. Ïðè ïðèñâàèâàíèè öåëî÷èñëåííîé ïåðåìåííîé çíà÷åíèÿ
2152
    ó÷àñòèå â âû÷èñëåíèÿõ. Ïðè ïðèñâàèâàíèè öåëî÷èñëåííîé ïåðåìåííîé çíà÷åíèÿ
2154
    ïåðåìåííîé òèïà float, èç íåå òàêæå áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è
2153
    ïåðåìåííîé òèïà float, èç íåå òàêæå áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è
2155
    áóäåò ïðèñâîåíà öåëî÷èñëåííîé ïåðåìåííîé.
2154
    áóäåò ïðèñâîåíà öåëî÷èñëåííîé ïåðåìåííîé.
2156
Return to contents.
2155
Return to contents.
Line 2157... Line 2156...
2157
 
2156
 
2158
 
2157
 
2159
 
2158
 
Line 2160... Line 2159...
2160
    6.7.6 Îïåðàöèè ñðàâíåíèÿ.
2159
    6.7.6 Îïåðàöèè ñðàâíåíèÿ.
2161
 
2160
 
2162
 
2161
 
2163
        Åñëè ïðè îïåðàöèè ñðàâíåíèÿ ëåâûì îïåðàíäîì ÿâëÿåòñÿ ïåðåìåííàÿ èëè
2162
        Åñëè ïðè îïåðàöèè ñðàâíåíèÿ ëåâûì îïåðàíäîì ÿâëÿåòñÿ ïåðåìåííàÿ èëè
2164
    âûðàæåíèå òèïà float, à ïðàâûì ÿâëÿåòñÿ öåëî÷èñëåííîå çíà÷åíèå, òî
2163
    âûðàæåíèå òèïà float, à ïðàâûì ÿâëÿåòñÿ öåëî÷èñëåííîå çíà÷åíèå, òî
2165
    öåëî÷èñëåííîå çíà÷åíèå áóäåò ïðåîáðàçîâàíî â âåùåñòâåííûé òèï. Åñëè æå
2164
    öåëî÷èñëåííîå çíà÷åíèå áóäåò ïðåîáðàçîâàíî â âåùåñòâåííûé òèï. Åñëè æå
2166
    ëåâûì îïåðàíäîì ÿâëÿåòñÿ öåëî÷èñëåííîå âûðàæåíèå èëè ïåðåìåííàÿ, à ïðàâûì
2165
    ëåâûì îïåðàíäîì ÿâëÿåòñÿ öåëî÷èñëåííîå âûðàæåíèå èëè ïåðåìåííàÿ, à ïðàâûì
Line 2167... Line 2166...
2167
    îïåðàíäîì çíà÷åíèå òèïà float, òî èç ïðàâîãî îïåðàíäà áóäåò âûäåëåíà öåëàÿ
2166
    îïåðàíäîì çíà÷åíèå òèïà float, òî èç ïðàâîãî îïåðàíäà áóäåò âûäåëåíà öåëàÿ
2168
    ÷àñòü, êîòîðàÿ è ïðèìåò ó÷àñòèå â ñðàâíåíèè.
2167
    ÷àñòü, êîòîðàÿ è ïðèìåò ó÷àñòèå â ñðàâíåíèè.
2169
Return to contents.
2168
Return to contents.
Line 2170... Line 2169...
2170
 
2169
 
2171
 
2170
 
2172
 
2171
 
2173
    6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
2172
    6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
Line 2188... Line 2187...
2188
      IF( f == float EAX )  //â EAX íàõîäèòñÿ ÷èñëî ôîðìàòà float
2187
      IF( f == float EAX )  //â EAX íàõîäèòñÿ ÷èñëî ôîðìàòà float
2189
    }
2188
    }
Line 2190... Line 2189...
2190
 
2189
 
2191
        ÂÍÈÌÀÍÈÅ!  Ïðè îïåðàöèè ñðàâíåíèÿ ñ ó÷àñòèåì ïåðåìåíîé òèïà float,
2190
        ÂÍÈÌÀÍÈÅ!  Ïðè îïåðàöèè ñðàâíåíèÿ ñ ó÷àñòèåì ïåðåìåíîé òèïà float,
2192
    ñîäåðæèìîå ðåãèñòðà AX áóäåò ðàçðóøåíî.
2191
    ñîäåðæèìîå ðåãèñòðà AX áóäåò ðàçðóøåíî.
Line 2193... Line 2192...
2193
Return to contents.
2192
Return to contents.
2194
 
2193
 
2195
 
2194
 
Line 2196... Line 2195...
2196
 
2195
 
2197
  6.8 Óêàçàòåëè.
2196
  6.8 Óêàçàòåëè.
Line 2198... Line 2197...
2198
 
2197
 
Line 2233... Line 2232...
2233
 
2232
 
2234
      Ïðè èíèöèàëèçàöèè óêàçàòåëåé êîìïèëÿòîð íå êîíòðîëèðóåò òî, ÷åì
2233
      Ïðè èíèöèàëèçàöèè óêàçàòåëåé êîìïèëÿòîð íå êîíòðîëèðóåò òî, ÷åì
2235
  èíèöèàëèçèðóåòñÿ óêàçàòåëü. Ò.å. Âû ìîæåòå óêàçàòåëþ íà char ïðèñâîèòü
2234
  èíèöèàëèçèðóåòñÿ óêàçàòåëü. Ò.å. Âû ìîæåòå óêàçàòåëþ íà char ïðèñâîèòü
2236
  óêàçàòåëü íà int èëè óêàçàòåëþ íà ïðîöåäóðó ïðèñâîèòü àäðåñ ïåðåìåííîé.
2235
  óêàçàòåëü íà int èëè óêàçàòåëþ íà ïðîöåäóðó ïðèñâîèòü àäðåñ ïåðåìåííîé.
2237
  Ýòî ìîæåò âûçâàòü îøèáêó â ðàáîòå ïðîãðàììû.
2236
  Ýòî ìîæåò âûçâàòü îøèáêó â ðàáîòå ïðîãðàììû.
Line 2238... Line 2237...
2238
Return to contents.
2237
Return to contents.
2239
 
2238
 
Line 2240... Line 2239...
2240
 
2239
 
2241
 
2240
 
Line 2242... Line 2241...
2242
7. Àäðåñàöèÿ.
2241
7. Àäðåñàöèÿ.
2243
 
2242
 
2244
  7.1 Îòíîñèòåëüíàÿ àäðåñàöèÿ.
2243
  7.1 Îòíîñèòåëüíàÿ àäðåñàöèÿ.
2245
 
2244
 
Line 2347... Line 2346...
2347
      Âàæíî âñåãäà ïîìíèòü î äâîéñòâåííîì ïîäõîäå êîìïèëÿòîðà ê âû÷èñëåíèþ
2346
      Âàæíî âñåãäà ïîìíèòü î äâîéñòâåííîì ïîäõîäå êîìïèëÿòîðà ê âû÷èñëåíèþ
2348
  àäðåñà â ìàññèâå. Åùå ðàç êðàòêî:  åñëè Âû â ìàññèâå àäðåñóåòåñü èñïîëüçóÿ
2347
  àäðåñà â ìàññèâå. Åùå ðàç êðàòêî:  åñëè Âû â ìàññèâå àäðåñóåòåñü èñïîëüçóÿ
2349
  ÷èñëîâóþ êîíñòàíòó èëè ðåãèñòðû BX,DI,SI,BP êîìïèëÿòîð èñïîëüçóåò ýòè
2348
  ÷èñëîâóþ êîíñòàíòó èëè ðåãèñòðû BX,DI,SI,BP êîìïèëÿòîð èñïîëüçóåò ýòè
2350
  çíà÷åíèÿ áåç èçìåíåíèÿ.  Âî âñåõ äðóãèõ ñëó÷àÿõ áóäåò êîððåêöèÿ çíà÷åíèÿ â
2349
  çíà÷åíèÿ áåç èçìåíåíèÿ.  Âî âñåõ äðóãèõ ñëó÷àÿõ áóäåò êîððåêöèÿ çíà÷åíèÿ â
2351
  çàâèñèìîñòè îò òèïà ìàññèâà.
2350
  çàâèñèìîñòè îò òèïà ìàññèâà.
2352
Return to contents.
2351
Return to contents.
Line 2353... Line 2352...
2353
 
2352
 
2354
 
2353
 
2355
 
2354
 
Line 2356... Line 2355...
2356
  7.2 Àáñîëþòíàÿ àäðåñàöèÿ.
2355
  7.2 Àáñîëþòíàÿ àäðåñàöèÿ.
2357
 
2356
 
Line 2358... Line 2357...
2358
 
2357
 
Line 2439... Line 2438...
2439
                 ES = 0xFFFF;
2438
                 ES = 0xFFFF;
2440
                 ESINT [0x1234] = X + 2;
2439
                 ESINT [0x1234] = X + 2;
Line 2441... Line 2440...
2441
 
2440
 
2442
     Ñîõðàíèòü BX â ñåãìåíòå ñòåêà ïî ñìåùåíèþ 42:
2441
     Ñîõðàíèòü BX â ñåãìåíòå ñòåêà ïî ñìåùåíèþ 42:
2443
                 SSWORD [42] = BX;
2442
                 SSWORD [42] = BX;
Line 2444... Line 2443...
2444
Return to contents.
2443
Return to contents.
2445
 
2444
 
Line 2446... Line 2445...
2446
 
2445
 
Line 2447... Line 2446...
2447
 
2446
 
2448
8. Ðàáîòà ñ áëîêàìè äàííûõ.
2447
8. Ðàáîòà ñ áëîêàìè äàííûõ.
Line 2449... Line 2448...
2449
 
2448
 
2450
  8.1 Ñòðóêòóðû.
2449
  8.1 Ñòðóêòóðû.
2451
 
2450
 
Line 2452... Line 2451...
2452
    8.1.1 ×òî òàêîå ñòðóêòóðû.
2451
    8.1.1 ×òî òàêîå ñòðóêòóðû.
2453
 
2452
 
2454
 
2453
 
Line 2455... Line 2454...
2455
        Ñòðóêòóðà ïîçâîëÿåò îáúåäèíèòü â îäíîì îáúåêòå ñîâîêóïíîñòü çíà÷åíèé,
2454
        Ñòðóêòóðà ïîçâîëÿåò îáúåäèíèòü â îäíîì îáúåêòå ñîâîêóïíîñòü çíà÷åíèé,
2456
    êîòîðûå ìîãóò èìåòü ðàçëè÷íûå òèïû.
2455
    êîòîðûå ìîãóò èìåòü ðàçëè÷íûå òèïû.
2457
Return to contents.
2456
Return to contents.
Line 2508... Line 2507...
2508
 
2507
 
2509
        Ïðè îáúÿâëåíèè ñòðóêòóð ñ ðàíåå îáúÿâëåííûì òåãîì êëþ÷åâîå ñëîâî
2508
        Ïðè îáúÿâëåíèè ñòðóêòóð ñ ðàíåå îáúÿâëåííûì òåãîì êëþ÷åâîå ñëîâî
Line 2510... Line 2509...
2510
   struct ìîæíî íå ïèñàòü. Ò.å ìîæíî íàïèñàòü âîò òàê:
2509
   struct ìîæíî íå ïèñàòü. Ò.å ìîæíî íàïèñàòü âîò òàê:
2511
 
2510
 
Line 2512... Line 2511...
2512
      test dd;
2511
      test dd;
2513
Return to contents.
2512
Return to contents.
2514
 
2513
 
Line 2515... Line 2514...
2515
 
2514
 
2516
 
2515
 
2517
    8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
2516
    8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
2518
 
2517
 
Line 2551... Line 2550...
2551
       struct test dd=EXTRACT "file.dat", 24, 10;
2550
       struct test dd=EXTRACT "file.dat", 24, 10;
Line 2552... Line 2551...
2552
 
2551
 
2553
    Â ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
2552
    Â ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
2554
    çàãðóæåí ôðàãìåíò èç ôàéëà file.dat äëèíîé 10 áàéò ñî ñìåùåíèÿ 24.
2553
    çàãðóæåí ôðàãìåíò èç ôàéëà file.dat äëèíîé 10 áàéò ñî ñìåùåíèÿ 24.
2555
    Íåäîñòàþùèå áàéòû áóäóò çàïîëíåíû íóëÿìè.
2554
    Íåäîñòàþùèå áàéòû áóäóò çàïîëíåíû íóëÿìè.
Line 2556... Line 2555...
2556
Return to contents.
2555
Return to contents.
2557
 
2556
 
2558
 
2557
 
Line 2559... Line 2558...
2559
 
2558
 
2560
    8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
2559
    8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
2561
 
2560
 
Line 2589... Line 2588...
2589
 
2588
 
Line 2590... Line 2589...
2590
      rr=aa[2];
2589
      rr=aa[2];
2591
 
2590
 
2592
    Áóäåò ñêîïèðîâàíî ñîäåðæèìîå òðåòüåé ñòðóêòóðû ìàññèâà ñòðóêòóð aa â
2591
    Áóäåò ñêîïèðîâàíî ñîäåðæèìîå òðåòüåé ñòðóêòóðû ìàññèâà ñòðóêòóð aa â
Line 2593... Line 2592...
2593
    ñòðóêòóðó rr.
2592
    ñòðóêòóðó rr.
2594
Return to contents.
2593
Return to contents.
2595
 
2594
 
Line 2596... Line 2595...
2596
 
2595
 
2597
 
2596
 
2598
    8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
2597
    8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
Line 2639... Line 2638...
2639
      AX=#ss.bb.b; // ïîëó÷èòü àäðåñ ýëåìåíòà b ñòðóêòóðû bb â ñòðóêòóðå ss
2638
      AX=#ss.bb.b; // ïîëó÷èòü àäðåñ ýëåìåíòà b ñòðóêòóðû bb â ñòðóêòóðå ss
2640
      AX=#BB.bb.b; // ïîëó÷èòü ñìåùåíèå ýòîãî æå ýëåìåíòà â òåãå BB
2639
      AX=#BB.bb.b; // ïîëó÷èòü ñìåùåíèå ýòîãî æå ýëåìåíòà â òåãå BB
2641
      AX=sizeof(ss.bb);	// ïîëó÷èòü ðàçìåð ýëåìåíòà bb â ñòðóêòóðå ss
2640
      AX=sizeof(ss.bb); // ïîëó÷èòü ðàçìåð ýëåìåíòà bb â ñòðóêòóðå ss
2642
      AX=sizeof(BB.bb);	// ïîëó÷èòü ðàçìåð ýëåìåíòà bb â òåãå BB
2641
      AX=sizeof(BB.bb); // ïîëó÷èòü ðàçìåð ýëåìåíòà bb â òåãå BB
2643
    }
2642
    }
2644
Return to contents.
2643
Return to contents.
Line 2645... Line 2644...
2645
 
2644
 
2646
 
2645
 
2647
 
2646
 
Line 2648... Line 2647...
2648
    8.1.6 Âëîæåííûå ñòðóêòóðû.
2647
    8.1.6 Âëîæåííûå ñòðóêòóðû.
2649
 
2648
 
Line 2650... Line 2649...
2650
 
2649
 
Line 2694... Line 2693...
2694
      AX=second[i].first[j].a; //òàêàÿ çàïèñü âûçîâåò ñîîáùåíèå îá îøèáêà, òàê
2693
      AX=second[i].first[j].a; //òàêàÿ çàïèñü âûçîâåò ñîîáùåíèå îá îøèáêà, òàê
2695
                               //êàê ïåðåìåííàÿ èñïîëüçîâàëàñü â äâóõ ìåñòàõ
2694
                               //êàê ïåðåìåííàÿ èñïîëüçîâàëàñü â äâóõ ìåñòàõ
2696
      AX=second[2].first[j].a; //à ýòîò ñèíòàêñèñ äîïóñòèì.
2695
      AX=second[2].first[j].a; //à ýòîò ñèíòàêñèñ äîïóñòèì.
2697
      AX=second[i].first[3].a;
2696
      AX=second[i].first[3].a;
2698
    }
2697
    }
2699
Return to contents.
2698
Return to contents.
Line 2700... Line 2699...
2700
 
2699
 
2701
 
2700
 
2702
 
2701
 
Line 2703... Line 2702...
2703
    8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
2702
    8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
2704
 
2703
 
Line 2705... Line 2704...
2705
 
2704
 
Line 2748... Line 2747...
2748
    Ðåãèñòðû DI è SI ìîæåò èñïîëüçîâàòü êîìïèëÿòîð ïðè âû÷èñëåíèè àäðåñà
2747
    Ðåãèñòðû DI è SI ìîæåò èñïîëüçîâàòü êîìïèëÿòîð ïðè âû÷èñëåíèè àäðåñà
2749
    ìíîãîýëåìåíòíûõ îáúåêòîâ. Ðåãèñòð BP êîìïèëÿòîð èñïîëüçóåò äëÿ ðàáîòû ñ
2748
    ìíîãîýëåìåíòíûõ îáúåêòîâ. Ðåãèñòð BP êîìïèëÿòîð èñïîëüçóåò äëÿ ðàáîòû ñ
2750
    ëîêàëüíûìè è ïàðàìåòðè÷åñêèìè ïåðåìåííûìè.  32-áèòíîì ðåæèìå ìîæíî
2749
    ëîêàëüíûìè è ïàðàìåòðè÷åñêèìè ïåðåìåííûìè.  32-áèòíîì ðåæèìå ìîæíî
2751
    èñïîëüçîâàòü ëþáîé êðîìå ESP è EBP ðåãèñòð, à ðåãèñòðû EDI è ESI íàäî
2750
    èñïîëüçîâàòü ëþáîé êðîìå ESP è EBP ðåãèñòð, à ðåãèñòðû EDI è ESI íàäî
2752
    èñïîëüçîâàòü îñòîðîæíî.
2751
    èñïîëüçîâàòü îñòîðîæíî.
2753
Return to contents.
2752
Return to contents.
Line 2754... Line 2753...
2754
 
2753
 
2755
 
2754
 
2756
 
2755
 
Line 2757... Line 2756...
2757
    8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.
2756
    8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.
2758
 
2757
 
2759
 
2758
 
2760
        Áèòîâûå ïîëÿ ñòðóêòóð èñïîëüçóþòñÿ äëÿ ýêîíîìèè ïàìÿòè, ïîñêîëüêó
2759
        Áèòîâûå ïîëÿ ñòðóêòóð èñïîëüçóþòñÿ äëÿ ýêîíîìèè ïàìÿòè, ïîñêîëüêó
Line 2792... Line 2791...
2792
    áèò äëÿ òèïà word/int è 8 áèò äëÿ òèïà byte/char. Áèòîâûå ïîëÿ ìîæíî
2791
    áèò äëÿ òèïà word/int è 8 áèò äëÿ òèïà byte/char. Áèòîâûå ïîëÿ ìîæíî
2793
    îáúåäèíÿòü, ò.å. èñïîëüçîâàòü èõ â îïåðàòîðå union. sizeof
2792
    îáúåäèíÿòü, ò.å. èñïîëüçîâàòü èõ â îïåðàòîðå union. sizeof
2794
    ïðèìåíåííûé ê áèòîâîìó ïîëþ âåðíåò ðàçìåð ýòîãî ïîëÿ â áèòàõ. Ïðè
2793
    ïðèìåíåííûé ê áèòîâîìó ïîëþ âåðíåò ðàçìåð ýòîãî ïîëÿ â áèòàõ. Ïðè
2795
    èñïîëüçîâàíèè áèòîâîãî ïîëÿ, åãî ñîäåðæèìîå áóäåò ðàñøèðÿòñÿ â ðåãèñòð
2794
    èñïîëüçîâàíèè áèòîâîãî ïîëÿ, åãî ñîäåðæèìîå áóäåò ðàñøèðÿòñÿ â ðåãèñòð
2796
    êàê áåç çíàêîâîå öåëîå ÷èñëî.
2795
    êàê áåç çíàêîâîå öåëîå ÷èñëî.
2797
Return to contents.
2796
Return to contents.
Line 2798... Line 2797...
2798
 
2797
 
2799
 
2798
 
2800
 
2799
 
Line 2801... Line 2800...
2801
  8.2 Îáúåäèíåíèÿ.
2800
  8.2 Îáúåäèíåíèÿ.
2802
 
2801
 
Line 2803... Line 2802...
2803
 
2802
 
Line 2835... Line 2834...
2835
  èíèöèàëèçèðîâàííûìè è íåèíèöèàëèçèðîâàííûìè. ×òîáû ïîëó÷èòü
2834
  èíèöèàëèçèðîâàííûìè è íåèíèöèàëèçèðîâàííûìè. ×òîáû ïîëó÷èòü
2836
  èíèöèàëèçèðîâàííîå îáúåäèíåíèå äîñòàòî÷íî ïðîèíèöèàëèçèðîâàòü ëèøü ïåðâûé
2835
  èíèöèàëèçèðîâàííîå îáúåäèíåíèå äîñòàòî÷íî ïðîèíèöèàëèçèðîâàòü ëèøü ïåðâûé
2837
  ýëåìåíò îáúåäèíåíèÿ. Åñëè æå ïåðâûé ýëåìåíò îáúåäèíåíèÿ íå èíèöèàëèçèðîâàí,
2836
  ýëåìåíò îáúåäèíåíèÿ. Åñëè æå ïåðâûé ýëåìåíò îáúåäèíåíèÿ íå èíèöèàëèçèðîâàí,
2838
  à ñëåäóþùèå ýëåìåíòû èíèöèàëèçèðîâàíû, òî ýòî âûçîâåò ñîîáùåíèå êîìïèëÿòîðà
2837
  à ñëåäóþùèå ýëåìåíòû èíèöèàëèçèðîâàíû, òî ýòî âûçîâåò ñîîáùåíèå êîìïèëÿòîðà
2839
  îá îøèáêå.
2838
  îá îøèáêå.
2840
Return to contents.
2839
Return to contents.
Line 2841... Line 2840...
2841
 
2840
 
2842
 
2841
 
2843
 
2842
 
Line 2844... Line 2843...
2844
  8.3 Êîìàíäû 'FROM' è 'EXTRACT'.
2843
  8.3 Êîìàíäû 'FROM' è 'EXTRACT'.
2845
 
2844
 
Line 2846... Line 2845...
2846
 
2845
 
Line 2867... Line 2866...
2867
  èìÿ_ïåðåìåííîé áóäåò èäåíòèôèêàòîðîì íà÷àëà çàãðóæåííîãî êîäà. Âîò ïðèìåð
2866
  èìÿ_ïåðåìåííîé áóäåò èäåíòèôèêàòîðîì íà÷àëà çàãðóæåííîãî êîäà. Âîò ïðèìåð
2868
  èñïîëüçîâàíèÿ ýòîé êîìàíäû:
2867
  èñïîëüçîâàíèÿ ýòîé êîìàíäû:
Line 2869... Line 2868...
2869
 
2868
 
2870
  byte LIT128 = EXTRACT "8X16.FNT", 16*128, 16;
2869
  byte LIT128 = EXTRACT "8X16.FNT", 16*128, 16;
2871
  byte LIT130 = EXTRACT "8X16.FNT", 16*130, 16;
2870
  byte LIT130 = EXTRACT "8X16.FNT", 16*130, 16;
Line 2872... Line 2871...
2872
Return to contents.
2871
Return to contents.
2873
 
2872
 
Line 2874... Line 2873...
2874
 
2873
 
2875
 
2874
 
Line 2876... Line 2875...
2876
9. Îïåðàòîðû.
2875
9. Îïåðàòîðû.
2877
 
2876
 
Line 2878... Line 2877...
2878
  9.1 Óñëîâíûå èíñòðóêöèè.
2877
  9.1 Óñëîâíûå èíñòðóêöèè.
Line 2918... Line 2917...
2918
 
2917
 
Line 2919... Line 2918...
2919
          ELSE jump distance too far, use else.
2918
          ELSE jump distance too far, use else.
2920
 
2919
 
2921
      Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ ELSE íà
2920
      Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ ELSE íà
Line 2922... Line 2921...
2922
  else.
2921
  else.
2923
Return to contents.
2922
Return to contents.
2924
 
2923
 
Line 2925... Line 2924...
2925
 
2924
 
2926
 
2925
 
Line 2927... Line 2926...
2927
  9.2 Öèêëû do{} while.
2926
  9.2 Öèêëû do{} while.
Line 2942... Line 2941...
2942
              WRITELN();
2941
              WRITELN();
2943
              } while (count < 5);
2942
              } while (count < 5);
Line 2944... Line 2943...
2944
 
2943
 
2945
  Óñëîâíîå âûðàæåíèå â do {} while èíñòðóêöèè äîëæíî ñîîòâåòñòâîâàòü òåì æå
2944
  Óñëîâíîå âûðàæåíèå â do {} while èíñòðóêöèè äîëæíî ñîîòâåòñòâîâàòü òåì æå
2946
  ïðàâèëàì, ÷òî è â èíñòðóêöèÿõ IF è if.
2945
  ïðàâèëàì, ÷òî è â èíñòðóêöèÿõ IF è if.
Line 2947... Line 2946...
2947
Return to contents.
2946
Return to contents.
2948
 
2947
 
2949
 
2948
 
Line 2950... Line 2949...
2950
 
2949
 
2951
  9.3 Öèêëû loop, LOOPNZ, loopnz.
2950
  9.3 Öèêëû loop, LOOPNZ, loopnz.
2952
 
2951
 
2953
 
2952
 
Line 3020... Line 3019...
3020
  íóëþ, òî òåëî öèêëà íè ðàçó íå âûïîëíèòñÿ (â öèêëå loop â ýòîì ñëó÷àå
3019
  íóëþ, òî òåëî öèêëà íè ðàçó íå âûïîëíèòñÿ (â öèêëå loop â ýòîì ñëó÷àå
3021
  òåëî öèêëà âûïîëíèòñÿ ìàêñèìàëüíîå ÷èñëî ðàç). Öèêë LOOPNZ ïîëó÷àåòñÿ
3020
  òåëî öèêëà âûïîëíèòñÿ ìàêñèìàëüíîå ÷èñëî ðàç). Öèêë LOOPNZ ïîëó÷àåòñÿ
3022
  ìàêñèìàëüíî ýôôåêòèâíûì ïðè îïòèìèçàöèè íà ðàçìåð êîäà, åñëè â êà÷åñòâå
3021
  ìàêñèìàëüíî ýôôåêòèâíûì ïðè îïòèìèçàöèè íà ðàçìåð êîäà, åñëè â êà÷åñòâå
3023
  ïàðàìåòðà-ñ÷åò÷èêà èñïîëüçóåòñÿ ðåãèñòð CX/ECX. Ïðè ýòîì êîìïèëÿòîð
3022
  ïàðàìåòðà-ñ÷åò÷èêà èñïîëüçóåòñÿ ðåãèñòð CX/ECX. Ïðè ýòîì êîìïèëÿòîð
3024
  èñïîëüçóåò àññåìáëåðíûå èíñòðóêöèè JCXZ/JECXZ è LOOP.
3023
  èñïîëüçóåò àññåìáëåðíûå èíñòðóêöèè JCXZ/JECXZ è LOOP.
3025
Return to contents.
3024
Return to contents.
Line 3026... Line 3025...
3026
 
3025
 
3027
 
3026
 
3028
 
3027
 
Line 3029... Line 3028...
3029
  9.4 Öèêë while, WHILE.
3028
  9.4 Öèêë while, WHILE.
3030
 
3029
 
3031
 
3030
 
Line 3048... Line 3047...
3048
  		i++;
3047
                i++;
3049
  	}
3048
        }
Line 3050... Line 3049...
3050
 
3049
 
3051
  	WHILE (i < 20 ) @WRITEWORD(i);	//öèêë ëèáî áóäåò áåñêîíå÷íûì ëèáî íå
3050
        WHILE (i < 20 ) @WRITEWORD(i);  //öèêë ëèáî áóäåò áåñêîíå÷íûì ëèáî íå
3052
                                          //âûïîëíèòñÿ íè ðàçó
3051
                                          //âûïîëíèòñÿ íè ðàçó
Line 3053... Line 3052...
3053
Return to contents.
3052
Return to contents.
3054
 
3053
 
3055
 
3054
 
Line 3056... Line 3055...
3056
 
3055
 
3057
  9.5 Öèêë for, FOR.
3056
  9.5 Öèêë for, FOR.
3058
 
3057
 
Line 3102... Line 3101...
3102
      Òàêæå åñòü âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ óñëîâèé. Îáúåäèíÿòü
3101
      Òàêæå åñòü âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ óñëîâèé. Îáúåäèíÿòü
3103
  ìîæíî äî 32 óñëîâèé. Êàæäîå îáúåäèíÿåìîå óñëîâèå äîëæíî áûòü çàêëþ÷åíî â
3102
  ìîæíî äî 32 óñëîâèé. Êàæäîå îáúåäèíÿåìîå óñëîâèå äîëæíî áûòü çàêëþ÷åíî â
3104
  ñêîáêè. Ïðèìåð:
3103
  ñêîáêè. Ïðèìåð:
Line 3105... Line 3104...
3105
 
3104
 
3106
        for ( a=0 ; (a>=0) && (a<10) ; a++ ){...
3105
        for ( a=0 ; (a>=0) && (a<10) ; a++ ){...
Line 3107... Line 3106...
3107
Return to contents.
3106
Return to contents.
3108
 
3107
 
3109
 
3108
 
Line 3110... Line 3109...
3110
 
3109
 
3111
  9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.
3110
  9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.
3112
 
3111
 
3113
 
3112
 
Line 3220... Line 3219...
3220
      BREAK;
3219
      BREAK;
3221
  };
3220
  };
Line 3222... Line 3221...
3222
 
3221
 
3223
      Êðîìå òîãî, ÷òî íîâûé ôîðìàò çàïèñè áîëåå êîìïàêòåí è áîëåå ÷èòàáåëåí,
3222
      Êðîìå òîãî, ÷òî íîâûé ôîðìàò çàïèñè áîëåå êîìïàêòåí è áîëåå ÷èòàáåëåí,
3224
  íî åùå ïðè ýòîì êîìïèëÿòîð ñîçäàåò áîëåå êîìïàêòíûé è áûñòðûé êîä.
3223
  íî åùå ïðè ýòîì êîìïèëÿòîð ñîçäàåò áîëåå êîìïàêòíûé è áûñòðûé êîä.
Line 3225... Line 3224...
3225
Return to contents.
3224
Return to contents.
3226
 
3225
 
3227
 
3226
 
Line 3228... Line 3227...
3228
 
3227
 
3229
  9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.
3228
  9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.
3230
 
3229
 
3231
 
3230
 
Line 3237... Line 3236...
3237
  <ìåòêà>:
3236
  <ìåòêà>:
Line 3238... Line 3237...
3238
 
3237
 
3239
      Îïåðàòîð ïåðåõîäà goto ïåðåäàåò óïðàâëåíèå íà îïåðàòîð ïîìå÷åííûé
3238
      Îïåðàòîð ïåðåõîäà goto ïåðåäàåò óïðàâëåíèå íà îïåðàòîð ïîìå÷åííûé
3240
  ìåòêîé. Àíàëîãîì â àññåìáëåðå îïåðàòîðó goto ÿâëÿåòñÿ êîìàíäà jmp near.
3239
  ìåòêîé. Àíàëîãîì â àññåìáëåðå îïåðàòîðó goto ÿâëÿåòñÿ êîìàíäà jmp near.
3241
  Àíàëîãîì â àññåìáëåðå îïåðàòîðó GOTO ÿâëÿåòñÿ êîìàíäà jmp short.
3240
  Àíàëîãîì â àññåìáëåðå îïåðàòîðó GOTO ÿâëÿåòñÿ êîìàíäà jmp short.
Line 3242... Line 3241...
3242
Return to contents.
3241
Return to contents.
3243
 
3242
 
3244
 
3243
 
Line 3245... Line 3244...
3245
 
3244
 
3246
  9.8 Îïåðàòîð ðàçðûâà break, BREAK.
3245
  9.8 Îïåðàòîð ðàçðûâà break, BREAK.
3247
 
3246
 
3248
 
3247
 
Line 3260... Line 3259...
3260
  		FOR(j=0; j < WIDTH; j++){
3259
                FOR(j=0; j < WIDTH; j++){
3261
  			IF(i==5)BREAK;
3260
                        IF(i==5)BREAK;
3262
  		}
3261
                }
3263
  		IF(i==10)BREAK;
3262
                IF(i==10)BREAK;
3264
  	}
3263
        }
3265
Return to contents.
3264
Return to contents.
Line 3266... Line 3265...
3266
 
3265
 
3267
 
3266
 
3268
 
3267
 
Line 3269... Line 3268...
3269
  9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
3268
  9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
3270
 
3269
 
3271
 
3270
 
3272
      Îïåðàòîð ïðîäîëæåíèÿ continue ïåðåäàåò óïðàâëåíèå íà ñëåäóþùóþ
3271
      Îïåðàòîð ïðîäîëæåíèÿ continue ïåðåäàåò óïðàâëåíèå íà ñëåäóþùóþ
Line 3277... Line 3276...
3277
  âûðàæåíèÿ.
3276
  âûðàæåíèÿ.
Line 3278... Line 3277...
3278
 
3277
 
3279
    Îïåðàòîð CONTINUE àíàëîãè÷åí continue, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
3278
    Îïåðàòîð CONTINUE àíàëîãè÷åí continue, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
3280
  1 áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ
3279
  1 áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ
3281
  CONTINUE äî íà÷àëà èòåðàöèè äîëæåí áûòü ìåíüøå 127 áàéò.
3280
  CONTINUE äî íà÷àëà èòåðàöèè äîëæåí áûòü ìåíüøå 127 áàéò.
Line 3282... Line 3281...
3282
Return to contents.
3281
Return to contents.
3283
 
3282
 
3284
 
3283
 
Line 3285... Line 3284...
3285
 
3284
 
3286
  9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
3285
  9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
3287
 
3286
 
3288
 
3287
 
Line 3300... Line 3299...
3300
 
3299
 
Line 3301... Line 3300...
3301
  	   if ( (a>3) && (b>4) || (c<8) ){
3300
           if ( (a>3) && (b>4) || (c<8) ){
3302
 
3301
 
3303
  Ò.å. åñëè ïðîèçâåñòè ðàñøèôðîâêó ýòîãî óñëîâèÿ, òî ïîëó÷èòñÿ ñëåäóþùåå:
3302
  Ò.å. åñëè ïðîèçâåñòè ðàñøèôðîâêó ýòîãî óñëîâèÿ, òî ïîëó÷èòñÿ ñëåäóþùåå:
Line 3304... Line 3303...
3304
  óñëîâèå âûïîëíèòñÿ åñëè a>3 è b>4 èëè a>3 è c<8.
3303
  óñëîâèå âûïîëíèòñÿ åñëè a>3 è b>4 èëè a>3 è c<8.
3305
Return to contents.
3304
Return to contents.
3306
 
3305
 
Line 3307... Line 3306...
3307
 
3306
 
3308
 
3307
 
3309
  9.11 Ïåðåõîä ÷åðåç öèêëû.
3308
  9.11 Ïåðåõîä ÷åðåç öèêëû.
3310
 
3309
 
Line 3340... Line 3339...
3340
  êîìïèëÿòîð ïðîïóñòèò äâà öèêëà è ïåðåäàñò óïðàâëåíèå çà ïðåäåëû òðåòüåãî,
3339
  êîìïèëÿòîð ïðîïóñòèò äâà öèêëà è ïåðåäàñò óïðàâëåíèå çà ïðåäåëû òðåòüåãî,
3341
  íà ìåòêó LABL2. Ìåòêè â ýòîì ïðèìåðå ïðîñòàâëåíû äëÿ óäîáñòâà îáúÿñíåíèÿ.
3340
  íà ìåòêó LABL2. Ìåòêè â ýòîì ïðèìåðå ïðîñòàâëåíû äëÿ óäîáñòâà îáúÿñíåíèÿ.
3342
  Íó è ÿ íàäåþñü, Âàì ïîíÿòíî, ÷òî çíà÷åíèå ïàðàìåòðà íå ìîæåò ïðåâûøàòü
3341
  Íó è ÿ íàäåþñü, Âàì ïîíÿòíî, ÷òî çíà÷åíèå ïàðàìåòðà íå ìîæåò ïðåâûøàòü
3343
  ÷èñëà öèêëîâ íàõîäÿùèõñÿ ïåðåä òåêóùèì. Òàê äëÿ îäèíî÷íîãî öèêëà ýòîò
3342
  ÷èñëà öèêëîâ íàõîäÿùèõñÿ ïåðåä òåêóùèì. Òàê äëÿ îäèíî÷íîãî öèêëà ýòîò
3344
  ïàðàìåòð ìîæåò ïðèíèìàòü ìàêñèìàëüíîå è åäèíñòâåííîå çíà÷åíèå - 0.
3343
  ïàðàìåòð ìîæåò ïðèíèìàòü ìàêñèìàëüíîå è åäèíñòâåííîå çíà÷åíèå - 0.
3345
Return to contents.
3344
Return to contents.
Line 3346... Line 3345...
3346
 
3345
 
3347
 
3346
 
3348
 
3347
 
Line 3349... Line 3348...
3349
  9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
3348
  9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
3350
 
3349
 
Line 3351... Line 3350...
3351
 
3350
 
Line 3352... Line 3351...
3352
      Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé â îïåðàöèÿõ ñðàâíåíèÿ if/IF
3351
      Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé â îïåðàöèÿõ ñðàâíåíèÿ if/IF
3353
  for/FOR while/WHILE ïðîèñõîäèò ñ ïîìîùüþ ñèìâîëà ! - not.
3352
  for/FOR while/WHILE ïðîèñõîäèò ñ ïîìîùüþ ñèìâîëà ! - not.
Line 3354... Line 3353...
3354
 
3353
 
3355
     Âûðàæåíè
3354
     Âûðàæåíè
Line 3356... Line 3355...
3356
 
3355
 
3357
    IF ( NOTCARRYFLAG )...   è  IF ( ! CARRYFLAG )...
3356
    IF ( NOTCARRYFLAG )...   è  IF ( ! CARRYFLAG )...
3358
    IF ( proc() == 0 )...    è IF ( ! proc() ) ...
3357
    IF ( proc() == 0 )...    è IF ( ! proc() ) ...
Line 3359... Line 3358...
3359
 
3358
 
3360
  ÿâëÿþòñÿ ñèíîíèìàìè.
3359
  ÿâëÿþòñÿ ñèíîíèìàìè.
3361
Return to contents.
3360
Return to contents.
Line 3375... Line 3374...
3375
    IF ( i+=4 == 0 )...
3374
    IF ( i+=4 == 0 )...
Line 3376... Line 3375...
3376
 
3375
 
3377
      Âî âñåõ ýòèõ ïðèìåðàõ ñíà÷àëà ïðîèçîéäåò âû÷èñëåíèå âûðàæåíèÿ â ëåâîé
3376
      Âî âñåõ ýòèõ ïðèìåðàõ ñíà÷àëà ïðîèçîéäåò âû÷èñëåíèå âûðàæåíèÿ â ëåâîé
3378
  ÷àñòè îïåðàöèè ñðàâíåíèÿ, à ïîòîì áóäåò ïðîèçâåäåíî ñðàâíåíèå ðåçóëüòàòà ñ
3377
  ÷àñòè îïåðàöèè ñðàâíåíèÿ, à ïîòîì áóäåò ïðîèçâåäåíî ñðàâíåíèå ðåçóëüòàòà ñ
3379
  ïðàâîé ÷àñòüþ âûðàæåíèÿ ñðàâíåíèÿ.
3378
  ïðàâîé ÷àñòüþ âûðàæåíèÿ ñðàâíåíèÿ.
Line 3380... Line 3379...
3380
Return to contents.
3379
Return to contents.
3381
 
3380
 
3382
 
3381
 
Line 3383... Line 3382...
3383
 
3382
 
3384
  9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
3383
  9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
3385
 
3384
 
3386
 
3385
 
Line 3398... Line 3397...
3398
 
3397
 
3399
  IF ( $test AX,5 )
3398
  IF ( $test AX,5 )
3400
  IF ( ! $test AX,5)
3399
  IF ( ! $test AX,5)
3401
  IF ( asm test AX,5)
3400
  IF ( asm test AX,5)
3402
  IF ( ! asm { test AX,5 } )
3401
  IF ( ! asm { test AX,5 } )
Line 3403... Line 3402...
3403
Return to contents.
3402
Return to contents.
3404
 
3403
 
3405
 
3404
 
Line 3406... Line 3405...
3406
 
3405
 
3407
  9.15 Îïåðàòîð ïåðåñòàíîâêè.
3406
  9.15 Îïåðàòîð ïåðåñòàíîâêè.
3408
 
3407
 
3409
 
3408
 
Line 3426... Line 3425...
3426
  äâóìÿ 16-ðàçðÿäíûìè ïåðåìåííûìè â ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå
3425
  äâóìÿ 16-ðàçðÿäíûìè ïåðåìåííûìè â ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå
3427
  ðåãèñòðà AX. Åñëè ïåðåñòàíîâêà - ìåæäó äâóìÿ 32-ðàçðÿäíûìè ïåðåìåííûìè â
3426
  ðåãèñòðà AX. Åñëè ïåðåñòàíîâêà - ìåæäó äâóìÿ 32-ðàçðÿäíûìè ïåðåìåííûìè â
3428
  ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå EAX.  ëþáîì äðóãîì ñëó÷àå, íàïðèìåð,
3427
  ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå EAX.  ëþáîì äðóãîì ñëó÷àå, íàïðèìåð,
3429
  ìåæäó ïåðåìåííîé â ïàìÿòè è ðåãèñòðîì, çíà÷åíèÿ âñåõ ðåãèñòðîâ áóäóò
3428
  ìåæäó ïåðåìåííîé â ïàìÿòè è ðåãèñòðîì, çíà÷åíèÿ âñåõ ðåãèñòðîâ áóäóò
3430
  ñîõðàíåíû.
3429
  ñîõðàíåíû.
3431
Return to contents.
3430
Return to contents.
Line 3432... Line 3431...
3432
 
3431
 
3433
 
3432
 
3434
 
3433
 
Line 3435... Line 3434...
3435
  9.16 Îïåðàòîð îòðèöàíèÿ.
3434
  9.16 Îïåðàòîð îòðèöàíèÿ.
3436
 
3435
 
3437
 
3436
 
3438
      C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ ñìåíû çíàêà ïåðåìåííîé - îïåðàòîð
3437
      C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ ñìåíû çíàêà ïåðåìåííîé - îïåðàòîð
Line 3443... Line 3442...
3443
  Âîò íåêîòîðûå ïðèìåðû:
3442
  Âîò íåêîòîðûå ïðèìåðû:
Line 3444... Line 3443...
3444
 
3443
 
3445
           -AX; // ðåçóëüòàò òîò æå, ÷òî è ïðè 'AX = -AX;' ,íî áûñòðåå.
3444
           -AX; // ðåçóëüòàò òîò æå, ÷òî è ïðè 'AX = -AX;' ,íî áûñòðåå.
3446
           -tree; // òî æå ñàìîå, ÷òî 'tree = -tree;' ,íî áûñòðåå.
3445
           -tree; // òî æå ñàìîå, ÷òî 'tree = -tree;' ,íî áûñòðåå.
3447
           -BH; // ìåíÿåò çíàê BH.
3446
           -BH; // ìåíÿåò çíàê BH.
Line 3448... Line 3447...
3448
Return to contents.
3447
Return to contents.
3449
 
3448
 
3450
 
3449
 
Line 3451... Line 3450...
3451
 
3450
 
3452
  9.17 Îïåðàòîð èíâåðñèè.
3451
  9.17 Îïåðàòîð èíâåðñèè.
3453
 
3452
 
3454
 
3453
 
Line 3460... Line 3459...
3460
  íåêîòîðûå ïðèìåðû:
3459
  íåêîòîðûå ïðèìåðû:
Line 3461... Line 3460...
3461
 
3460
 
3462
          !AX; // òî æå ñàìîå, ÷òî ' AX ^ = 0xFFFF; ' íî áûñòðåå.
3461
          !AX; // òî æå ñàìîå, ÷òî ' AX ^ = 0xFFFF; ' íî áûñòðåå.
3463
          !node; // çàìåíÿåò çíà÷åíèå 'node' åãî ëîãè÷åñêîé èíâåðñèåé.
3462
          !node; // çàìåíÿåò çíà÷åíèå 'node' åãî ëîãè÷åñêîé èíâåðñèåé.
3464
          !CL; // òî æå ñàìîå, ÷òî ' CL ^ = 0xFF ' íî áûñòðåå.
3463
          !CL; // òî æå ñàìîå, ÷òî ' CL ^ = 0xFF ' íî áûñòðåå.
Line 3465... Line 3464...
3465
Return to contents.
3464
Return to contents.
3466
 
3465
 
3467
 
3466
 
Line 3468... Line 3467...
3468
 
3467
 
Line 3469... Line 3468...
3469
  9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
3468
  9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
3470
 
3469
 
Line 3494... Line 3493...
3494
  ñëåäóþùåìó êóñêó êîäà:
3493
  ñëåäóþùåìó êóñêó êîäà:
Line 3495... Line 3494...
3495
 
3494
 
3496
          do {
3495
          do {
3497
              // çäåñü âû îïÿòü ÷åãî-òî äåëàåòå
3496
              // çäåñü âû îïÿòü ÷åãî-òî äåëàåòå
3498
              } while( NOTOVERFLOW );
3497
              } while( NOTOVERFLOW );
Line 3499... Line 3498...
3499
Return to contents.
3498
Return to contents.
3500
 
3499
 
3501
 
3500
 
Line 3502... Line 3501...
3502
 
3501
 
3503
  9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
3502
  9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
3504
 
3503
 
3505
 
3504
 
Line 3515... Line 3514...
3515
 
3514
 
Line 3516... Line 3515...
3516
  Ïðèìåðû ïðèìåíåíèÿ:
3515
  Ïðèìåðû ïðèìåíåíèÿ:
3517
 
3516
 
3518
  DW #main-$	//çàïèñàòü ðàññòîÿíèå îò ïðîöåäóðû main äî òåêóùåãî ìåñòà
3517
  DW #main-$    //çàïèñàòü ðàññòîÿíèå îò ïðîöåäóðû main äî òåêóùåãî ìåñòà
Line 3519... Line 3518...
3519
  GOTO $+2;	//ïåðåéòè ïî àäðåñó íà 2 áîëüøå, ÷åì òåêóùèé àäðåñ
3518
  GOTO $+2;     //ïåðåéòè ïî àäðåñó íà 2 áîëüøå, ÷åì òåêóùèé àäðåñ
3520
Return to contents.
3519
Return to contents.
3521
 
3520
 
Line 3522... Line 3521...
3522
 
3521
 
3523
 
3522
 
3524
  9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
3523
  9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
3525
 
3524
 
Line 3556... Line 3555...
3556
            //ãëîáàëüíîé ïåðåìåííîé
3555
            //ãëîáàëüíîé ïåðåìåííîé
3557
  {
3556
  {
3558
    (E)AX=var;	//èìååì äîñòóï òîëüêî ê ëîêàëüíîé ïåðåìåííîé
3557
    (E)AX=var;  //èìååì äîñòóï òîëüêî ê ëîêàëüíîé ïåðåìåííîé
3559
    (E)AX=::var;  //à òàê ìîæíî ïîëó÷èòü äîñòóï ê ãëîáàëüíîé ïåðåìåííîé
3558
    (E)AX=::var;  //à òàê ìîæíî ïîëó÷èòü äîñòóï ê ãëîáàëüíîé ïåðåìåííîé
3560
  }
3559
  }
3561
Return to contents.
3560
Return to contents.
Line 3562... Line 3561...
3562
 
3561
 
3563
 
3562
 
3564
 
3563
 
Line 3565... Line 3564...
3565
  9.21 Îïåðàòîð sizeof.
3564
  9.21 Îïåðàòîð sizeof.
3566
 
3565
 
Line 3567... Line 3566...
3567
 
3566
 
Line 3606... Line 3605...
3606
  Ïðèìåð ïðèìåíåíèÿ îïåðàòîðà sizeof ê ôàéëàì:
3605
  Ïðèìåð ïðèìåíåíèÿ îïåðàòîðà sizeof ê ôàéëàì:
Line 3607... Line 3606...
3607
 
3606
 
Line 3608... Line 3607...
3608
   sizeof ( file "filename.dat" )
3607
   sizeof ( file "filename.dat" )
3609
 
3608
 
Line 3610... Line 3609...
3610
  Ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ðàçìåð ôàéëà "filename.dat".
3609
  Ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ðàçìåð ôàéëà "filename.dat".
3611
Return to contents.
3610
Return to contents.
3612
 
3611
 
Line 3613... Line 3612...
3613
 
3612
 
3614
 
3613
 
3615
  9.22 Ìåòêè ïåðåõîäà.
3614
  9.22 Ìåòêè ïåðåõîäà.
Line 3640... Line 3639...
3640
  ïðîãðàììà, íàïèñàííàÿ íà C--), òî ìåòêè âíå ïðîöåäóð ñòàíîâÿòñÿ ïðîñòûì è
3639
  ïðîãðàììà, íàïèñàííàÿ íà C--), òî ìåòêè âíå ïðîöåäóð ñòàíîâÿòñÿ ïðîñòûì è
3641
  ýôôåêòèâíûì ìåòîäîì äëÿ ïîëó÷åíèÿ ðàññòîÿíèé ìåæäó ÷àñòÿìè ïðîãðàììû. Â
3640
  ýôôåêòèâíûì ìåòîäîì äëÿ ïîëó÷åíèÿ ðàññòîÿíèé ìåæäó ÷àñòÿìè ïðîãðàììû. Â
3642
  êà÷åñòâå èìåí äëÿ ìåòîê âíå ïðîöåäóð ìîãóò áûòü èñïîëüçîâàíû óíèêàëüíûå
3641
  êà÷åñòâå èìåí äëÿ ìåòîê âíå ïðîöåäóð ìîãóò áûòü èñïîëüçîâàíû óíèêàëüíûå
3643
  èäåíòèôèêàòîðû, â êîòîðûõ ìîæíî èñïîëüçîâàòü áîëüøèå, ìàëåíüêèå è ñìåñü
3642
  èäåíòèôèêàòîðû, â êîòîðûõ ìîæíî èñïîëüçîâàòü áîëüøèå, ìàëåíüêèå è ñìåñü
3644
  áîëüøèõ è ìàëåíüêèõ áóêâ.
3643
  áîëüøèõ è ìàëåíüêèõ áóêâ.
3645
Return to contents.
3644
Return to contents.
Line 3646... Line 3645...
3646
 
3645
 
3647
 
3646
 
Line 3648... Line 3647...
3648
 
3647
 
3649
10. Àññåìáëåð.
3648
10. Àññåìáëåð.
Line 3650... Line 3649...
3650
 
3649
 
3651
  10.1 Ïîääåðæêà êîìàíä àññåìáëåðà.
3650
  10.1 Ïîääåðæêà êîìàíä àññåìáëåðà.
Line 3652... Line 3651...
3652
 
3651
 
3653
 
3652
 
3654
      Âñòðîåííûé â C-- àññåìáëåð ïîääåðæèâàåò âñå èíñòðóêöèè 8088/8086,
3653
      Âñòðîåííûé â C-- àññåìáëåð ïîääåðæèâàåò âñå èíñòðóêöèè 8088/8086,
3655
  80286, 80386, 80486, Pentium, Pentium II è Pentium III ïðîöåññîðîâ.
3654
  80286, 80386, 80486, Pentium, Pentium II è Pentium III ïðîöåññîðîâ.
3656
 
3655
 
Line 3657... Line 3656...
3657
      Âñå èíñòðóêöèè âñòðîåííîãî àññåìáëåðà äîëæíû íà÷èíàòüñÿ ñ ñèìâîëà
3656
      Âñå èíñòðóêöèè âñòðîåííîãî àññåìáëåðà äîëæíû íà÷èíàòüñÿ ñ ñèìâîëà
3658
  äîëëàðà $. Ïîääåðæèâàåòñÿ òàêæå êëþ÷åâîå ñëîâî asm, êîòîðîå ÿâëÿÿñü
3657
  äîëëàðà $. Ïîääåðæèâàåòñÿ òàêæå êëþ÷åâîå ñëîâî asm, êîòîðîå ÿâëÿÿñü
3659
  ñèíîíèìîì ê ñèìâîëó äîëëàðà, åùå è ïîääåðæèâàåò îáúåäèíåíèå àññåìáëåðíûõ
3658
  ñèíîíèìîì ê ñèìâîëó äîëëàðà, åùå è ïîääåðæèâàåò îáúåäèíåíèå àññåìáëåðíûõ
Line 3660... Line 3659...
3660
  èíñòðóêöèé â áëîêè.
3659
  èíñòðóêöèé â áëîêè.
3661
Return to contents.
3660
Return to contents.
Line 3662... Line 3661...
3662
 
3661
 
Line 3680... Line 3679...
3680
  		.
3679
                .
3681
  		.
3680
                .
3682
  	}
3681
        }
Line 3683... Line 3682...
3683
 
3682
 
3684
    Ìåòêè âíóòðè áëîêà àññåìáëåðíûõ êîìàíä äîïóñòèìû.
3683
    Ìåòêè âíóòðè áëîêà àññåìáëåðíûõ êîìàíä äîïóñòèìû.
Line 3685... Line 3684...
3685
Return to contents.
3684
Return to contents.
3686
 
3685
 
3687
 
3686
 
Line 3688... Line 3687...
3688
 
3687
 
3689
  10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
3688
  10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
3690
 
3689
 
Line 3698... Line 3697...
3698
  NUMREP - ÷èñëî ïîâòîðîâ èíñòðóêöèè DW.
3697
  NUMREP - ÷èñëî ïîâòîðîâ èíñòðóêöèè DW.
3699
  VALTOREP - âåëè÷èíà, êîòîðàÿ áóäåò ïîâòîðåíà NUMREP ðàç.
3698
  VALTOREP - âåëè÷èíà, êîòîðàÿ áóäåò ïîâòîðåíà NUMREP ðàç.
Line 3700... Line 3699...
3700
 
3699
 
3701
       îòëè÷èå îò àíàëîãà ýòîãî ïðåôèêñà èç àññåìáëåðà ïîâòîðÿåìóþ âåëè÷èíó
3700
       îòëè÷èå îò àíàëîãà ýòîãî ïðåôèêñà èç àññåìáëåðà ïîâòîðÿåìóþ âåëè÷èíó
3702
  çàêëþ÷àòü â ñêîáêè íåëüçÿ.
3701
  çàêëþ÷àòü â ñêîáêè íåëüçÿ.
Line 3703... Line 3702...
3703
Return to contents.
3702
Return to contents.
3704
 
3703
 
3705
 
3704
 
Line 3706... Line 3705...
3706
 
3705
 
Line 3707... Line 3706...
3707
  10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.
3706
  10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.
3708
 
3707
 
Line 3800... Line 3799...
3800
    movaps var8_128,xmm0 //â ìàññèâ èç 16 áàéò áóäåò çàïèñàíî ñîäåðæèìîå XMM0
3799
    movaps var8_128,xmm0 //â ìàññèâ èç 16 áàéò áóäåò çàïèñàíî ñîäåðæèìîå XMM0
3801
    movaps xmm1,var16_128	//â XMM1 áóäåò çàïèñàíî ñîäåðæèìîå 8 ñëîâ
3800
    movaps xmm1,var16_128       //â XMM1 áóäåò çàïèñàíî ñîäåðæèìîå 8 ñëîâ
3802
    movaps var32_128,xmm1 //â ìàññèâ èç 4 äâîéíûõ ñëîâ áóäåò çàïèñàíî XMM1
3801
    movaps var32_128,xmm1 //â ìàññèâ èç 4 äâîéíûõ ñëîâ áóäåò çàïèñàíî XMM1
3803
  }
3802
  }
3804
  }
3803
  }
3805
Return to contents.
3804
Return to contents.
Line 3806... Line 3805...
3806
 
3805
 
3807
 
3806
 
Line 3808... Line 3807...
3808
 
3807
 
3809
11. Ïðîöåäóðû.
3808
11. Ïðîöåäóðû.
Line 3810... Line 3809...
3810
 
3809
 
3811
  11.1 Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
3810
  11.1 Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
Line 3812... Line 3811...
3812
 
3811
 
Line 3851... Line 3850...
3851
  èç ïî óìîë÷àíèþ íà ëþáîé äðóãîé, òî ýòó ïðîöåäóðó íàäî îáÿçàòåëüíî îáúÿâèòü
3850
  èç ïî óìîë÷àíèþ íà ëþáîé äðóãîé, òî ýòó ïðîöåäóðó íàäî îáÿçàòåëüíî îáúÿâèòü
3852
  ñ óêàçàíèåì òèïà æåëàåìîãî âûçîâà.
3851
  ñ óêàçàíèåì òèïà æåëàåìîãî âûçîâà.
Line 3853... Line 3852...
3853
 
3852
 
3854
      Îáúÿâëåíèå ïðîöåäóð ââåäåíî äëÿ òîãî, ÷òîáû ñîîáùàòü êîìïèëÿòîðó î
3853
      Îáúÿâëåíèå ïðîöåäóð ââåäåíî äëÿ òîãî, ÷òîáû ñîîáùàòü êîìïèëÿòîðó î
3855
  òèïå âîçâðàòà èç ïðîöåäóð, ñïîñîáå ïåðåäà÷è ïàðàìåòðîâ ïðîöåäóðå è èõ ÷èñëå.
3854
  òèïå âîçâðàòà èç ïðîöåäóð, ñïîñîáå ïåðåäà÷è ïàðàìåòðîâ ïðîöåäóðå è èõ ÷èñëå.
Line 3856... Line 3855...
3856
Return to contents.
3855
Return to contents.
3857
 
3856
 
3858
 
3857
 
Line 3859... Line 3858...
3859
 
3858
 
3860
  11.2 Ñòåêîâûå ïðîöåäóðû.
3859
  11.2 Ñòåêîâûå ïðîöåäóðû.
3861
 
3860
 
3862
 
3861
 
Line 3947... Line 3946...
3947
 
3946
 
3948
      Ïðè îáúÿâëåíèè ïðîöåäóð â C-- ïðîïèñûâàòü ïàðàìåòðû ïðîöåäóðû
3947
      Ïðè îáúÿâëåíèè ïðîöåäóð â C-- ïðîïèñûâàòü ïàðàìåòðû ïðîöåäóðû
3949
  íåîáÿçàòåëüíî (òîãäà êîìïèëÿòîð íå áóäåò êîíòðîëèðîâàòü ÷èñëî è òèï
3948
  íåîáÿçàòåëüíî (òîãäà êîìïèëÿòîð íå áóäåò êîíòðîëèðîâàòü ÷èñëî è òèï
3950
  ïåðåäàâàåìûõ ïàðàìåòðîâ), íî åñëè Âû èõ âñòàâèòå, òî âêëþ÷èòñÿ ìåõàíèçì
3949
  ïåðåäàâàåìûõ ïàðàìåòðîâ), íî åñëè Âû èõ âñòàâèòå, òî âêëþ÷èòñÿ ìåõàíèçì
3951
  êîíòðîëÿ çà ÷èñëîì è òèïîì ïàðàìåòðîâ.
3950
  êîíòðîëÿ çà ÷èñëîì è òèïîì ïàðàìåòðîâ.
Line 3952... Line 3951...
3952
Return to contents.
3951
Return to contents.
3953
 
3952
 
3954
 
3953
 
Line 3955... Line 3954...
3955
 
3954
 
3956
  11.3 Ðåãèñòðîâûå ïðîöåäóðû.
3955
  11.3 Ðåãèñòðîâûå ïðîöåäóðû.
3957
 
3956
 
Line 3998... Line 3997...
3998
  ïðîöåäóðàõ.
3997
  ïðîöåäóðàõ.
Line 3999... Line 3998...
3999
 
3998
 
4000
      Äëÿ òîãî, ÷òîáû èñïîëüçîâàòü ðåãèñòðîâóþ ïðîöåäóðó êàê ìàêðîêîìàíäó,
3999
      Äëÿ òîãî, ÷òîáû èñïîëüçîâàòü ðåãèñòðîâóþ ïðîöåäóðó êàê ìàêðîêîìàíäó,
4001
  îíà äîëæíà áûòü îáúÿâëåíà êàê äèíàìè÷åñêàÿ ïðîöåäóðà. Äèíàìè÷åñêèå
4000
  îíà äîëæíà áûòü îáúÿâëåíà êàê äèíàìè÷åñêàÿ ïðîöåäóðà. Äèíàìè÷åñêèå
4002
  ïðîöåäóðû îïèñàíû â ñëåäóþùåì ïîäðàçäåëå.
4001
  ïðîöåäóðû îïèñàíû â ñëåäóþùåì ïîäðàçäåëå.
Line 4003... Line 4002...
4003
Return to contents.
4002
Return to contents.
4004
 
4003
 
4005
 
4004
 
Line 4006... Line 4005...
4006
 
4005
 
4007
  11.4 Äèíàìè÷åñêèå ïðîöåäóðû.
4006
  11.4 Äèíàìè÷åñêèå ïðîöåäóðû.
4008
 
4007
 
Line 4027... Line 4026...
4027
          : int ABS () /* AX = ÷èñëî, àáñîëþòíîå çíà÷åíèå êîòîðîãî èùåòñÿ*/
4026
          : int ABS () /* AX = ÷èñëî, àáñîëþòíîå çíà÷åíèå êîòîðîãî èùåòñÿ*/
4028
          {
4027
          {
4029
          IF (int AX < 0)
4028
          IF (int AX < 0)
4030
               -AX;
4029
               -AX;
4031
          }
4030
          }
4032
Return to contents.
4031
Return to contents.
Line 4033... Line 4032...
4033
 
4032
 
4034
 
4033
 
4035
 
4034
 
Line 4036... Line 4035...
4036
    11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
4035
    11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
4037
 
4036
 
4038
 
4037
 
4039
        Äèíàìè÷åñêèå ïðîöåäóðû, åñëè îíè íå èñïîëüçóþòñÿ êàê ìàêðîñû è åñëè
4038
        Äèíàìè÷åñêèå ïðîöåäóðû, åñëè îíè íå èñïîëüçóþòñÿ êàê ìàêðîñû è åñëè
Line 4068... Line 4067...
4068
    îáû÷íî, â êîíöå ïðîãðàììû, åñëè êîíå÷íî, íå áóäåò ïîâòîðíî ïðèìåíåíà
4067
    îáû÷íî, â êîíöå ïðîãðàììû, åñëè êîíå÷íî, íå áóäåò ïîâòîðíî ïðèìåíåíà
4069
    äèðåêòèâà #setdinproc.
4068
    äèðåêòèâà #setdinproc.
Line 4070... Line 4069...
4070
 
4069
 
4071
	Ýòî ìîæåò áûòü ïðèìåíåíî è áûòü ïîëåçíûì ïðè ñîçäàíèè ðåçèäåíòíûõ
4070
        Ýòî ìîæåò áûòü ïðèìåíåíî è áûòü ïîëåçíûì ïðè ñîçäàíèè ðåçèäåíòíûõ
4072
    ïðîãðàìì (TSR) è äðàéâåðîâ óñòðîéñòâ.
4071
    ïðîãðàìì (TSR) è äðàéâåðîâ óñòðîéñòâ.
Line 4073... Line 4072...
4073
Return to contents.
4072
Return to contents.
4074
 
4073
 
4075
 
4074
 
Line 4076... Line 4075...
4076
 
4075
 
4077
  11.5 inline-ïðîöåäóðû.
4076
  11.5 inline-ïðîöåäóðû.
4078
 
4077
 
4079
 
4078
 
Line 4104... Line 4103...
4104
 
4103
 
4105
  inline int fastcall abs(AX)
4104
  inline int fastcall abs(AX)
4106
  {
4105
  {
4107
      IF ( int AX < 0 ) -AX ;
4106
      IF ( int AX < 0 ) -AX ;
4108
  }
4107
  }
Line 4109... Line 4108...
4109
Return to contents.
4108
Return to contents.
4110
 
4109
 
4111
 
4110
 
Line 4112... Line 4111...
4112
 
4111
 
4113
    11.5.1 Äðóãîå ïðèìåíåíèå inline.
4112
    11.5.1 Äðóãîå ïðèìåíåíèå inline.
4114
 
4113
 
4115
 
4114
 
Line 4141... Line 4140...
4141
    }
4140
    }
Line 4142... Line 4141...
4142
 
4141
 
4143
	Âñòðåòèâ òàêîå îïðåäåëåíèå ïðîöåäóðû, êîìïèëÿòîð âûäàñò ïðåäóïðåæäåíèå
4142
        Âñòðåòèâ òàêîå îïðåäåëåíèå ïðîöåäóðû, êîìïèëÿòîð âûäàñò ïðåäóïðåæäåíèå
4144
    î òîì, ÷òî â òàêèõ ïðîöåäóðàõ èñïîëüçîâàòü ëîêàëüíûå è ïàðàìåòðè÷åñêèå
4143
    î òîì, ÷òî â òàêèõ ïðîöåäóðàõ èñïîëüçîâàòü ëîêàëüíûå è ïàðàìåòðè÷åñêèå
4145
    ïåðåìåííûå íåëüçÿ.
4144
    ïåðåìåííûå íåëüçÿ.
Line 4146... Line 4145...
4146
Return to contents.
4145
Return to contents.
4147
 
4146
 
4148
 
4147
 
Line 4149... Line 4148...
4149
 
4148
 
Line 4150... Line 4149...
4150
  11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
4149
  11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
4151
 
4150
 
Line 4181... Line 4180...
4181
       $ POP DS
4180
       $ POP DS
4182
       }
4181
       }
Line 4183... Line 4182...
4183
 
4182
 
4184
      Ïðè çàâåðøåíèè ïðîöåäóðû ïðåðûâàíèÿ áóäåò àâòîìàòè÷åñêè ñãåíåðèðîâàíà
4183
      Ïðè çàâåðøåíèè ïðîöåäóðû ïðåðûâàíèÿ áóäåò àâòîìàòè÷åñêè ñãåíåðèðîâàíà
4185
  èíñòðóêöèÿ âûõîäà èç îáðàáîò÷èêà ïðåðûâàíèÿ - IRET.
4184
  èíñòðóêöèÿ âûõîäà èç îáðàáîò÷èêà ïðåðûâàíèÿ - IRET.
Line 4186... Line 4185...
4186
Return to contents.
4185
Return to contents.
4187
 
4186
 
4188
 
4187
 
Line 4189... Line 4188...
4189
 
4188
 
4190
  11.7 Çàìåíà return íà goto.
4189
  11.7 Çàìåíà return íà goto.
4191
 
4190
 
4192
 
4191
 
Line 4210... Line 4209...
4210
  åãî ïðèìåíåíèÿ äî êîíöà ïðîöåäóðû íàõîäèòñÿ íå áîëåå 128 áàéò. Åñëè Âû
4209
  åãî ïðèìåíåíèÿ äî êîíöà ïðîöåäóðû íàõîäèòñÿ íå áîëåå 128 áàéò. Åñëè Âû
4211
  áóäåòå èñïîëüçîâàòü RETURN íà áîëüøåì ðàññòîÿíèè äî êîíöà ïðîöåäóðû, òî
4210
  áóäåòå èñïîëüçîâàòü RETURN íà áîëüøåì ðàññòîÿíèè äî êîíöà ïðîöåäóðû, òî
4212
  êîìïèëÿòîð âûäàñò ñîîáùåíèå îá îøèáêå. Ïðè èñïîëüçîâàíèè return íà
4211
  êîìïèëÿòîð âûäàñò ñîîáùåíèå îá îøèáêå. Ïðè èñïîëüçîâàíèè return íà
4213
  ðàññòîÿíèè ìåíüøå 128 áàéò äî êîíöà êîäà, êîìïèëÿòîð âûäàñò âàì
4212
  ðàññòîÿíèè ìåíüøå 128 áàéò äî êîíöà êîäà, êîìïèëÿòîð âûäàñò âàì
4214
  ïðåäóïðåæäåíèå î âîçìîæíîì èñïîëüçîâàíèè RETURN.
4213
  ïðåäóïðåæäåíèå î âîçìîæíîì èñïîëüçîâàíèè RETURN.
4215
Return to contents.
4214
Return to contents.
Line 4216... Line 4215...
4216
 
4215
 
4217
 
4216
 
4218
 
4217
 
Line 4219... Line 4218...
4219
  11.8 Âîçâðàùàåìûå çíà÷åíèÿ.
4218
  11.8 Âîçâðàùàåìûå çíà÷åíèÿ.
4220
 
4219
 
Line 4221... Line 4220...
4221
 
4220
 
Line 4285... Line 4284...
4285
 
4284
 
4286
  IF ( FOPEN() == 5 )...	// ïðîèçâîäèòñÿ ñðàâíåíèå
4285
  IF ( FOPEN() == 5 )...        // ïðîèçâîäèòñÿ ñðàâíåíèå
4287
  IF ( FOPEN() + 2 )...   // ðåçóëüòàò ïðîöåäóðû ïîäâåðãàåòñÿ äàëüíåéøåìó
4286
  IF ( FOPEN() + 2 )...   // ðåçóëüòàò ïðîöåäóðû ïîäâåðãàåòñÿ äàëüíåéøåìó
4288
                          // âû÷èñëåíèþ, â ðåçóëüòàòå êîòîðîãî ôëàãè áóäóò
4287
                          // âû÷èñëåíèþ, â ðåçóëüòàòå êîòîðîãî ôëàãè áóäóò
4289
  			// èçìåíåíû.
4288
                        // èçìåíåíû.
Line 4290... Line 4289...
4290
Return to contents.
4289
Return to contents.
4291
 
4290
 
4292
 
4291
 
Line 4293... Line 4292...
4293
 
4292
 
4294
  11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
4293
  11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
4295
 
4294
 
4296
 
4295
 
Line 4374... Line 4373...
4374
 
4373
 
4375
      Åñëè Âû íå îáúÿâèëè ðåãèñòðû íè ïðè îáúÿâëåíèè ðåãèñòðîâîé ïðîöåäóðû,
4374
      Åñëè Âû íå îáúÿâèëè ðåãèñòðû íè ïðè îáúÿâëåíèè ðåãèñòðîâîé ïðîöåäóðû,
4376
  íè â çàãîëîâêå ñàìîé ïðîöåäóðû, òî êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî ïàðàìåòðû
4375
  íè â çàãîëîâêå ñàìîé ïðîöåäóðû, òî êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî ïàðàìåòðû
4377
  â ýòó ïðîöåäóðó ïåðåäàþòñÿ ñòàðûì ñïîñîáîì. Òàêèì îáðàçîì, äîñòèãàåòñÿ
4376
  â ýòó ïðîöåäóðó ïåðåäàþòñÿ ñòàðûì ñïîñîáîì. Òàêèì îáðàçîì, äîñòèãàåòñÿ
4378
  ïîëíàÿ ñîâìåñòèìîñòü ñ ïðåäûäóùèìè âåðñèÿìè êîìïèëÿòîðà.
4377
  ïîëíàÿ ñîâìåñòèìîñòü ñ ïðåäûäóùèìè âåðñèÿìè êîìïèëÿòîðà.
Line 4379... Line 4378...
4379
Return to contents.
4378
Return to contents.
4380
 
4379
 
4381
 
4380
 
Line 4382... Line 4381...
4382
 
4381
 
4383
  11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
4382
  11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
4384
 
4383
 
4385
 
4384
 
Line 4421... Line 4420...
4421
      Äëÿ êîíòðîëÿ çà ïðîöåäóðàìè ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ áûë ââåäåí
4420
      Äëÿ êîíòðîëÿ çà ïðîöåäóðàìè ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ áûë ââåäåí
4422
  íîâûé äëÿ C-- ýëåìåíò ñèíòàêñèñà - ìíîãîòî÷èå èëè åãî åùå íàçûâàþò ýëëèïñ.
4421
  íîâûé äëÿ C-- ýëåìåíò ñèíòàêñèñà - ìíîãîòî÷èå èëè åãî åùå íàçûâàþò ýëëèïñ.
4423
  Âîò êàê áóäåò âûãëÿäåòü îáúÿâëåíèå ïðîöåäóðû printf:
4422
  Âîò êàê áóäåò âûãëÿäåòü îáúÿâëåíèå ïðîöåäóðû printf:
Line 4424... Line 4423...
4424
 
4423
 
4425
  void cdecl printf ( word, ... );
4424
  void cdecl printf ( word, ... );
Line 4426... Line 4425...
4426
Return to contents.
4425
Return to contents.
4427
 
4426
 
4428
 
4427
 
Line 4429... Line 4428...
4429
 
4428
 
4430
  11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.
4429
  11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.
4431
 
4430
 
Line 4432... Line 4431...
4432
 
4431
 
4433
      Òåïåðü ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4432
      Òåïåðü ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4434
  Åñëè ïåðåä âûçîâîì äèíàìè÷åñêîé ïðîöåäóðû ïîñòàâèòü ñèìâîë @, òî êîä ýòîé
4433
  Åñëè ïåðåä âûçîâîì äèíàìè÷åñêîé ïðîöåäóðû ïîñòàâèòü ñèìâîë @, òî êîä ýòîé
4435
  ïðîöåäóðû áóäåò âñòàâëåí, à íå âûçâàí èíñòðóêöèåé CALL.
4434
  ïðîöåäóðû áóäåò âñòàâëåí, à íå âûçâàí èíñòðóêöèåé CALL.
4436
 
4435
 
4437
      Ïðè èñïîëüçîâàíèè ñòåêîâûõ äèíàìè÷åñêèõ ïðîöåäóð â êà÷åñòâå ìàêðîñîâ
4436
      Ïðè èñïîëüçîâàíèè ñòåêîâûõ äèíàìè÷åñêèõ ïðîöåäóð â êà÷åñòâå ìàêðîñîâ
Line 4438... Line 4437...
4438
  î÷èñòêà ñòåêà îò ïåðåäàííûõ ïàðàìåòðîâ ïðîèçâîäèòñÿ àññåìáëåðíîé
4437
  î÷èñòêà ñòåêà îò ïåðåäàííûõ ïàðàìåòðîâ ïðîèçâîäèòñÿ àññåìáëåðíîé
4439
  èíñòðóêöèåé ADD SP,SIZE_PARAMETRS ñðàçó ïîñëå îêîí÷àíèÿ êîäà âñòàâëåííîãî
4438
  èíñòðóêöèåé ADD SP,SIZE_PARAMETRS ñðàçó ïîñëå îêîí÷àíèÿ êîäà âñòàâëåííîãî
4440
  ìàêðîñà. Ïîýòîìó, åñëè ýòà ïðîöåäóðà èñïîëüçîâàëà ôëàãè â êà÷åñòâå
4439
  ìàêðîñà. Ïîýòîìó, åñëè ýòà ïðîöåäóðà èñïîëüçîâàëà ôëàãè â êà÷åñòâå
Line 4441... Line 4440...
4441
  âîçâðàòà, òî îíè áóäóò ðàçðóøåíû.
4440
  âîçâðàòà, òî îíè áóäóò ðàçðóøåíû.
4442
Return to contents.
4441
Return to contents.
4443
 
4442
 
4444
 
4443
 
Line 4477... Line 4476...
4477
  ðàçðóøåíî, è ïîýòîìó ëó÷øå âñåãî ðåãèñòðîâûå ïàðàìåòðû èíèöèàëèçèðîâàòü
4476
  ðàçðóøåíî, è ïîýòîìó ëó÷øå âñåãî ðåãèñòðîâûå ïàðàìåòðû èíèöèàëèçèðîâàòü
4478
  ëèøü ïîñëå òîãî, êàê áûëè çàñóíóòû â ñòåê âñå ñòåêîâûå ïàðàìåòðû. Äëÿ
4477
  ëèøü ïîñëå òîãî, êàê áûëè çàñóíóòû â ñòåê âñå ñòåêîâûå ïàðàìåòðû. Äëÿ
4479
  ïðîöåäóð òèïà pascal ðåãèñòðîâûå ïàðàìåòðû ëó÷øå ðàñïîëàãàòü ïîñëå
4478
  ïðîöåäóð òèïà pascal ðåãèñòðîâûå ïàðàìåòðû ëó÷øå ðàñïîëàãàòü ïîñëå
4480
  ñòåêîâûõ ïàðàìåòðîâ. Äëÿ ïðîöåäóð òèïà cdecl è stdcall ñíà÷àëà ëó÷øå
4479
  ñòåêîâûõ ïàðàìåòðîâ. Äëÿ ïðîöåäóð òèïà cdecl è stdcall ñíà÷àëà ëó÷øå
4481
  ðàñïîëàãàòü ðåãèñòðîâûå ïàðàìåòðû.
4480
  ðàñïîëàãàòü ðåãèñòðîâûå ïàðàìåòðû.
4482
Return to contents.
4481
Return to contents.
Line 4483... Line 4482...
4483
 
4482
 
4484
 
4483
 
4485
 
4484
 
Line 4486... Line 4485...
4486
  11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
4485
  11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
4487
 
4486
 
4488
 
4487
 
4489
      Â C-- äîïóñòèìî äåëàòü âûçîâ ïðîöåäóðû, àäðåñ êîòîðîé íàõîäèòñÿ â
4488
      Â C-- äîïóñòèìî äåëàòü âûçîâ ïðîöåäóðû, àäðåñ êîòîðîé íàõîäèòñÿ â
Line 4510... Line 4509...
4510
  010C FF76FE                   push    word ptr [bp-2]
4509
  010C FF76FE                   push    word ptr [bp-2]
4511
  010F FFD3                     call    near bx
4510
  010F FFD3                     call    near bx
4512
  0111 85C0                     test    ax,ax
4511
  0111 85C0                     test    ax,ax
4513
  0113 7503                     jne     118h
4512
  0113 7503                     jne     118h
4514
  0115 B80200                   mov     ax,2
4513
  0115 B80200                   mov     ax,2
4515
Return to contents.
4514
Return to contents.
Line 4516... Line 4515...
4516
 
4515
 
4517
 
4516
 
4518
 
4517
 
Line 4519... Line 4518...
4519
  11.14 Âñòðîåííûå â êîìïèëÿòîð ïðîöåäóðû.
4518
  11.14 Âñòðîåííûå â êîìïèëÿòîð ïðîöåäóðû.
4520
 
4519
 
4521
 
4520
 
Line 4551... Line 4550...
4551
 
4550
 
4552
      Íî íè÷òî íå ìåøàåò Âàì óæå ñåé÷àñ íàïèñàòü ñâîè îäíîèìåííûå
4551
      Íî íè÷òî íå ìåøàåò Âàì óæå ñåé÷àñ íàïèñàòü ñâîè îäíîèìåííûå
4553
  áèáëèîòå÷íûå ïðîöåäóðû. Âñòðåòèâ îïðåäåëåíèå òàêîé ïðîöåäóðû, êîìïèëÿòîð íå
4552
  áèáëèîòå÷íûå ïðîöåäóðû. Âñòðåòèâ îïðåäåëåíèå òàêîé ïðîöåäóðû, êîìïèëÿòîð íå
4554
  áóäåò âûäàâàòü íèêàêèõ ñîîáùåíèå, îí ïðîñòî áóäåò ïðèìåíÿòü Âàø âàðèàíò
4553
  áóäåò âûäàâàòü íèêàêèõ ñîîáùåíèå, îí ïðîñòî áóäåò ïðèìåíÿòü Âàø âàðèàíò
4555
  ïðîöåäóðû.
4554
  ïðîöåäóðû.
Line 4556... Line 4555...
4556
Return to contents.
4555
Return to contents.
4557
 
4556
 
4558
 
4557
 
Line 4559... Line 4558...
4559
 
4558
 
4560
    11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
4559
    11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
4561
 
4560
 
4562
 
4561
 
Line 4582... Line 4581...
4582
    âûçîâ ïðîöåäóðû ExitProcess ïîä Windows è âûçîâ AH=0x4C; $int 0x21 ïîä
4581
    âûçîâ ïðîöåäóðû ExitProcess ïîä Windows è âûçîâ AH=0x4C; $int 0x21 ïîä
4583
    DOS.  Ïðîöåäóðå ABORT íå ïåðåäàþòñÿ íèêàêèå ïàðàìåòðû, è îíà çàâåðøàåò
4582
    DOS.  Ïðîöåäóðå ABORT íå ïåðåäàþòñÿ íèêàêèå ïàðàìåòðû, è îíà çàâåðøàåò
4584
    ðàáîòó ïðîãðàììû ñ êîäîì âîçâðàòà 0. Ïðîöåäóðå EXIT ïåðåäàåòñÿ â
4583
    ðàáîòó ïðîãðàììû ñ êîäîì âîçâðàòà 0. Ïðîöåäóðå EXIT ïåðåäàåòñÿ â
4585
    êà÷åñòâå ïàðàìåòðà êîä âîçâðàòà, ñ êîòîðûì îíà è çàâåðøàåò ðàáîòó
4584
    êà÷åñòâå ïàðàìåòðà êîä âîçâðàòà, ñ êîòîðûì îíà è çàâåðøàåò ðàáîòó
4586
    ïðîãðàììû.
4585
    ïðîãðàììû.
4587
Return to contents.
4586
Return to contents.
Line 4588... Line 4587...
4588
 
4587
 
4589
 
4588
 
4590
 
4589
 
4591
    11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
4590
    11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
Line 4592... Line 4591...
4592
                                                                    outportd
4591
                                                                    outportd
4593
 
4592
 
4594
 
4593
 
4595
        Ýòè ïðîöåäóðû âñåãäà âñòàâëÿþòñÿ â êîä êàê ìàêðîñû, ò.å. äëÿ ýòèõ
4594
        Ýòè ïðîöåäóðû âñåãäà âñòàâëÿþòñÿ â êîä êàê ìàêðîñû, ò.å. äëÿ ýòèõ
Line 4609... Line 4608...
4609
    void outport ( word val; word port );
4608
    void outport ( word val; word port );
4610
    void outportd ( dword val; word port );
4609
    void outportd ( dword val; word port );
Line 4611... Line 4610...
4611
 
4610
 
4612
        Èìåíà ïðîöåäóð inp è inportb, òàêæå êàê è èìåíà outp è outportb
4611
        Èìåíà ïðîöåäóð inp è inportb, òàêæå êàê è èìåíà outp è outportb
4613
    ÿâëÿþòñÿ ñèíîíèìàìè.
4612
    ÿâëÿþòñÿ ñèíîíèìàìè.
Line 4614... Line 4613...
4614
Return to contents.
4613
Return to contents.
4615
 
4614
 
4616
 
4615
 
Line 4617... Line 4616...
4617
 
4616
 
4618
    11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
4617
    11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
4619
 
4618
 
4620
 
4619
 
Line 4642... Line 4641...
4642
    float log ( float val );
4641
    float log ( float val );
4643
    float log10 ( float val );
4642
    float log10 ( float val );
4644
    float sin ( float val );
4643
    float sin ( float val );
4645
    float sqrt ( float val );
4644
    float sqrt ( float val );
4646
    float tan ( float val );
4645
    float tan ( float val );
4647
Return to contents.
4646
Return to contents.
Line 4648... Line 4647...
4648
 
4647
 
4649
 
4648
 
Line 4650... Line 4649...
4650
 
4649
 
4651
  11.15 Êëàññû.
4650
  11.15 Êëàññû.
Line 4652... Line 4651...
4652
 
4651
 
4653
    11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
4652
    11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
4654
 
4653
 
Line 4688... Line 4687...
4688
 
4687
 
4689
        Ïðîöåäóðà îáúÿâëåííàÿ â ñòðóêòóðå ìîæåò áûòü äèíàìè÷åñêîé. Äëÿ ýòîãî,
4688
        Ïðîöåäóðà îáúÿâëåííàÿ â ñòðóêòóðå ìîæåò áûòü äèíàìè÷åñêîé. Äëÿ ýòîãî,
4690
    ïðè åå îïðåäåëåíèè, â ñàìîì åå íà÷àëå, íàäî íàïèñàòü ñèìâîë äâîåòî÷èÿ :
4689
    ïðè åå îïðåäåëåíèè, â ñàìîì åå íà÷àëå, íàäî íàïèñàòü ñèìâîë äâîåòî÷èÿ :
4691
    (òàêæå êàê è äëÿ îáû÷íûõ äèíàìè÷åñêèõ ïðîöåäóð). Íî òàêàÿ äèíàìè÷åñêàÿ
4690
    (òàêæå êàê è äëÿ îáû÷íûõ äèíàìè÷åñêèõ ïðîöåäóð). Íî òàêàÿ äèíàìè÷åñêàÿ
4692
    ïðîöåäóðà íå ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4691
    ïðîöåäóðà íå ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
Line 4693... Line 4692...
4693
Return to contents.
4692
Return to contents.
4694
 
4693
 
4695
 
4694
 
Line 4696... Line 4695...
4696
 
4695
 
4697
    11.15.2 Íàñëåäîâàíèå.
4696
    11.15.2 Íàñëåäîâàíèå.
Line 4698... Line 4697...
4698
 
4697
 
Line 4751... Line 4750...
4751
      d.x0=0;
4750
      d.x0=0;
4752
    è
4751
    è
4753
      d.C::x0=0;
4752
      d.C::x0=0;
Line 4754... Line 4753...
4754
 
4753
 
4755
         ÿâëÿþòñÿ ðàâíîçíà÷íûìè.
4754
         ÿâëÿþòñÿ ðàâíîçíà÷íûìè.
Line 4756... Line 4755...
4756
Return to contents.
4755
Return to contents.
4757
 
4756
 
4758
 
4757
 
Line 4759... Line 4758...
4759
 
4758
 
4760
    11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
4759
    11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
4761
 
4760
 
4762
 
4761
 
Line 4840... Line 4839...
4840
 
4839
 
4841
	Òåïåðü èç ïðîèçâîäíîãî êëàññà Point3 Âàì äîñòóïíû äâå ðàçëè÷íûå
4840
        Òåïåðü èç ïðîèçâîäíîãî êëàññà Point3 Âàì äîñòóïíû äâå ðàçëè÷íûå
4842
    ïðîöåäóðû ñ îäíèì èìåíåì SetX. À èç áàçîâîãî êëàññà Point è èç äðóãîãî
4841
    ïðîöåäóðû ñ îäíèì èìåíåì SetX. À èç áàçîâîãî êëàññà Point è èç äðóãîãî
4843
    ïðîèçâîäíîãî êëàññà Point2 áóäåò ïî ïðåæíåìó äîñòóïåí òîëüêî áàçîâûé
4842
    ïðîèçâîäíîãî êëàññà Point2 áóäåò ïî ïðåæíåìó äîñòóïåí òîëüêî áàçîâûé
4844
    âàðèàíò ïðîöåäóðû SetX.
4843
    âàðèàíò ïðîöåäóðû SetX.
Line 4845... Line 4844...
4845
Return to contents.
4844
Return to contents.
4846
 
4845
 
Line 4847... Line 4846...
4847
 
4846
 
4848
 
4847
 
Line 4849... Line 4848...
4849
12. Òèïû âûõîäíûõ ôàéëîâ.
4848
12. Òèïû âûõîäíûõ ôàéëîâ.
Line 4850... Line 4849...
4850
 
4849
 
4851
  12.1 Âûõîäíûå ôàéëû òèïà COM.
4850
  12.1 Âûõîäíûå ôàéëû òèïà COM.
4852
 
4851
 
4853
 
4852
 
4854
      Ýòîò òèï âûõîäíîãî ôàéëà ïîëó÷àåòñÿ àâòîìàòè÷åñêè ïî óìîë÷àíèþ.
4853
      Ýòîò òèï âûõîäíîãî ôàéëà ïîëó÷àåòñÿ àâòîìàòè÷åñêè ïî óìîë÷àíèþ.
4855
 
4854
 
Line 4856... Line 4855...
4856
      Èçíà÷àëüíî C-- ìîã äåëàòü òîëüêî ôàéëû ôîðìàòà òèïà COM.  íàñòîÿùåå
4855
      Èçíà÷àëüíî C-- ìîã äåëàòü òîëüêî ôàéëû ôîðìàòà òèïà COM.  íàñòîÿùåå
4857
  âðåìÿ ïîÿâèëàñü âîçìîæíîñòü ïîëó÷àòü ôàéëà òèïà EXE ñ ìîäåëÿìè ïàìÿòè tiny
4856
  âðåìÿ ïîÿâèëàñü âîçìîæíîñòü ïîëó÷àòü ôàéëà òèïà EXE ñ ìîäåëÿìè ïàìÿòè tiny
4858
  è small äëÿ 16-áèòíîãî êîäà, à òàêæå 32-áèòíûå äëÿ DOS è Windows. Òàêæå
4857
  è small äëÿ 16-áèòíîãî êîäà, à òàêæå 32-áèòíûå äëÿ DOS è Windows. Òàêæå
Line 4859... Line 4858...
4859
  åñòü âîçìîæíîñòü ïîëó÷åíèÿ âûõîäíîãî ôàéëà â ôîðìàòå OBJ, ÷òî ïîçâîëÿåò
4858
  åñòü âîçìîæíîñòü ïîëó÷åíèÿ âûõîäíîãî ôàéëà â ôîðìàòå OBJ, ÷òî ïîçâîëÿåò
4860
  ñâÿçûâàòü ïðîãðàììû íà C-- ñ ïðîãðàììàìè íà äðóãèõ ÿçûêàõ.
4859
  ñâÿçûâàòü ïðîãðàììû íà C-- ñ ïðîãðàììàìè íà äðóãèõ ÿçûêàõ.
Line 4861... Line 4860...
4861
Return to contents.
4860
Return to contents.
4862
 
4861
 
4863
 
4862
 
Line 4864... Line 4863...
4864
 
4863
 
4865
  12.2 Âûõîäíûå ôàéëû òèïà EXE.
4864
  12.2 Âûõîäíûå ôàéëû òèïà EXE.
4866
 
4865
 
Line 4867... Line 4866...
4867
 
4866
 
4868
      Ýòîò ôîðìàò ôàéëà ìîæíî ïîëó÷èòü, åñëè êîìïèëèðîâàòü ñ êëþ÷îì êîìàíäíîé
4867
      Ýòîò ôîðìàò ôàéëà ìîæíî ïîëó÷èòü, åñëè êîìïèëèðîâàòü ñ êëþ÷îì êîìàíäíîé
4869
  ñòðîêè /exe èëè /e.
4868
  ñòðîêè /exe èëè /e.
4870
 
4869
 
Line 4885... Line 4884...
4885
  ïàìÿòè. Â exe-ôàéëå äëÿ ýòèõ öåëåé áóäåò ñêîððåêòèðîâàí çàãîëîâîê
4884
  ïàìÿòè. Â exe-ôàéëå äëÿ ýòèõ öåëåé áóäåò ñêîððåêòèðîâàí çàãîëîâîê
4886
  exe-ôàéëà.
4885
  exe-ôàéëà.
Line 4887... Line 4886...
4887
 
4886
 
4888
      ×òîáû ïîëó÷èòü exe-ôàéë ñ ìîäåëüþ ïàìÿòè tiny, íàäî çàïóñòèòü
4887
      ×òîáû ïîëó÷èòü exe-ôàéë ñ ìîäåëüþ ïàìÿòè tiny, íàäî çàïóñòèòü
4889
  êîìïèëÿòîð ñ êëþ÷îì â êîìàíäíîé ñòðîêå /TEXE.
4888
  êîìïèëÿòîð ñ êëþ÷îì â êîìàíäíîé ñòðîêå /TEXE.
Line 4890... Line 4889...
4890
Return to contents.
4889
Return to contents.
4891
 
4890
 
4892
 
4891
 
Line 4893... Line 4892...
4893
 
4892
 
4894
  12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.
4893
  12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.
Line 4895... Line 4894...
4895
 
4894
 
Line 4939... Line 4938...
4939
      Äëÿ ñîçäàíèÿ obj-ôàéëîâ äëÿ 32-áèòíîãî DOS â êîìàíäíîé ñòðîêå Âàì
4938
      Äëÿ ñîçäàíèÿ obj-ôàéëîâ äëÿ 32-áèòíîãî DOS â êîìàíäíîé ñòðîêå Âàì
4940
  íåîáõîäèìî óêàçàòü êëþ÷è /d32 è /obj. Èñïîëüçîâàòü ïîëó÷åííûé obj-ôàéë ìíå
4939
  íåîáõîäèìî óêàçàòü êëþ÷è /d32 è /obj. Èñïîëüçîâàòü ïîëó÷åííûé obj-ôàéë ìíå
4941
  óäàëîñü ëèøü ñ ïîìîùüþ wlink è ðàñøèðèòåëÿ zrdx.exe.
4940
  óäàëîñü ëèøü ñ ïîìîùüþ wlink è ðàñøèðèòåëÿ zrdx.exe.
Line 4942... Line 4941...
4942
 
4941
 
4943
      Ñîçäàíèå obj-ôàéëîâ ïîä windows íå ïðåäóñìîòðåíî.
4942
      Ñîçäàíèå obj-ôàéëîâ ïîä windows íå ïðåäóñìîòðåíî.
Line 4944... Line 4943...
4944
Return to contents.
4943
Return to contents.
4945
 
4944
 
Line 4946... Line 4945...
4946
 
4945
 
4947
 
4946
 
Line 4948... Line 4947...
4948
  12.5 COM ôàéë symbiosis.
4947
  12.5 COM ôàéë symbiosis.
4949
 
4948
 
4950
    12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
4949
    12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
4951
 
4950
 
Line 4958... Line 4957...
4958
 
4957
 
4959
        Åñëè äîáàâëåííûé âàìè êîä çàâåðøàåòñÿ EXIT() èëè ABORT(), ïðîãðàììà
4958
        Åñëè äîáàâëåííûé âàìè êîä çàâåðøàåòñÿ EXIT() èëè ABORT(), ïðîãðàììà
4960
    ïðåêðàòèòñÿ, è ïåðâîíà÷àëüíûé êîä COM-ôàéëà íå áóäåò âûïîëíåí. Ýòî
4959
    ïðåêðàòèòñÿ, è ïåðâîíà÷àëüíûé êîä COM-ôàéëà íå áóäåò âûïîëíåí. Ýòî
4961
    ïîçâîëÿåò ïðîãðàììå, äîáàâëåííîé ê COM ôàéëó, îïðåäåëÿòü, áóäåò ëè
4960
    ïîçâîëÿåò ïðîãðàììå, äîáàâëåííîé ê COM ôàéëó, îïðåäåëÿòü, áóäåò ëè
4962
    óïðàâëåíèå ïåðåäàíî íà ïåðâîíà÷àëüíûé êîä.
4961
    óïðàâëåíèå ïåðåäàíî íà ïåðâîíà÷àëüíûé êîä.
Line 4963... Line 4962...
4963
Return to contents.
4962
Return to contents.
4964
 
4963
 
4965
 
4964
 
Line 4966... Line 4965...
4966
 
4965
 
4967
    12.5.2 Êàê ýòî äåëàòü.
4966
    12.5.2 Êàê ýòî äåëàòü.
4968
 
4967
 
4969
 
4968
 
4970
        ×òîáû ñäåëàòü ýòî, Âû äîëæíû èñïîëüçîâàòü êëþ÷ /SYM â êîìàíäíîé
4969
        ×òîáû ñäåëàòü ýòî, Âû äîëæíû èñïîëüçîâàòü êëþ÷ /SYM â êîìàíäíîé
Line 4971... Line 4970...
4971
    ñòðîêå êîìïèëÿòîðà, â êîòîðîé óêàçûâàåòñÿ ïîëíîå èìÿ COM-ôàéëà, ê
4970
    ñòðîêå êîìïèëÿòîðà, â êîòîðîé óêàçûâàåòñÿ ïîëíîå èìÿ COM-ôàéëà, ê
Line 4972... Line 4971...
4972
    êîòîðîìó ÷òî-òî äîáàâëÿåòñÿ. Ïðè ýòîì îðèãèíàë COM-ôàéëà íå ìåíÿåòñÿ, à
4971
    êîòîðîìó ÷òî-òî äîáàâëÿåòñÿ. Ïðè ýòîì îðèãèíàë COM-ôàéëà íå ìåíÿåòñÿ, à
4973
    íîâûé ôàéë ñîäåðæèò åãî â ñåáå. Íàïðèìåð, ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó
4972
    íîâûé ôàéë ñîäåðæèò åãî â ñåáå. Íàïðèìåð, ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó
Line 4974... Line 4973...
4974
    HELLO.C-- ê êîíöó êîïèè C:\command.ñîì èñïîëüçóþò ñëåäóþùóþ êîìàíäó:
4973
    HELLO.C-- ê êîíöó êîïèè C:\command.ñîì èñïîëüçóþò ñëåäóþùóþ êîìàíäó:
4975
 
4974
 
4976
             C-- /SYM C:\COMMAND.COM HELLO.C--
4975
             C-- /SYM C:\COMMAND.COM HELLO.C--
Line 4977... Line 4976...
4977
 
4976
 
4978
    Áóäåò ñîçäàí âûõîäíîé ôàéë HELLO.COM .
4977
    Áóäåò ñîçäàí âûõîäíîé ôàéë HELLO.COM .
Line 4979... Line 4978...
4979
Return to contents.
4978
Return to contents.
4980
 
4979
 
4981
 
4980
 
4982
 
4981
 
4983
    12.5.3 Èñïîëüçîâàíèå.
4982
    12.5.3 Èñïîëüçîâàíèå.
Line 4984... Line 4983...
4984
 
4983
 
4985
 
4984
 
4986
        Âû ìîæåòå, âåðîÿòíî, ïðèäóìàòü áîëüøîå êîëè÷åñòâî ïóòåé èñïîëüçîâàíèÿ
4985
        Âû ìîæåòå, âåðîÿòíî, ïðèäóìàòü áîëüøîå êîëè÷åñòâî ïóòåé èñïîëüçîâàíèÿ
Line 4987... Line 4986...
4987
    ýòîé ôóíêöèè, òèïà:
4986
    ýòîé ôóíêöèè, òèïà:
4988
 
4987
 
4989
             - Äîáàâëåíèå çàùèòû ñ èñïîëüçîâàíèåì ïàðîëÿ ê íåêîòîðûì
4988
             - Äîáàâëåíèå çàùèòû ñ èñïîëüçîâàíèåì ïàðîëÿ ê íåêîòîðûì
4990
	       ñïåöèàëüíûì COM ôàéëàì.
4989
               ñïåöèàëüíûì COM ôàéëàì.
4991
             - Óìåíüøåíèå ïàìÿòè, äîñòóïíîé COM ôàéëó ïðè çàïóñêå.
4990
             - Óìåíüøåíèå ïàìÿòè, äîñòóïíîé COM ôàéëó ïðè çàïóñêå.
Line 4992... Line 4991...
4992
             - Èíèöèàëèçàöèÿ ðåæèìà âèäåî äëÿ COM ôàéëà.
4991
             - Èíèöèàëèçàöèÿ ðåæèìà âèäåî äëÿ COM ôàéëà.
4993
Return to contents.
4992
Return to contents.
4994
 
4993
 
Line 4995... Line 4994...
4995
 
4994
 
4996
 
4995
 
4997
    12.5.4 Çëîóïîòðåáëåíèÿ.
4996
    12.5.4 Çëîóïîòðåáëåíèÿ.
Line 5047... Line 5046...
5047
  ïîñëåäíåé (÷òîáû èìåòü âîçìîæíîñòü îòäàòü àäðåñíîå ïðîñòðàíñòâî çàíèìàåìîå
5046
  ïîñëåäíåé (÷òîáû èìåòü âîçìîæíîñòü îòäàòü àäðåñíîå ïðîñòðàíñòâî çàíèìàåìîå
5048
  ýòîé ïðîöåäóðîé îïåðàöèîííîé ñèñòåìå). Ïåðåä ýòîé ïðîöåäóðîé, åñëè Âû â
5047
  ýòîé ïðîöåäóðîé îïåðàöèîííîé ñèñòåìå). Ïåðåä ýòîé ïðîöåäóðîé, åñëè Âû â
5049
  äðóãèõ ïðîöåäóðàõ îáðàáîòêè êîìàíä èñïîëüçóåòå äèíàìè÷åñêèå ïðîöåäóðû,
5048
  äðóãèõ ïðîöåäóðàõ îáðàáîòêè êîìàíä èñïîëüçóåòå äèíàìè÷åñêèå ïðîöåäóðû,
5050
  îáÿçàòåëüíî äîëæíà áûòü äèðåêòèâà ?setdinproc. Ãëîáàëüíûå ïåðåìåííûå äîëæíû
5049
  îáÿçàòåëüíî äîëæíà áûòü äèðåêòèâà ?setdinproc. Ãëîáàëüíûå ïåðåìåííûå äîëæíû
5051
  áûòü îáÿçàòåëüíî ïðîèíèöèàëèçèðîâàíû.
5050
  áûòü îáÿçàòåëüíî ïðîèíèöèàëèçèðîâàíû.
5052
Return to contents.
5051
Return to contents.
Line 5053... Line 5052...
5053
 
5052
 
5054
 
5053
 
5055
 
5054
 
Line 5056... Line 5055...
5056
  12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
5055
  12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
5057
 
5056
 
5058
 
5057
 
5059
      Ðàñøèðèòåëè ROM-BIOS (BIOS âèäåîêîíòðîëëåðîâ, ñåòåâûõ êàðò...) èìåþò
5058
      Ðàñøèðèòåëè ROM-BIOS (BIOS âèäåîêîíòðîëëåðîâ, ñåòåâûõ êàðò...) èìåþò
Line 5104... Line 5103...
5104
  ïðîöåäóðû main().
5103
  ïðîöåäóðû main().
Line 5105... Line 5104...
5105
 
5104
 
5106
    3. Åñëè äèðåêòèâà ?movedatarom óñòàíîâëåíà â FALSE, òî áóäüòå âíèìàòåëüíû
5105
    3. Åñëè äèðåêòèâà ?movedatarom óñòàíîâëåíà â FALSE, òî áóäüòå âíèìàòåëüíû
5107
  ïðè ðàáîòå ñ èíèöèàëèçèðîâàííûìè ïåðåìåííûìè. Îíè â ýòîì ðåæèìå äîñòóïíû
5106
  ïðè ðàáîòå ñ èíèöèàëèçèðîâàííûìè ïåðåìåííûìè. Îíè â ýòîì ðåæèìå äîñòóïíû
5108
  òîëüêî äëÿ ÷òåíèÿ, è àäðåñóþòñÿ ÷åðåç ðåãèñòð CS.
5107
  òîëüêî äëÿ ÷òåíèÿ, è àäðåñóþòñÿ ÷åðåç ðåãèñòð CS.
Line 5109... Line 5108...
5109
Return to contents.
5108
Return to contents.
5110
 
5109
 
Line 5111... Line 5110...
5111
 
5110
 
5112
 
5111
 
Line 5113... Line 5112...
5113
  12.8 32-áèòíûå ôàéëû.
5112
  12.8 32-áèòíûå ôàéëû.
5114
 
5113
 
5115
    12.8.1 32-áèòíûé êîä ïîä DOS.
5114
    12.8.1 32-áèòíûé êîä ïîä DOS.
5116
 
5115
 
Line 5152... Line 5151...
5152
    ðåæèìå ÿâëÿþòñÿ íåîáõîäèìîñòü îáÿçàòåëüíîãî ôóíêöèîíèðîâàíèÿ íà
5151
    ðåæèìå ÿâëÿþòñÿ íåîáõîäèìîñòü îáÿçàòåëüíîãî ôóíêöèîíèðîâàíèÿ íà
5153
    çàïóñêàåìîì êîìïüþòåðå DPMI ñåðâèñà. Òàê êàê, ïðîãðàììà çàãðóæàåòñÿ êàê
5152
    çàïóñêàåìîì êîìïüþòåðå DPMI ñåðâèñà. Òàê êàê, ïðîãðàììà çàãðóæàåòñÿ êàê
5154
    îáû÷íàÿ DOS ïðîãðàììà, è ëèøü â ïðîöåññå ðàáîòû ïåðåõîäèò â 32-áèòíûé
5153
    îáû÷íàÿ DOS ïðîãðàììà, è ëèøü â ïðîöåññå ðàáîòû ïåðåõîäèò â 32-áèòíûé
5155
    ðåæèì ðàáîòû, ðàçìåð ïðîãðàììû îãðàíè÷åí ðàçìåðîì ñâîáîäíîé DOS ïàìÿòè.
5154
    ðåæèì ðàáîòû, ðàçìåð ïðîãðàììû îãðàíè÷åí ðàçìåðîì ñâîáîäíîé DOS ïàìÿòè.
5156
    Íó à ïðåèìóùåñòâîì åãî ÿâëÿåòñÿ êîìïàêòíûé ðàçìåð èñïîëíÿåìîãî ôàéëà.
5155
    Íó à ïðåèìóùåñòâîì åãî ÿâëÿåòñÿ êîìïàêòíûé ðàçìåð èñïîëíÿåìîãî ôàéëà.
5157
Return to contents.
5156
Return to contents.
Line 5158... Line 5157...
5158
 
5157
 
5159
 
5158
 
5160
 
5159
 
Line 5161... Line 5160...
5161
    12.8.2 32-áèòíûé êîä ïîä Windows.
5160
    12.8.2 32-áèòíûé êîä ïîä Windows.
5162
 
5161
 
Line 5163... Line 5162...
5163
 
5162
 
Line 5239... Line 5238...
5239
       ProcName@8 ;
5238
       ProcName@8 ;
5240
    }
5239
    }
Line 5241... Line 5240...
5241
 
5240
 
5242
    ò.å. áåç êðóãëûõ ñêîáîê. Â ïðîãðàììå, ïðè îáðàùåíèè ê òàêîé ïðîöåäóðå, åå
5241
    ò.å. áåç êðóãëûõ ñêîáîê. Â ïðîãðàììå, ïðè îáðàùåíèè ê òàêîé ïðîöåäóðå, åå
5243
    èìÿ íàäî ïèñàòü áåç ñóôôèêñà @8, ò.å. âîò òàê - ProcName(param1,param2);
5242
    èìÿ íàäî ïèñàòü áåç ñóôôèêñà @8, ò.å. âîò òàê - ProcName(param1,param2);
Line 5244... Line 5243...
5244
Return to contents.
5243
Return to contents.
5245
 
5244
 
5246
 
5245
 
Line 5247... Line 5246...
5247
 
5246
 
5248
    12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
5247
    12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
5249
 
5248
 
5250
 
5249
 
Line 5295... Line 5294...
5295
    î òîì, ÷òî äàííîãî èìåíè â áèáëèîòåêå íåò.
5294
    î òîì, ÷òî äàííîãî èìåíè â áèáëèîòåêå íåò.
Line 5296... Line 5295...
5296
 
5295
 
5297
        Ê ñîæàëåíèþ, íåò íèêàêèõ ãàðàíòèé òîãî, ÷òî íîìåð îðäèíàëà äëÿ äàííîé
5296
        Ê ñîæàëåíèþ, íåò íèêàêèõ ãàðàíòèé òîãî, ÷òî íîìåð îðäèíàëà äëÿ äàííîé
5298
    ïðîöåäóðû íå èçìåíèòñÿ ïðè ñìåíå âåðñèè äèíàìè÷åñêîé áèáëèîòåêè. Ïîýòîìó
5297
    ïðîöåäóðû íå èçìåíèòñÿ ïðè ñìåíå âåðñèè äèíàìè÷åñêîé áèáëèîòåêè. Ïîýòîìó
5299
    èñïîëüçîâàòü îðäèíàëû íàäî îñòîðîæíî.
5298
    èñïîëüçîâàòü îðäèíàëû íàäî îñòîðîæíî.
Line 5300... Line 5299...
5300
Return to contents.
5299
Return to contents.
5301
 
5300
 
5302
 
5301
 
Line 5303... Line 5302...
5303
 
5302
 
5304
    12.8.4 Ñîçäàíèå DLL ïîä Windows.
5303
    12.8.4 Ñîçäàíèå DLL ïîä Windows.
5305
 
5304
 
5306
 
5305
 
Line 5322... Line 5321...
5322
    ïðîöåäóðû ñ êëþ÷åâûìè ñëîâàìè _export. Âñïîìîãàòåëüíûå ïðîöåäóðû, êîòîðûå
5321
    ïðîöåäóðû ñ êëþ÷åâûìè ñëîâàìè _export. Âñïîìîãàòåëüíûå ïðîöåäóðû, êîòîðûå
5323
    ìîãóò ïîíàäîáèòüñÿ äëÿ ðàáîòû îñíîâíûõ ýêñïîðòèðóåìûõ ïðîöåäóð, îáúÿâëÿòü
5322
    ìîãóò ïîíàäîáèòüñÿ äëÿ ðàáîòû îñíîâíûõ ýêñïîðòèðóåìûõ ïðîöåäóð, îáúÿâëÿòü
5324
    êàê _export íåîáÿçàòåëüíî. Çàòåì ýòîò ôàéë íóæíî îòêîìïèëèðîâàòü ñ êëþ÷îì
5323
    êàê _export íåîáÿçàòåëüíî. Çàòåì ýòîò ôàéë íóæíî îòêîìïèëèðîâàòü ñ êëþ÷îì
5325
    /dll.   ðåçóëüòàòå Âû ïîëó÷èòå ãîòîâóþ äèíàìè÷åñêè ïîäêëþ÷àåìóþ
5324
    /dll.   ðåçóëüòàòå Âû ïîëó÷èòå ãîòîâóþ äèíàìè÷åñêè ïîäêëþ÷àåìóþ
5326
    áèáëèîòåêó.
5325
    áèáëèîòåêó.
5327
Return to contents.
5326
Return to contents.
Line 5328... Line 5327...
5328
 
5327
 
5329
 
5328
 
5330
 
5329
 
Line 5331... Line 5330...
5331
    12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
5330
    12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
5332
 
5331
 
5333
 
5332
 
5334
        Èíîãäà, äëÿ ðàáîòû ïðîöåäóð èç äèíàìè÷åñêèõ áèáëèîòåê (DLL), áûâàåò
5333
        Èíîãäà, äëÿ ðàáîòû ïðîöåäóð èç äèíàìè÷åñêèõ áèáëèîòåê (DLL), áûâàåò
Line 5348... Line 5347...
5348
 
5347
 
5349
    dword main ( dword hInstDLL, reason, reserv )
5348
    dword main ( dword hInstDLL, reason, reserv )
5350
    {
5349
    {
5351
      ...
5350
      ...
5352
    }
5351
    }
Line 5353... Line 5352...
5353
Return to contents.
5352
Return to contents.
5354
 
5353
 
5355
 
5354
 
Line 5356... Line 5355...
5356
 
5355
 
5357
    12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
5356
    12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
5358
 
5357
 
Line 5389... Line 5388...
5389
    ìîæíî èñïîëüçîâàòü äèðåêòèâû è êîììåíòàðèè.
5388
    ìîæíî èñïîëüçîâàòü äèðåêòèâû è êîììåíòàðèè.
Line 5390... Line 5389...
5390
 
5389
 
5391
        Íè÷òî íå ìåøàåò Âàì èñïîëüçîâàòü êîìïèëÿòîðû ðåñóðñîâ îò äðóãèõ
5390
        Íè÷òî íå ìåøàåò Âàì èñïîëüçîâàòü êîìïèëÿòîðû ðåñóðñîâ îò äðóãèõ
5392
    ÿçûêîâ.  Ãëàâíîå, ÷òîáû ñèíòàêñèñ ôàéëà ðåñóðñîâ ñîîòâåòñòâîâàë âûáðàííîìó
5391
    ÿçûêîâ.  Ãëàâíîå, ÷òîáû ñèíòàêñèñ ôàéëà ðåñóðñîâ ñîîòâåòñòâîâàë âûáðàííîìó
5393
    êîìïèëÿòîðó.
5392
    êîìïèëÿòîðó.
Line 5394... Line 5393...
5394
Return to contents.
5393
Return to contents.
5395
 
5394
 
5396
 
5395
 
Line 5397... Line 5396...
5397
 
5396
 
5398
  12.9 Âûõîäíûå ôàéëû äëÿ MeOS.
5397
  12.9 Âûõîäíûå ôàéëû äëÿ MeOS.
5399
 
5398
 
5400
 
5399
 
Line 5407... Line 5406...
5407
      Åñëè ïðè êîìïèëÿöèè ôàéëà Âû íå óêàçûâàëè îïöèþ /j0 èëè íå
5406
      Åñëè ïðè êîìïèëÿöèè ôàéëà Âû íå óêàçûâàëè îïöèþ /j0 èëè íå
5408
  èñïîëüçîâàëè äèðåêòèâó #jumptomain NONE, òî êîìïèëÿòîð áóäåò èñïîëüçîâàòü
5407
  èñïîëüçîâàëè äèðåêòèâó #jumptomain NONE, òî êîìïèëÿòîð áóäåò èñïîëüçîâàòü
5409
  ôàéë íà÷àëüíîé èíèöèàëèçàöèè startup.h--, â êîòîðîì äëÿ îïåðàöèîííîé
5408
  ôàéë íà÷àëüíîé èíèöèàëèçàöèè startup.h--, â êîòîðîì äëÿ îïåðàöèîííîé
5410
  ñèñòåìû MenuetOS ñîçäàí áëîê èíèöèàëèçàöèè è çàâåðøåíèÿ ïðîãðàììû.
5409
  ñèñòåìû MenuetOS ñîçäàí áëîê èíèöèàëèçàöèè è çàâåðøåíèÿ ïðîãðàììû.
5411
  Çàâåðøàòü âûïîëíåíèå òàêèõ ïðîãðàìì ìîæíî ïðîñòî âûéäÿ èç ïðîöåäóðû main.
5410
  Çàâåðøàòü âûïîëíåíèå òàêèõ ïðîãðàìì ìîæíî ïðîñòî âûéäÿ èç ïðîöåäóðû main.
5412
Return to contents.
5411
Return to contents.
Line 5413... Line 5412...
5413
 
5412
 
5414
 
5413
 
Line 5415... Line 5414...
5415
 
5414
 
5416
13. Ïðèëîæåíèÿ.
5415
13. Ïðèëîæåíèÿ.
Line 5417... Line 5416...
5417
 
5416
 
5418
  13.1 Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
5417
  13.1 Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
5419
 
5418
 
Line 5439... Line 5438...
5439
  ýòîãî ôàéëà ïðîèçâîäèòñÿ â ïðîòèâîïîëîæíîì íàïðàâëåíèè, çà èñêëþ÷åíèåì
5438
  ýòîãî ôàéëà ïðîèçâîäèòñÿ â ïðîòèâîïîëîæíîì íàïðàâëåíèè, çà èñêëþ÷åíèåì
5440
  òîãî, ÷òî ïîèñê â òåêóùåé äèðåêòîðèè íå ïðîèçâîäèòñÿ.
5439
  òîãî, ÷òî ïîèñê â òåêóùåé äèðåêòîðèè íå ïðîèçâîäèòñÿ.
Line 5441... Line 5440...
5441
 
5440
 
5442
      Äëÿ êîíñîëüíîé âåðñèè êîìïèëÿòîðà èìåíà ãëàâíîãî ìîäóëÿ è âêëþ÷àåìûõ
5441
      Äëÿ êîíñîëüíîé âåðñèè êîìïèëÿòîðà èìåíà ãëàâíîãî ìîäóëÿ è âêëþ÷àåìûõ
5443
  ôàéëîâ ìîãóò èìåòü äëèíó áîëåå 8 ñèìâîëîâ.
5442
  ôàéëîâ ìîãóò èìåòü äëèíó áîëåå 8 ñèìâîëîâ.
Line 5444... Line 5443...
5444
Return to contents.
5443
Return to contents.
5445
 
5444
 
5446
 
5445
 
Line 5447... Line 5446...
5447
 
5446
 
Line 5448... Line 5447...
5448
  13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
5447
  13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
5449
 
5448
 
Line 5473... Line 5472...
5473
 
5472
 
5474
      CS õðàíèò ñåãìåíò êîäà ïðîãðàììû.  Âñå êîìàíäû âûáèðàþòñÿ ñ
5473
      CS õðàíèò ñåãìåíò êîäà ïðîãðàììû.  Âñå êîìàíäû âûáèðàþòñÿ ñ
5475
  èñïîëüçîâàíèåì CS è IP, ñëåäîâàòåëüíî èõ çíà÷åíèÿ äîëæíû ñîõðàíÿòüñÿ. IP,
5474
  èñïîëüçîâàíèåì CS è IP, ñëåäîâàòåëüíî èõ çíà÷åíèÿ äîëæíû ñîõðàíÿòüñÿ. IP,
5476
  êàê èçâåñòíî, óêàçàòåëü àäðåñà êîìàíäû, è CS è IP íåïîñðåäñòâåííî íå ìîãóò
5475
  êàê èçâåñòíî, óêàçàòåëü àäðåñà êîìàíäû, è CS è IP íåïîñðåäñòâåííî íå ìîãóò
5477
  èçìåíÿòüñÿ â ïðîöåññîðàõ 8086, 8088, 80286, 80386, 80486,...
5476
  èçìåíÿòüñÿ â ïðîöåññîðàõ 8086, 8088, 80286, 80386, 80486,...
Line 5478... Line 5477...
5478
Return to contents.
5477
Return to contents.
5479
 
5478
 
5480
 
5479
 
Line 5481... Line 5480...
5481
 
5480
 
5482
  13.3 C--.ini ôàéë.
5481
  13.3 C--.ini ôàéë.
Line 5483... Line 5482...
5483
 
5482
 
Line 5529... Line 5528...
5529
  íàñòðîéêè ÿâëÿþòñÿ èíäèâèäóàëüíûìè äëÿ äàííîãî êîìïüþòåðà (ýòî ðàñïîëîæåíèå
5528
  íàñòðîéêè ÿâëÿþòñÿ èíäèâèäóàëüíûìè äëÿ äàííîãî êîìïüþòåðà (ýòî ðàñïîëîæåíèå
5530
  áèáëèîòåê, èìåíà è ðàñïîëîæåíèå stub-ôàéëîâ). Êàêîé âàðèàíò èñïîëüçîâàòü
5529
  áèáëèîòåê, èìåíà è ðàñïîëîæåíèå stub-ôàéëîâ). Êàêîé âàðèàíò èñïîëüçîâàòü
5531
  ðåøàòü Âàì, íî êàê ãîâîðÿò, è ÿ ñ ýòèì ñîãëàñåí, ëó÷øå ïîëüçîâàòüñÿ çîëîòîé
5530
  ðåøàòü Âàì, íî êàê ãîâîðÿò, è ÿ ñ ýòèì ñîãëàñåí, ëó÷øå ïîëüçîâàòüñÿ çîëîòîé
5532
  ñåðåäèíîé - ×àñòü ïàðàìåòðîâ ïðîïèñàòü â c--.ini ôàéëå, à äðóãóþ
5531
  ñåðåäèíîé - ×àñòü ïàðàìåòðîâ ïðîïèñàòü â c--.ini ôàéëå, à äðóãóþ
5533
  íåïîñðåäñòâåííî â êîìïèëèðóåìîì ôàéëå.
5532
  íåïîñðåäñòâåííî â êîìïèëèðóåìîì ôàéëå.
5534
Return to contents.
5533
Return to contents.
Line 5535... Line 5534...
5535
 
5534
 
5536
 
5535
 
5537
 
5536
 
Line 5538... Line 5537...
5538
  13.4 startup.h-- ôàéë.
5537
  13.4 startup.h-- ôàéë.
5539
 
5538
 
5540
 
5539
 
5541
      Â ýòîì ôàéëå íàõîäÿòñÿ èñõîäíûå òåêñòû, êîòîðûå êîìïèëèðóþòñÿ
5540
      Â ýòîì ôàéëå íàõîäÿòñÿ èñõîäíûå òåêñòû, êîòîðûå êîìïèëèðóþòñÿ
Line 5579... Line 5578...
5579
 
5578
 
Line 5580... Line 5579...
5580
  #define _USELONGNAME TRUE
5579
  #define _USELONGNAME TRUE
5581
 
5580
 
5582
      ëèáî â c--.ini ôàéëå èëè â êîìàíäíîé ñòðîêå êîìïèëÿòîðà óêàæåòå îïöèþ
5581
      ëèáî â c--.ini ôàéëå èëè â êîìàíäíîé ñòðîêå êîìïèëÿòîðà óêàæåòå îïöèþ
Line 5583... Line 5582...
5583
  d=_USELONGNAME.
5582
  d=_USELONGNAME.
5584
Return to contents.
5583
Return to contents.
5585
 
5584
 
Line 5586... Line 5585...
5586
 
5585
 
5587
 
5586
 
5588
  13.5 mainlib.ldp ôàéë.
5587
  13.5 mainlib.ldp ôàéë.
5589
 
5588
 
Line 5613... Line 5612...
5613
      Ñïèñîê ïðîöåäóð íàõîäÿùèõñÿ â ýòîé áèáëèîòåêå ìîæíî ïîëó÷èòü ñ ïîìîùüþ
5612
      Ñïèñîê ïðîöåäóð íàõîäÿùèõñÿ â ýòîé áèáëèîòåêå ìîæíî ïîëó÷èòü ñ ïîìîùüþ
5614
  ñïåöèàëüíîé ïðîãðàììû cmmlib.exe. Ýòó ïðîãðàììó ìîæíî íàéòè â àðõèâå
5613
  ñïåöèàëüíîé ïðîãðàììû cmmlib.exe. Ýòó ïðîãðàììó ìîæíî íàéòè â àðõèâå
5615
  cmmlib.rar. Èçâëåêèòå ïðîãðàììó cmmlib.exe èç ýòîãî àðõèâà è ðàñïîëîæèòå åå
5614
  cmmlib.rar. Èçâëåêèòå ïðîãðàììó cmmlib.exe èç ýòîãî àðõèâà è ðàñïîëîæèòå åå
5616
  â îäíîé ñ êîìïèëÿòîðîì äèðåêòîðèè. Çàòåì çàïóñòèòå ýòó ïðîãðàììó ñ êëþ÷îì
5615
  â îäíîé ñ êîìïèëÿòîðîì äèðåêòîðèè. Çàòåì çàïóñòèòå ýòó ïðîãðàììó ñ êëþ÷îì
5617
  /L è Âû ïîëó÷èòå ñïèñîê ïðîöåäóð íàõîäÿùèõñÿ â ýòîé áèáëèîòåêå.
5616
  /L è Âû ïîëó÷èòå ñïèñîê ïðîöåäóð íàõîäÿùèõñÿ â ýòîé áèáëèîòåêå.
5618
Return to contents.
5617
Return to contents.
Line 5619... Line 5618...
5619
 
5618
 
5620
 
5619
 
5621
 
5620
 
Line 5622... Line 5621...
5622
  13.6 C-- ñèìâîëû.
5621
  13.6 C-- ñèìâîëû.
5623
 
5622
 
5624
 
5623
 
5625
  SYMBOL|FUNCTION                  |EXAMPLE
5624
  SYMBOL|FUNCTION                  |EXAMPLE
Line 5667... Line 5666...
5667
        |èëè äèðåêòèâà             | #resize FALSE
5666
        |èëè äèðåêòèâà             | #resize FALSE
5668
    !   |îïåðàòîð NOT èëè ñìåíà    |!x_var;  if(!proc())
5667
    !   |îïåðàòîð NOT èëè ñìåíà    |!x_var;  if(!proc())
5669
        |ôëàãà îïåðàöèè ñðàâíåíèÿ. |
5668
        |ôëàãà îïåðàöèè ñðàâíåíèÿ. |
5670
   ...  |ëþáîå ÷èñëî ïàðàìåòðîâ â  | void proc(...);
5669
   ...  |ëþáîå ÷èñëî ïàðàìåòðîâ â  | void proc(...);
5671
   ::   |ðàçðåøåíèå âèäèìîñòè      | ::var=0;
5670
   ::   |ðàçðåøåíèå âèäèìîñòè      | ::var=0;
5672
Return to contents.
5671
Return to contents.
5673
 
5672
 
5674
                
5673
 
5675
 
-
 
5676
-
 
5677
 
-
 
5678
	      
-
 
5679
            
-
 
5680
          
-
 
5681
 
5674
 
5682
        
-
 
5683
      
-
 
5684
    
-
 
5685
  
-
 
5686
 
5675
 
5687
 
5676
 
5688
 
-
 
5689
 
-
 
5690
 
-
 
5691
 
-
 
5692
#bn {display:block;}
-
 
5693
#bt {display:block;}
-
 
5694
 
-
 
5695
 
-
 
5696
 
-
 
5697
 
-