Subversion Repositories Kolibri OS

Rev

Rev 7496 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7496 Rev 7544
-
 
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
 
210
 
209
 
211
 
210
 
212
1. Âñòóïëåíèå.
211

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

213
 
212
 
214
  1.1 Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
213
  1.1 Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
215
 
214
 
216
 
215
 
217
      Àâòîðîì ÿçûêà SPHINX C-- ÿâëÿåòñÿ Peter Cellik (CANADA). Ïîñëåäíÿÿ
216
      Àâòîðîì ÿçûêà SPHINX C-- ÿâëÿåòñÿ Peter Cellik (CANADA). Ïîñëåäíÿÿ
218
  àâòîðñêàÿ âåðñèÿ SPHINX C-- v0.203 îò 28.Oct.96. Ê ñîæàëåíèþ àâòîð
217
  àâòîðñêàÿ âåðñèÿ SPHINX C-- v0.203 îò 28.Oct.96. Ê ñîæàëåíèþ àâòîð
219
  îòêàçàëñÿ îò äàëüíåéøåãî ðàçâèòèÿ ÿçûêà. Ñ 1998 ãîäà, óæå ïî÷òè óìåðøèé
218
  îòêàçàëñÿ îò äàëüíåéøåãî ðàçâèòèÿ ÿçûêà. Ñ 1998 ãîäà, óæå ïî÷òè óìåðøèé
220
  ïðîåêò, ïîäõâàòèë Ìèõàèë Øåêåð (Ðîññèÿ). Èçíà÷àëüíî êîìïèëÿòîð áûë freeware
219
  ïðîåêò, ïîäõâàòèë Ìèõàèë Øåêåð (Ðîññèÿ). Èçíà÷àëüíî êîìïèëÿòîð áûë freeware
221
  (è äàæå greenware, êàê åãî íàçûâàë Peter Cellik). Òàêèì ñòàòóñ êîìïèëÿòîðà
220
  (è äàæå greenware, êàê åãî íàçûâàë Peter Cellik). Òàêèì ñòàòóñ êîìïèëÿòîðà
222
  îñòàëñÿ è ïîíûíå.
221
  îñòàëñÿ è ïîíûíå.
223
 
222
 
224
      Ïåðâîíà÷àëüíî êîìïèëÿòîð ìîã ñîçäàâàòü òîëüêî *.com ôàéëû è áûë
223
      Ïåðâîíà÷àëüíî êîìïèëÿòîð ìîã ñîçäàâàòü òîëüêî *.com ôàéëû è áûë
225
  ðàññ÷èòàí íà ñîçäàíèå íåáîëüøèõ demo-ïðîãðàìì è ðåçèäåíòîâ (TSR). Â
224
  ðàññ÷èòàí íà ñîçäàíèå íåáîëüøèõ demo-ïðîãðàìì è ðåçèäåíòîâ (TSR). Â
226
  äàëüíåéøåì âîçìîæíîñòè êîìïèëÿòîðà ðàñøèðÿëèñü, òàê êàê ýòîãî òðåáîâàëî
225
  äàëüíåéøåì âîçìîæíîñòè êîìïèëÿòîðà ðàñøèðÿëèñü, òàê êàê ýòîãî òðåáîâàëî
227
  íàøå áóðíîå âðåìÿ.
226
  íàøå áóðíîå âðåìÿ.
228
 
227
 
229
      Ïðè ðàçâèòèè êîìïèëÿòîðà, áûëî ñòðåìëåíèå ïðèäåðæèâàòüñÿ ñëåäóþùèõ
228
      Ïðè ðàçâèòèè êîìïèëÿòîðà, áûëî ñòðåìëåíèå ïðèäåðæèâàòüñÿ ñëåäóþùèõ
230
  ïðèíöèïîâ:
229
  ïðèíöèïîâ:
231
 
230
 
232
      1. Ìàêñèìàëüíî âîçìîæíàÿ ñîâìåñòèìîñòü ñèíòàêñèñà ñ ïîñëåäíåé âåðñèåé
231
      1. Ìàêñèìàëüíî âîçìîæíàÿ ñîâìåñòèìîñòü ñèíòàêñèñà ñ ïîñëåäíåé âåðñèåé
233
  êîìïèëÿòîðà íàïèñàííîãî Peter Cellik. Ýòî äàâàëî âîçìîæíîñòü ñ ìèíèìàëüíûìè
232
  êîìïèëÿòîðà íàïèñàííîãî Peter Cellik. Ýòî äàâàëî âîçìîæíîñòü ñ ìèíèìàëüíûìè
234
  çàòðàòàìè (à ÷àùå âñåãî áåç âñÿêèõ çàòðàò) àäàïòèðîâàòü ïðîãðàììû,
233
  çàòðàòàìè (à ÷àùå âñåãî áåç âñÿêèõ çàòðàò) àäàïòèðîâàòü ïðîãðàììû,
235
  íàïèñàííûå äëÿ 0.203 âåðñèè êîìïèëÿòîðà, ê ïîñëåäíåé íà ýòîò ìîìåíò âåðñèè
234
  íàïèñàííûå äëÿ 0.203 âåðñèè êîìïèëÿòîðà, ê ïîñëåäíåé íà ýòîò ìîìåíò âåðñèè
236
  êîìïèëÿòîðà.
235
  êîìïèëÿòîðà.
237
 
236
 
238
      2. Ñáëèçèòü ñèíòàêñèñ êîìïèëÿòîðà ñî ñòàíäàðòíûì ÿçûêîì C. Ýòî ìîãëî
237
      2. Ñáëèçèòü ñèíòàêñèñ êîìïèëÿòîðà ñî ñòàíäàðòíûì ÿçûêîì C. Ýòî ìîãëî
239
  çíà÷èòåëüíî îáëåã÷èòü ïåðåíîñ ïðîãðàìì íàïèñàííûõ íà C.
238
  çíà÷èòåëüíî îáëåã÷èòü ïåðåíîñ ïðîãðàìì íàïèñàííûõ íà C.
240
 
239
 
241
      3. Òàêæå ïðèëàãàëèñü óñèëèÿ, äëÿ òîãî, ÷òîáû ÷åëîâåê çíàþùèé òîëüêî
240
      3. Òàêæå ïðèëàãàëèñü óñèëèÿ, äëÿ òîãî, ÷òîáû ÷åëîâåê çíàþùèé òîëüêî
242
  àññåìáëåð ìîã áû ñ ìèíèìàëüíûìè çàòðàòàìè îñâîèòü C--.
241
  àññåìáëåð ìîã áû ñ ìèíèìàëüíûìè çàòðàòàìè îñâîèòü C--.
243
 
242
 
244
      Âîò ýòè, çà÷àñòóþ ïðîòèâîðå÷àùèå äðóã äðóãó ïðèíöèïû, âëèÿëè íà âûáîð
243
      Âîò ýòè, çà÷àñòóþ ïðîòèâîðå÷àùèå äðóã äðóãó ïðèíöèïû, âëèÿëè íà âûáîð
245
  ðåàëèçàöèè âîçìîæíîñòåé êîìïèëÿòîðà. Íàñêîëüêî ýòî óäàëîñü - ñóäèòü Âàì.
244
  ðåàëèçàöèè âîçìîæíîñòåé êîìïèëÿòîðà. Íàñêîëüêî ýòî óäàëîñü - ñóäèòü Âàì.
246
 
245
 
247
      Åñëè ó Âàñ åñòü ïðåäëîæåíèÿ è èäåè ïî óëó÷øåíèþ êîìïèëÿòîðà - ïèøèòå.
246
      Åñëè ó Âàñ åñòü ïðåäëîæåíèÿ è èäåè ïî óëó÷øåíèþ êîìïèëÿòîðà - ïèøèòå.
248
  Ìîé e-mail sheker@mail.ru . ß ñ óäîâîëüñòâèåì âûñëóøàþ Âàøè ïðåäëîæåíèÿ, íî
247
  Ìîé e-mail sheker@mail.ru . ß ñ óäîâîëüñòâèåì âûñëóøàþ Âàøè ïðåäëîæåíèÿ, íî
249
  íå ãàðàíòèðóþ, ÷òî âñå îíè áóäóò ðåàëèçîâàíû. Åñëè ðåàëèçîâûâàòü âñå
248
  íå ãàðàíòèðóþ, ÷òî âñå îíè áóäóò ðåàëèçîâàíû. Åñëè ðåàëèçîâûâàòü âñå
250
  ïîñòóïàþùèå ïðåäëîæåíèÿ, òî êîìïèëÿòîð ïðåâðàòèòñÿ â ñâàëêó. Íî åñëè Âàøå
249
  ïîñòóïàþùèå ïðåäëîæåíèÿ, òî êîìïèëÿòîð ïðåâðàòèòñÿ â ñâàëêó. Íî åñëè Âàøå
251
  ïðåäëîæåíèå áóäåò öåííûì (íà ìîé âçãëÿä, òàê ÷òî Âàì ïðèäåòñÿ ñâîå
250
  ïðåäëîæåíèå áóäåò öåííûì (íà ìîé âçãëÿä, òàê ÷òî Âàì ïðèäåòñÿ ñâîå
252
  ïðåäëîæåíèå õîðîøî àðãóìåíòèðîâàòü) è åãî áóäåò âîçìîæíûì ðåàëèçîâàòü, îíî
251
  ïðåäëîæåíèå õîðîøî àðãóìåíòèðîâàòü) è åãî áóäåò âîçìîæíûì ðåàëèçîâàòü, îíî
253
  áåç ñîìíåíèÿ íàéäåò ìåñòî â êîìïèëÿòîðå.
252
  áåç ñîìíåíèÿ íàéäåò ìåñòî â êîìïèëÿòîðå.
254
Return to contents.
253
Return to contents.
255
 
254
 
256
 
255
 
257
 
256
 
258
  1.2 ×òî òàêîå C--?
257
  1.2 ×òî òàêîå C--?
259
 
258
 
260
 
259
 
261
      C-- áûë ðàçðàáîòàí, äëÿ òîãî ÷òîáû ñòðîèòü ìàëåíüêèå è áûñòðûå
260
      C-- áûë ðàçðàáîòàí, äëÿ òîãî ÷òîáû ñòðîèòü ìàëåíüêèå è áûñòðûå
262
  ïðîãðàììû. Ýòî íàèáîëåå ïîäõîäèò äëÿ ñîçäàíèÿ ðåçèäåíòíûõ ïðîãðàìì (TSR),
261
  ïðîãðàììû. Ýòî íàèáîëåå ïîäõîäèò äëÿ ñîçäàíèÿ ðåçèäåíòíûõ ïðîãðàìì (TSR),
263
  ïðîãðàìì, òðåáóþùèõ îáðàáîòêó ïðåðûâàíèé èëè ïðîãðàìì ó êîòîðûõ îãðàíè÷åíû
262
  ïðîãðàìì, òðåáóþùèõ îáðàáîòêó ïðåðûâàíèé èëè ïðîãðàìì ó êîòîðûõ îãðàíè÷åíû
264
  ðåñóðñû.
263
  ðåñóðñû.
265
 
264
 
266
      C-- çàíèìàåò ïðîìåæóòî÷íîå ïîëîæåíèå ìåæäó ñè è àññåìáëåðîì.  ñâÿçè ñ
265
      C-- çàíèìàåò ïðîìåæóòî÷íîå ïîëîæåíèå ìåæäó ñè è àññåìáëåðîì.  ñâÿçè ñ
267
  ýòèì ïðîìåæóòî÷íûì ïîëîæåíèåì, Âàì, äëÿ òîãî ÷òîáû ïèñàòü ïðîãðàììû íà C--,
266
  ýòèì ïðîìåæóòî÷íûì ïîëîæåíèåì, Âàì, äëÿ òîãî ÷òîáû ïèñàòü ïðîãðàììû íà C--,
268
  íåîáõîäèìî çíàòü è àññåìáëåð è ñè. Åñëè Âàì íàäîåëî âîçèòüñÿ ñ îãðîìíûìè
267
  íåîáõîäèìî çíàòü è àññåìáëåð è ñè. Åñëè Âàì íàäîåëî âîçèòüñÿ ñ îãðîìíûìè
269
  àññåìáëåðíûìè ëèñòèíãàìè, à èçëèøíÿÿ ñòðîãîñòü ÿçûêà C Âàñ óãíåòàåò, òî ýòîò
268
  àññåìáëåðíûìè ëèñòèíãàìè, à èçëèøíÿÿ ñòðîãîñòü ÿçûêà C Âàñ óãíåòàåò, òî ýòîò
270
  ÿçûê äëÿ ÂÀÑ.
269
  ÿçûê äëÿ ÂÀÑ.
271
 
270
 
272
      Ñåé÷àñ êîìïèëÿòîð C-- ìîæåò ñîçäàâàòü 32-áèòíûå ïðîãðàììû ïîä Windows
271
      Ñåé÷àñ êîìïèëÿòîð C-- ìîæåò ñîçäàâàòü 32-áèòíûå ïðîãðàììû ïîä Windows
273
  (EXE-ôàéëû ôîðìàòà PE) è 32-áèòíûå ïðîãðàììû ïîä DOS (LE-ôîðìàò). Èìååò
272
  (EXE-ôàéëû ôîðìàòà PE) è 32-áèòíûå ïðîãðàììû ïîä DOS (LE-ôîðìàò). Èìååò
274
  âñòðîåííûé êîìïèëÿòîð ðåñóðñîâ è äèçàññåìáëåð äëÿ ãåíåðàöèè ëèñòèíãà
273
  âñòðîåííûé êîìïèëÿòîð ðåñóðñîâ è äèçàññåìáëåð äëÿ ãåíåðàöèè ëèñòèíãà
275
  îòêîìïèëèðîâàííîãî ôàéëà. Ïîääåðæèâàåò àññåìáëåðíûå èíñòðóêöèè ïðîöåññîðà
274
  îòêîìïèëèðîâàííîãî ôàéëà. Ïîääåðæèâàåò àññåìáëåðíûå èíñòðóêöèè ïðîöåññîðà
276
  Pentium III è àññåìáëåðíûå èíñòðóêöèè FPU. Êîìïèëÿòîð ìîæåò ãåíåðèðîâàòü
275
  Pentium III è àññåìáëåðíûå èíñòðóêöèè FPU. Êîìïèëÿòîð ìîæåò ãåíåðèðîâàòü
277
  îòëàäî÷íóþ èíôîðìàöèþ ñîâìåñòèìóþ ñ îòëàä÷èêàìè ôèðìû Borland. Êîìïèëÿòîð
276
  îòëàäî÷íóþ èíôîðìàöèþ ñîâìåñòèìóþ ñ îòëàä÷èêàìè ôèðìû Borland. Êîìïèëÿòîð
278
  ìîæåò ñîçäàâàòü îáúåêòíûå ôàéëû (obj), íî òîëüêî äëÿ DOS ïðîãðàìì.
277
  ìîæåò ñîçäàâàòü îáúåêòíûå ôàéëû (obj), íî òîëüêî äëÿ DOS ïðîãðàìì.
279
 
278
 
280
      C-- ðàçðàáîòàí òîëüêî äëÿ èñïîëüçîâàíèÿ íà êîìïüþòåðàõ ñ ïðîöåññîðàìè
279
      C-- ðàçðàáîòàí òîëüêî äëÿ èñïîëüçîâàíèÿ íà êîìïüþòåðàõ ñ ïðîöåññîðàìè
281
  ñîâìåñòèìûìè ñ ñåìåéñòâîì 80x86. Êîìïèëÿòîð ìîæåò ðàáîòàòü òîëüêî ñ
280
  ñîâìåñòèìûìè ñ ñåìåéñòâîì 80x86. Êîìïèëÿòîð ìîæåò ðàáîòàòü òîëüêî ñ
282
  îïåðàöèîííûìè ñèñòåìàìè DOS è ñåìåéñòâîì Windows.
281
  îïåðàöèîííûìè ñèñòåìàìè DOS è ñåìåéñòâîì Windows.
283
Return to contents.
282
Return to contents.
284
 
283
 
285
 
284
 
286
 
285
 
287
  1.3 Êàê óñòàíîâèòü C--.
286
  1.3 Êàê óñòàíîâèòü C--.
288
 
287
 
289
 
288
 
290
      Êîìïèëÿòîðó C-- äëÿ ðàáîòû íóæíû ñîâñåì íåçíà÷èòåëüíûå ðåñóðñû:
289
      Êîìïèëÿòîðó C-- äëÿ ðàáîòû íóæíû ñîâñåì íåçíà÷èòåëüíûå ðåñóðñû:
291
  ïðîöåññîð 386 èëè ëó÷øå, ÷óòü áîëåå 1 Ìá äèñêîâîãî ïðîñòðàíñòâà è 4Ìá
290
  ïðîöåññîð 386 èëè ëó÷øå, ÷óòü áîëåå 1 Ìá äèñêîâîãî ïðîñòðàíñòâà è 4Ìá
292
  îïåðàòèâíîé ïàìÿòè. Êîìïèëÿòîð ìîæåò áûòü óñòàíîâëåí íà êîìïüþòåðû ñ
291
  îïåðàòèâíîé ïàìÿòè. Êîìïèëÿòîð ìîæåò áûòü óñòàíîâëåí íà êîìïüþòåðû ñ
293
  îïåðàöèîííîé ñèñòåìîé Windows 95 èëè ëó÷øå. Êîìïèëÿòîð òàêæå ìîæåò ðàáîòàòü
292
  îïåðàöèîííîé ñèñòåìîé Windows 95 èëè ëó÷øå. Êîìïèëÿòîð òàêæå ìîæåò ðàáîòàòü
294
  â ñðåäå ÷èñòîãî DOS.  îñíîâíîì ïàêåòå êîìïèëÿòîðà íàõîäèòñÿ 32-áèòíàÿ DOS
293
  â ñðåäå ÷èñòîãî DOS.  îñíîâíîì ïàêåòå êîìïèëÿòîðà íàõîäèòñÿ 32-áèòíàÿ DOS
295
  âåðñèÿ êîìïèëÿòîðà. Íà ñàéòå http://sheker.chat.ru èëè
294
  âåðñèÿ êîìïèëÿòîðà. Íà ñàéòå http://sheker.chat.ru èëè
296
  http://c--sphinx.narod.ru ìîæíî íàéòè è êîíñîëüíóþ âåðñèþ êîìïèëÿòîðà.
295
  http://c--sphinx.narod.ru ìîæíî íàéòè è êîíñîëüíóþ âåðñèþ êîìïèëÿòîðà.
297
  Êîíñîëüíàÿ âåðñèÿ êîìïèëÿòîðà ìîæåò ðàáîòàòü òîëüêî â ñðåäå Windows, íî
296
  Êîíñîëüíàÿ âåðñèÿ êîìïèëÿòîðà ìîæåò ðàáîòàòü òîëüêî â ñðåäå Windows, íî
298
  îíà, â îòëè÷èå îò DOS âåðñèè, ìîæåò ðàáîòàòü ñ äëèííûìè èìåíàìè èñõîäíûõ
297
  îíà, â îòëè÷èå îò DOS âåðñèè, ìîæåò ðàáîòàòü ñ äëèííûìè èìåíàìè èñõîäíûõ
299
  ôàéëîâ.
298
  ôàéëîâ.
300
 
299
 
301
      Óñòàíîâèòü êîìïèëÿòîð C-- íà Âàø êîìïüþòåð î÷åíü ïðîñòî. Ïðåäïîëîæèì,
300
      Óñòàíîâèòü êîìïèëÿòîð C-- íà Âàø êîìïüþòåð î÷åíü ïðîñòî. Ïðåäïîëîæèì,
302
  ÷òî Âû ðåøèëè óñòàíîâèòü C-- íà äèñê C. Ñîçäàéòå íà äèñêå C äèðåêòîðèþ
301
  ÷òî Âû ðåøèëè óñòàíîâèòü C-- íà äèñê C. Ñîçäàéòå íà äèñêå C äèðåêòîðèþ
303
  (ïàïêó) ñ èìåíåì C-- èëè ñ äðóãèì, óäîáíûì è ïîíÿòíûì äëÿ Âàñ èìåíåì
302
  (ïàïêó) ñ èìåíåì C-- èëè ñ äðóãèì, óäîáíûì è ïîíÿòíûì äëÿ Âàñ èìåíåì
304
  (íàïðèìåð, ÄÎÑîâñêîé êîìàíäîé: MD C-- èëè äðóãèì äîñòóïíûì Âàì ñïîñîáîì).
303
  (íàïðèìåð, ÄÎÑîâñêîé êîìàíäîé: MD C-- èëè äðóãèì äîñòóïíûì Âàì ñïîñîáîì).
305
  Çàòåì ñ ñàéòà http://sheker.chat.ru èëè http://c--sphinx.narod.ru ñêà÷àéòå
304
  Çàòåì ñ ñàéòà http://sheker.chat.ru èëè http://c--sphinx.narod.ru ñêà÷àéòå
306
  ôàéëû full_c--.zip è ful_c--2.zip è ðàçàðõèâèðóéòå èõ â ýòîé äèðåêòîðèè.
305
  ôàéëû full_c--.zip è ful_c--2.zip è ðàçàðõèâèðóéòå èõ â ýòîé äèðåêòîðèè.
307
  Çàòåì â ôàéëå autoexec.bat ìîæíî ïðîïèñàòü ïóòü ê äèðåêòîðèè ñ
306
  Çàòåì â ôàéëå autoexec.bat ìîæíî ïðîïèñàòü ïóòü ê äèðåêòîðèè ñ
308
  êîìïèëÿòîðîì. È âñå. Êîìïèëÿòîð ãîòîâ ê ðàáîòå. Åñëè Âû äîáàâëÿëè ïóòü ê
307
  êîìïèëÿòîðîì. È âñå. Êîìïèëÿòîð ãîòîâ ê ðàáîòå. Åñëè Âû äîáàâëÿëè ïóòü ê
309
  êîìïèëÿòîðó â ôàéë autoexec.bat, òî Âàì ïðèäåòñÿ ïåðåãðóçèòü îïåðàöèîííóþ
308
  êîìïèëÿòîðó â ôàéë autoexec.bat, òî Âàì ïðèäåòñÿ ïåðåãðóçèòü îïåðàöèîííóþ
310
  ñèñòåìó.
309
  ñèñòåìó.
311
 
310
 
312
      Ïåðåìåííàÿ îêðóæåíèÿ äëÿ êîìïèëÿòîðà C-- çàäàåòñÿ ëèáî èç êîìàíäíîé
311
      Ïåðåìåííàÿ îêðóæåíèÿ äëÿ êîìïèëÿòîðà C-- çàäàåòñÿ ëèáî èç êîìàíäíîé
313
  ñòðîêè ëèáî èç êîìàíäíîãî ôàéëà (ëó÷øå âñåãî åå ïðîïèñàòü â autoexec.bat).
312
  ñòðîêè ëèáî èç êîìàíäíîãî ôàéëà (ëó÷øå âñåãî åå ïðîïèñàòü â autoexec.bat).
314
  Ýòà ïåðåìåííàÿ äîëæíà óêàçûâàòü êîìïèëÿòîðó, ãäå íàõîäÿòñÿ åãî áèáëèîòå÷íûå
313
  Ýòà ïåðåìåííàÿ äîëæíà óêàçûâàòü êîìïèëÿòîðó, ãäå íàõîäÿòñÿ åãî áèáëèîòå÷íûå
315
  ôàéëû. Ïðèìåð:
314
  ôàéëû. Ïðèìåð:
316
 
315
 
317
    set C--=c:\c--\lib
316
    set C--=c:\c--\lib
318
 
317
 
319
  Áîëüøîé íåîáõîäèìîñòè â ïåðåìåííîé îêðóæåíèÿ äëÿ ñåãîäíÿøíåé âåðñèè
318
  Áîëüøîé íåîáõîäèìîñòè â ïåðåìåííîé îêðóæåíèÿ äëÿ ñåãîäíÿøíåé âåðñèè
320
  êîìïèëÿòîðà íåò. Ñóùåñòâóåò íåñêîëüêî äðóãèõ ñïîñîáîâ, óêàçàòü êîìïèëÿòîðó
319
  êîìïèëÿòîðà íåò. Ñóùåñòâóåò íåñêîëüêî äðóãèõ ñïîñîáîâ, óêàçàòü êîìïèëÿòîðó
321
  ìåñòî ðàñïîëîæåíèÿ áèáëèîòåê. Ïîýòîìó îïðåäåëÿòü èëè íå îïðåäåëÿòü
320
  ìåñòî ðàñïîëîæåíèÿ áèáëèîòåê. Ïîýòîìó îïðåäåëÿòü èëè íå îïðåäåëÿòü
322
  ïåðåìåííóþ îêðóæåíèÿ äåëî âàøåãî âêóñà è ïðèâû÷åê.
321
  ïåðåìåííóþ îêðóæåíèÿ äåëî âàøåãî âêóñà è ïðèâû÷åê.
323
Return to contents.
322
Return to contents.
324
 
323
 
325
 
324
 
326
 
325
 
327
2. Óïðàâëåíèå êîìïèëÿöèåé.
326
2. Óïðàâëåíèå êîìïèëÿöèåé.
328
 
327
 
329
  2.1 Ïàðàìåòðû êîìàíäíîé ñòðîêè êîìïèëÿòîðà C--.
328
  2.1 Ïàðàìåòðû êîìàíäíîé ñòðîêè êîìïèëÿòîðà C--.
330
 
329
 
331
 
330
 
332
      Ôîðìàò êîìàíäíîé ñòðîêè âûçîâà êîìïèëÿòîðà C--:
331
      Ôîðìàò êîìàíäíîé ñòðîêè âûçîâà êîìïèëÿòîðà C--:
333
 
332
 
334
  C-- [Ïàðàìåòðû] [ÈÌß INI ÔÀÉËÀ] [ÈÌß ÈÑÕÎÄÍÎÃÎ ÔÀÉËÀ]
333
  C-- [Ïàðàìåòðû] [ÈÌß INI ÔÀÉËÀ] [ÈÌß ÈÑÕÎÄÍÎÃÎ ÔÀÉËÀ]
335
 
334
 
336
      Èìÿ èñõîäíîãî ôàéëà ìîæíî çàäàâàòü áåç ðàñøèðåíèÿ. Êîìïèëÿòîð èùåò
335
      Èìÿ èñõîäíîãî ôàéëà ìîæíî çàäàâàòü áåç ðàñøèðåíèÿ. Êîìïèëÿòîð èùåò
337
  ôàéë ñ ðàñøèðåíèåì c--, cmm, c.
336
  ôàéë ñ ðàñøèðåíèåì c--, cmm, c.
338
 
337
 
339
      Ïàðàìåòðû âûäåëÿþòñÿ ïðåäøåñòâóþùèì ñèìâîëîì / èëè -.
338
      Ïàðàìåòðû âûäåëÿþòñÿ ïðåäøåñòâóþùèì ñèìâîëîì / èëè -.
340
  Èíâåðòèðîâàòü ôóíêöèþ îïöèè ìîæíî çàâåðøàþùèì ñèìâîëîì -.
339
  Èíâåðòèðîâàòü ôóíêöèþ îïöèè ìîæíî çàâåðøàþùèì ñèìâîëîì -.
341
 
340
 
342
  Ñïèñîê ïîääåðæèâàåìûõ ïàðàìåòðîâ:
341
  Ñïèñîê ïîääåðæèâàåìûõ ïàðàìåòðîâ:
343
 
342
 
344
  /0          èñïîëüçîâàòü òîëüêî êîìàíäû 8086/8088 ïðîöåññîðà (óñòàíîâëåíî
343
  /0          èñïîëüçîâàòü òîëüêî êîìàíäû 8086/8088 ïðîöåññîðà (óñòàíîâëåíî
345
              ïî óìîë÷àíèþ ïðè êîìïèëÿöèè 16-áèòíûõ ïðîãðàìì).
344
              ïî óìîë÷àíèþ ïðè êîìïèëÿöèè 16-áèòíûõ ïðîãðàìì).
346
  /1          èñïîëüçîâàòü êîìàíäû 80186 ïðîöåññîðà.
345
  /1          èñïîëüçîâàòü êîìàíäû 80186 ïðîöåññîðà.
347
  /2          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ 80286 ïðîöåññîðà.
346
  /2          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ 80286 ïðîöåññîðà.
348
  /3          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ 80386 ïðîöåññîðà.
347
  /3          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ 80386 ïðîöåññîðà.
349
              (óñòàíîâëåíî ïî óìîë÷àíèþ äëÿ 32-áèòíûõ ïðîãðàìì).
348
              (óñòàíîâëåíî ïî óìîë÷àíèþ äëÿ 32-áèòíûõ ïðîãðàìì).
350
  /4          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ 80486 ïðîöåññîðà.
349
  /4          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ 80486 ïðîöåññîðà.
351
  /5          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium ïðîöåññîðà.
350
  /5          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium ïðîöåññîðà.
352
  /6          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium MMX ïðîöåññîðà.
351
  /6          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium MMX ïðîöåññîðà.
353
  /7          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium Pro ïðîöåññîðà.
352
  /7          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium Pro ïðîöåññîðà.
354
  /8          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium II ïðîöåññîðà.
353
  /8          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium II ïðîöåññîðà.
355
  /9          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium III ïðîöåññîðà
354
  /9          èñïîëüçîâàòü êîìàíäû è îïòèìèçàöèþ äëÿ Pentium III ïðîöåññîðà
356
              (ïîêà íå ðåàëèçîâàíî èç-çà îòñóòñòâèè èíôîðìàöèè).
355
              (ïîêà íå ðåàëèçîâàíî èç-çà îòñóòñòâèè èíôîðìàöèè).
357
  /A          âûðàâíèâàíèå äàííûõ íà ÷åòíûé àäðåñ
356
  /A          âûðàâíèâàíèå äàííûõ íà ÷åòíûé àäðåñ
358
              ïî óìîë÷àíèþ ðàçðåøåíî, ïîääåðæèâàåò èíâåðñèþ
357
              ïî óìîë÷àíèþ ðàçðåøåíî, ïîääåðæèâàåò èíâåðñèþ
359
  /AC         âûðàâíèâàíèå àäðåñà íà÷àëà öèêëîâ
358
  /AC         âûðàâíèâàíèå àäðåñà íà÷àëà öèêëîâ
360
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
359
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
361
              èìååò ñìûñë òîëüêî íà ïðîöåññîðàõ Pentium+
360
              èìååò ñìûñë òîëüêî íà ïðîöåññîðàõ Pentium+
362
  /AL=##      óñòàíîâèòü çíà÷åíèå áàéòà çàïîëíåíèÿ ïðè âûðàâíèâàíèè äàííûõ
361
  /AL=##      óñòàíîâèòü çíà÷åíèå áàéòà çàïîëíåíèÿ ïðè âûðàâíèâàíèè äàííûõ
363
              ïî óìîë÷àíèþ 0.
362
              ïî óìîë÷àíèþ 0.
364
  /AP         âûðàâíèâàíèå àäðåñà íà÷àëà ïðîöåäóð.
363
  /AP         âûðàâíèâàíèå àäðåñà íà÷àëà ïðîöåäóð.
365
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
364
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
366
              èìååò ñìûñë òîëüêî íà ïðîöåññîðàõ Pentium è ëó÷øå
365
              èìååò ñìûñë òîëüêî íà ïðîöåññîðàõ Pentium è ëó÷øå
367
  /ARGC       âñòàâèòü áëîê ðàçáîðà êîìàíäíîé ñòðîêè
366
  /ARGC       âñòàâèòü áëîê ðàçáîðà êîìàíäíîé ñòðîêè
368
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
367
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
369
  /AS         âûðàâíèâàíèå â ñòðóêòóðàõ.
368
  /AS         âûðàâíèâàíèå â ñòðóêòóðàõ.
370
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
369
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
371
  /AT         âñòàâèòü áëîê ïîääåðæêè ATEXIT ïðîöåäóðû
370
  /AT         âñòàâèòü áëîê ïîääåðæêè ATEXIT ïðîöåäóðû
372
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
371
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
373
  /C          âñòàâèòü áëîê èãíîðèðîâàíèÿ CTRL-C
372
  /C          âñòàâèòü áëîê èãíîðèðîâàíèÿ CTRL-C
374
              ïî óìîë÷àíèþ îòêëþ÷åí, ïîääåðæèâàåò èíâåðñèþ
373
              ïî óìîë÷àíèþ îòêëþ÷åí, ïîääåðæèâàåò èíâåðñèþ
375
              èìååò ñìûñë òîëüêî ïîä DOS ïðîãðàììû
374
              èìååò ñìûñë òîëüêî ïîä DOS ïðîãðàììû
376
  /CRI        ïðîâåðÿòü âêëþ÷àåìûå ôàéëû íà ïîâòîðíóþ çàãðóçêó
375
  /CRI        ïðîâåðÿòü âêëþ÷àåìûå ôàéëû íà ïîâòîðíóþ çàãðóçêó
377
              ïî óìîë÷àíèþ âêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
376
              ïî óìîë÷àíèþ âêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
378
  /CPA        î÷èñòêà post-îáëàñòè äàííûõ
377
  /CPA        î÷èñòêà post-îáëàñòè äàííûõ
379
  /D32        ñîçäàòü EXE ôàéë (32 áèòíûé êîä ïîä DOS)
378
  /D32        ñîçäàòü EXE ôàéë (32 áèòíûé êîä ïîä DOS)
380
              ïî óìîë÷àíèþ COM
379
              ïî óìîë÷àíèþ COM
381
  /D=idname   îïðåäåëèòü èäåíòèôèêàòîð äëÿ óñëîâíîé êîìïèëÿöèè
380
  /D=idname   îïðåäåëèòü èäåíòèôèêàòîð äëÿ óñëîâíîé êîìïèëÿöèè
382
              ïî óìîë÷àíèþ íåò
381
              ïî óìîë÷àíèþ íåò
383
  /DBG        ãåíåðèðîâàòü îòëàäî÷íóþ èíôîðìàöèþ
382
  /DBG        ãåíåðèðîâàòü îòëàäî÷íóþ èíôîðìàöèþ
384
              ïî óìîë÷àíèþ íåò
383
              ïî óìîë÷àíèþ íåò
385
  /DE         âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïîñëå óìíîæåíèÿ
384
  /DE         âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïîñëå óìíîæåíèÿ
386
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
385
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
387
  /DLL        ñîçäàòü DLL äëÿ Windows32
386
  /DLL        ñîçäàòü DLL äëÿ Windows32
388
              ïî óìîë÷àíèþ COM
387
              ïî óìîë÷àíèþ COM
389
  /ENV        ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ
388
  /ENV        ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ
390
  /EXE        ñîçäàòü EXE ôàéë äëÿ DOS (ìîäåëü SMALL)
389
  /EXE        ñîçäàòü EXE ôàéë äëÿ DOS (ìîäåëü SMALL)
391
              ïî óìîë÷àíèþ COM
390
              ïî óìîë÷àíèþ COM
392
  /HELP /H /? ñïðàâêà, ýòà èíôîðìàöèÿ
391
  /HELP /H /? ñïðàâêà, ýòà èíôîðìàöèÿ
393
  /IA         èìåíà àññåìáëåðíûõ èíñòðóêöèé ÿâëÿþòñÿ èäåíòèôèêàòîðàìè
392
  /IA         èìåíà àññåìáëåðíûõ èíñòðóêöèé ÿâëÿþòñÿ èäåíòèôèêàòîðàìè
394
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
393
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
395
  /IND=name   èìïîðò èìåí èç ôàéëà name.
394
  /IND=name   èìïîðò èìåí èç ôàéëà name.
396
  /IP=path    çàäàòü ïóòü ïîèñêà âêëþ÷àåìûõ ôàéëîâ
395
  /IP=path    çàäàòü ïóòü ïîèñêà âêëþ÷àåìûõ ôàéëîâ
397
              ïî óìîë÷àíèþ íåò
396
              ïî óìîë÷àíèþ íåò
398
  /IV         èíèöèàëèçèðîâàòü âñå ïåðåìåííûå
397
  /IV         èíèöèàëèçèðîâàòü âñå ïåðåìåííûå
399
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
398
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
400
  /J0         íå äåëàòü íà÷àëüíûé jump íà main()
399
  /J0         íå äåëàòü íà÷àëüíûé jump íà main()
401
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
400
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
402
              Â COM-ôàéëàõ íå ñîçäàåò jmp íà main. Â îñòàëüíûõ íå ñîçäàåòñÿ
401
              Â COM-ôàéëàõ íå ñîçäàåò jmp íà main. Â îñòàëüíûõ íå ñîçäàåòñÿ
403
              áëîê íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû, à óïðàâëåíèå
402
              áëîê íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû, à óïðàâëåíèå
404
              ïåðåäàåòñÿ ñðàçó íà main.
403
              ïåðåäàåòñÿ ñðàçó íà main.
405
  /J1         äåëàòü êîðîòêèé jump íà main()
404
  /J1         äåëàòü êîðîòêèé jump íà main()
406
              ïî óìîë÷àíèþ íåò
405
              ïî óìîë÷àíèþ íåò
407
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
406
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
408
  /J2         äåëàòü jump íà main()
407
  /J2         äåëàòü jump íà main()
409
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
408
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
410
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
409
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
411
  /LAI        ñïèñîê ïîääåðæèâàåìûõ àññåìáëåðíûõ èíñòðóêöèé
410
  /LAI        ñïèñîê ïîääåðæèâàåìûõ àññåìáëåðíûõ èíñòðóêöèé
412
  /LRS        çàãðóæàòü ÷èñëîâûå êîíñòàíòû ÷åðåç ñòåê.
411
  /LRS        çàãðóæàòü ÷èñëîâûå êîíñòàíòû ÷åðåç ñòåê.
413
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
412
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
414
  /LST        ñîçäàòü àññåìáëåðíûé ëèñòèíã
413
  /LST        ñîçäàòü àññåìáëåðíûé ëèñòèíã
415
  /ME         ïîêàçàòü ìîé àäðåñ è èìÿ
414
  /ME         ïîêàçàòü ìîé àäðåñ è èìÿ
416
  /MEOS       ñîçäàòü èñïîëíÿåìûé ôàéë äëÿ MeOS
415
  /MEOS       ñîçäàòü èñïîëíÿåìûé ôàéë äëÿ MeOS
417
              ïî óìîë÷àíèþ COM
416
              ïî óìîë÷àíèþ COM
418
  /MER=##     óñòàíîâèòü ìàêñèìàëüíîå ÷èñëî îøèáîê
417
  /MER=##     óñòàíîâèòü ìàêñèìàëüíîå ÷èñëî îøèáîê
419
              ïî óìîë÷àíèþ 16
418
              ïî óìîë÷àíèþ 16
420
  /MIF=file   îïðåäåëèòü èìÿ ãëàâíîãî êîìïèëèðóåìîãî ôàéëà
419
  /MIF=file   îïðåäåëèòü èìÿ ãëàâíîãî êîìïèëèðóåìîãî ôàéëà
421
  /NS         çàïðåòèòü ïîäêëþ÷àòü stub ôàéëîâ
420
  /NS         çàïðåòèòü ïîäêëþ÷àòü stub ôàéëîâ
422
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
421
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
423
  /NW=##      âûáîðî÷íîå îòêëþ÷åíèå ïðåäóïðåæäåíèé
422
  /NW=##      âûáîðî÷íîå îòêëþ÷åíèå ïðåäóïðåæäåíèé
424
  /OBJ        ñîçäàòü OBJ ôàéë
423
  /OBJ        ñîçäàòü OBJ ôàéë
425
              òîëüêî 16 áèòíûé êîä.
424
              òîëüêî 16 áèòíûé êîä.
426
              ïî óìîë÷àíèþ COM
425
              ïî óìîë÷àíèþ COM
427
  /OC         îïòèìèçèðîâàòü ïî ðàçìåðó êîäà
426
  /OC         îïòèìèçèðîâàòü ïî ðàçìåðó êîäà
428
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
427
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
429
  /ON         îïòèìèçàöèÿ ÷èñåë
428
  /ON         îïòèìèçàöèÿ ÷èñåë
430
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
429
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
431
  /OS         îïòèìèçàöèÿ ïî ñêîðîñòè âûïîëíåíèÿ
430
  /OS         îïòèìèçàöèÿ ïî ñêîðîñòè âûïîëíåíèÿ
432
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
431
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
433
  /OST        îïòèìèçàöèÿ ñòðîêîâûõ èäåíòèôèêàòîðîâ
432
  /OST        îïòèìèçàöèÿ ñòðîêîâûõ èäåíòèôèêàòîðîâ
434
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
433
              ïî óìîë÷àíèþ îòêëþ÷åíî, ïîääåðæèâàåò èíâåðñèþ
435
  /P          âñòàâèòü áëîê ðàçáîðêè êîìàíäíîé ñòðîêè
434
  /P          âñòàâèòü áëîê ðàçáîðêè êîìàíäíîé ñòðîêè
436
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
435
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
437
  /R          âñòàâèòü áëîê óìåíüøàþùèé ðàçìåð äîñòóïíîé ïàìÿòè.
436
  /R          âñòàâèòü áëîê óìåíüøàþùèé ðàçìåð äîñòóïíîé ïàìÿòè.
438
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
437
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
439
              èìååò ñìûñë òîëüêî â DOS-ôàéëàõ
438
              èìååò ñìûñë òîëüêî â DOS-ôàéëàõ
440
  /S=#####    óñòàíîâèòü ðàçìåð ñòåêà
439
  /S=#####    óñòàíîâèòü ðàçìåð ñòåêà
441
              ïî óìîë÷àíèþ 2048
440
              ïî óìîë÷àíèþ 2048
442
  /SA=####    íà÷àëüíîå ñìåùåíèå àäðåñà çàïóñêà ïðîãðàììû
441
  /SA=####    íà÷àëüíîå ñìåùåíèå àäðåñà çàïóñêà ïðîãðàììû
443
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ, ïî óìîë÷àíèþ 0x100
442
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ, ïî óìîë÷àíèþ 0x100
444
  /SOBJ       ñîçäàòü âåäîìûé OBJ ôàéë
443
  /SOBJ       ñîçäàòü âåäîìûé OBJ ôàéë
445
              ïî óìîë÷àíèþ COM
444
              ïî óìîë÷àíèþ COM
446
  /STM        ïåðåíåñòè áëîê startup êîäà â ïðîöåäóðó main
445
  /STM        ïåðåíåñòè áëîê startup êîäà â ïðîöåäóðó main
447
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
446
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
448
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
447
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
449
  /SUV=####   íà÷àëüíûé àäðåñ íå èíèöèàëèçèðîâàííûõ ïåðåìåííûõ, ïðè
448
  /SUV=####   íà÷àëüíûé àäðåñ íå èíèöèàëèçèðîâàííûõ ïåðåìåííûõ, ïðè
450
              èñïîëüçîâàíèè èìè startup êîäà.
449
              èñïîëüçîâàíèè èìè startup êîäà.
451
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ, ïî óìîë÷àíèþ ðàâåí /SA
450
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ, ïî óìîë÷àíèþ ðàâåí /SA
452
  /SYM        íàäñòðîéêà äëÿ COM ôàéëà
451
  /SYM        íàäñòðîéêà äëÿ COM ôàéëà
453
              ïî óìîë÷àíèþ COM
452
              ïî óìîë÷àíèþ COM
454
  /SYS        ñîçäàòü äðàéâåð óñòðîéñòâ (SYS)
453
  /SYS        ñîçäàòü äðàéâåð óñòðîéñòâ (SYS)
455
              ïî óìîë÷àíèþ COM
454
              ïî óìîë÷àíèþ COM
456
  /TEXE       ñîçäàòü EXE ôàéë äëÿ DOS (ìîäåëü TINY)
455
  /TEXE       ñîçäàòü EXE ôàéë äëÿ DOS (ìîäåëü TINY)
457
              ïî óìîë÷àíèþ COM
456
              ïî óìîë÷àíèþ COM
458
  /UL         èñïîëüçîâàòü lea ïðè îïòèìèçàöèè ñëîæåíèÿ ðåãèñòðîâ.
457
  /UL         èñïîëüçîâàòü lea ïðè îïòèìèçàöèè ñëîæåíèÿ ðåãèñòðîâ.
459
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
458
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
460
  /UST        èñïîëüçîâàòü startup êîä äëÿ ïåðåìåííûõ.
459
  /UST        èñïîëüçîâàòü startup êîä äëÿ ïåðåìåííûõ.
461
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
460
              èìååò ñìûñë òîëüêî â COM-ôàéëàõ
462
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
461
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
463
  /W          ðàçðåøèòü ïðåäóïðåæäåíèÿ
462
  /W          ðàçðåøèòü ïðåäóïðåæäåíèÿ
464
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
463
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
465
  /W32        ñîçäàòü EXE ôàéë äëÿ Windows32 GUI
464
  /W32        ñîçäàòü EXE ôàéë äëÿ Windows32 GUI
466
              ïî óìîë÷àíèþ COM
465
              ïî óìîë÷àíèþ COM
467
  /W32C       ñîçäàòü EXE ôàéë äëÿ Windows32 console
466
  /W32C       ñîçäàòü EXE ôàéë äëÿ Windows32 console
468
              ïî óìîë÷àíèþ COM
467
              ïî óìîë÷àíèþ COM
469
  /WBSS       ïîìåùàòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíóþ ñåêöèþ.
468
  /WBSS       ïîìåùàòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíóþ ñåêöèþ.
470
              ïî óìîë÷àíèþ äëÿ /w32 ðàçðåøåíî, äëÿ îñòàëüíûõ çàïðåùåíî.
469
              ïî óìîë÷àíèþ äëÿ /w32 ðàçðåøåíî, äëÿ îñòàëüíûõ çàïðåùåíî.
471
              ïîääåðæèâàåò èíâåðñèþ
470
              ïîääåðæèâàåò èíâåðñèþ
472
  /WF=file    ïåðåíàïðàâèòü âûâîä ïðåäóïðåæäåíèé â ôàéë.
471
  /WF=file    ïåðåíàïðàâèòü âûâîä ïðåäóïðåæäåíèé â ôàéë.
473
              ïî óìîë÷àíèþ íåò
472
              ïî óìîë÷àíèþ íåò
474
  /WFA        èñïîëüçîâàòü áûñòðûå âûçîâû API ïðîöåäóð
473
  /WFA        èñïîëüçîâàòü áûñòðûå âûçîâû API ïðîöåäóð
475
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
474
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
476
              òîëüêî ïîä windows
475
              òîëüêî ïîä windows
477
  /WFU        ñîçäàâàòü òàáëèöó ïåðåìåùåíèé (äëÿ Windows32)
476
  /WFU        ñîçäàâàòü òàáëèöó ïåðåìåùåíèé (äëÿ Windows32)
478
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
477
              ïî óìîë÷àíèþ íåò, ïîääåðæèâàåò èíâåðñèþ
479
              òîëüêî ïîä windows
478
              òîëüêî ïîä windows
480
              äëÿ DLL óñòàíàâëèâàåòñÿ â äà
479
              äëÿ DLL óñòàíàâëèâàåòñÿ â äà
481
  /WIB=#####  óñòàíîâèòü àäðåñ image base
480
  /WIB=#####  óñòàíîâèòü àäðåñ image base
482
              ïî óìîë÷àíèþ 0x400000
481
              ïî óìîë÷àíèþ 0x400000
483
  /WMB        ñîçäàâàòü Windows-ôàéë ñ åäèíûì áëîêîì
482
  /WMB        ñîçäàâàòü Windows-ôàéë ñ åäèíûì áëîêîì
484
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
483
              ïî óìîë÷àíèþ äà, ïîääåðæèâàåò èíâåðñèþ
485
              òîëüêî ïîä windows
484
              òîëüêî ïîä windows
486
              äëÿ DLL óñòàíàâëèâàåòñÿ â íåò
485
              äëÿ DLL óñòàíàâëèâàåòñÿ â íåò
487
  /WORDS      âûäàòü ñïèñîê çàðåçåðâèðîâàííûõ èäåíòèôèêàòîðîâ
486
  /WORDS      âûäàòü ñïèñîê çàðåçåðâèðîâàííûõ èäåíòèôèêàòîðîâ
488
  /WS=name    óêàçûâàåò èìÿ ôàéëà èñïîëüçóåìîãî â êà÷åñòâå stub ïîä windows.
487
  /WS=name    óêàçûâàåò èìÿ ôàéëà èñïîëüçóåìîãî â êà÷åñòâå stub ïîä windows.
489
  /X          çàïðåòèòü âñòàâëÿòü â êîä SPHINXC-- ñèãíàòóðó
488
  /X          çàïðåòèòü âñòàâëÿòü â êîä SPHINXC-- ñèãíàòóðó
490
              ïî óìîë÷àíèþ ðàçðåøåíî, ïîääåðæèâàåò èíâåðñèþ
489
              ïî óìîë÷àíèþ ðàçðåøåíî, ïîääåðæèâàåò èíâåðñèþ
491
              îòêëþ÷àåòñÿ åñëè åñòü J0
490
              îòêëþ÷àåòñÿ åñëè åñòü J0
492
 
491
 
493
      Ïðèìå÷àíèå: âûðàæåíèå ïîääåðæèâàåò èíâåðñèþ îçíà÷àåò, ÷òî äëÿ äàííîé
492
      Ïðèìå÷àíèå: âûðàæåíèå ïîääåðæèâàåò èíâåðñèþ îçíà÷àåò, ÷òî äëÿ äàííîé
494
  îïöèè ìîæíî èñïîëüçîâàòü è ïðîòèâîïîëîæíîå çíà÷åíèå ñ ïîìîùüþ ñèìâîëà -
493
  îïöèè ìîæíî èñïîëüçîâàòü è ïðîòèâîïîëîæíîå çíà÷åíèå ñ ïîìîùüþ ñèìâîëà -
495
  ïîñëå îïöèè. Ïðèìåð:
494
  ïîñëå îïöèè. Ïðèìåð:
496
 
495
 
497
  /WFA-
496
  /WFA-
498
 
497
 
499
       Ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî ïèñàòü êàê áîëüøèìè, òàê è
498
       Ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî ïèñàòü êàê áîëüøèìè, òàê è
500
  ìàëåíüêèìè áóêâàìè.
499
  ìàëåíüêèìè áóêâàìè.
501
Return to contents.
500
Return to contents.
502
 
501
 
503
 
502
 
504
 
503
 
505
    2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
504
    2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
506
 
505
 
507
 
506
 
508
        Ïðè âêëþ÷åíèè â êîìàíäíóþ ñòðîêó îïöèè /ON èëè â ôàéë C--.INI ñòðî÷êè
507
        Ïðè âêëþ÷åíèè â êîìàíäíóþ ñòðîêó îïöèè /ON èëè â ôàéë C--.INI ñòðî÷êè
509
    ON, êîìïèëÿòîð áóäåò àíàëèçèðîâàòü îïåðàöèè íàä ÷èñëàìè è ãäå ýòî
508
    ON, êîìïèëÿòîð áóäåò àíàëèçèðîâàòü îïåðàöèè íàä ÷èñëàìè è ãäå ýòî
510
    ìîæíî, ñîêðàùàòü ÷èñëî îïåðàöèé. Íàïðèìåð:
509
    ìîæíî, ñîêðàùàòü ÷èñëî îïåðàöèé. Íàïðèìåð:
511
 
510
 
512
     Ñòðîêà äî îïòèìèçàöèè  | Ïîñëå îïòèìèçàöèè
511
     Ñòðîêà äî îïòèìèçàöèè  | Ïîñëå îïòèìèçàöèè
513
    -----------------------------------------------
512
    -----------------------------------------------
514
      AX = var + 7 - 3;     | AX = var + 4;
513
      AX = var + 7 - 3;     | AX = var + 4;
515
      AX = var * 2 * 5;     | AX = var * 10;
514
      AX = var * 2 * 5;     | AX = var * 10;
516
      AX = var * 2 / 4;     | AX = var / 2;
515
      AX = var * 2 / 4;     | AX = var / 2;
517
      AX = var * 10 / 2;    | AX = var * 5;
516
      AX = var * 10 / 2;    | AX = var * 5;
518
      AX = var / 2 / 3;     | AX = var / 6;
517
      AX = var / 2 / 3;     | AX = var / 6;
519
      AX = var / 4 * 8;     | AX = var * 2;
518
      AX = var / 4 * 8;     | AX = var * 2;
520
      AX = var / 16 * 16;   | AX = var;
519
      AX = var / 16 * 16;   | AX = var;
521
 
520
 
522
        Âîçìîæíûå îòðèöàòåëüíûå ïîñëåäñòâèÿ:
521
        Âîçìîæíûå îòðèöàòåëüíûå ïîñëåäñòâèÿ:
523
        Ïðèìåíåíèå ýòîé îïòèìèçàöèè ìîæåò èìåòü è íåãàòèâíûå ïîñëåäñòâèÿ.
522
        Ïðèìåíåíèå ýòîé îïòèìèçàöèè ìîæåò èìåòü è íåãàòèâíûå ïîñëåäñòâèÿ.
524
    Íàïðèìåð, åñëè Âàì íóæíî âûðîâíÿòü çíà÷åíèå ïåðåìåííîé íà ãðàíèöó
523
    Íàïðèìåð, åñëè Âàì íóæíî âûðîâíÿòü çíà÷åíèå ïåðåìåííîé íà ãðàíèöó
525
    ïàðàãðàôà, Âû íàïèøèòå ñòðîêó:
524
    ïàðàãðàôà, Âû íàïèøèòå ñòðîêó:
526
 
525
 
527
    var = var / 16 * 16;
526
    var = var / 16 * 16;
528
 
527
 
529
    íî ïîñëå îïòèìèçàöèè áóäåò
528
    íî ïîñëå îïòèìèçàöèè áóäåò
530
 
529
 
531
    var = var;
530
    var = var;
532
 
531
 
533
    ò.å. âûðàâíèâàíèå íå áóäåò  ïðîèçâåäåíî. Ýòîãî ìîæíî èçáåæàòü, åñëè
532
    ò.å. âûðàâíèâàíèå íå áóäåò  ïðîèçâåäåíî. Ýòîãî ìîæíî èçáåæàòü, åñëè
534
    ðàçáèòü ýòî âûðàæåíèå íà äâà:
533
    ðàçáèòü ýòî âûðàæåíèå íà äâà:
535
 
534
 
536
    var = var / 16;
535
    var = var / 16;
537
    var = var * 16;
536
    var = var * 16;
538
 
537
 
539
    òîãäà îïòèìèçàöèÿ íå áóäåò ïðîèçâåäåíà. Íî äëÿ ïîëó÷åíèÿ áîëåå
538
    òîãäà îïòèìèçàöèÿ íå áóäåò ïðîèçâåäåíà. Íî äëÿ ïîëó÷åíèÿ áîëåå
540
    êîìïàêòíîãî êîäà ëó÷øå áóäåò çàïèñàòü òàê:
539
    êîìïàêòíîãî êîäà ëó÷øå áóäåò çàïèñàòü òàê:
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;
546
Return to contents.
545
Return to contents.
547
 
546
 
548
 
547
 
549
 
548
 
550
    2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
549
    2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
551
 
550
 
552
 
551
 
553
        Êàê èçâåñòíî, ïîñëå óìíîæåíèÿ ìîæåò ïðîèçîéòè ïåðåïîëíåíèå, ò.å
552
        Êàê èçâåñòíî, ïîñëå óìíîæåíèÿ ìîæåò ïðîèçîéòè ïåðåïîëíåíèå, ò.å
554
    ðàçðÿäíîñòü ðåçóëüòàòà ìîæåò ïðåâûñèòü ðàçðÿäíîñòü èñõîäíûõ îïåðàíäîâ è
553
    ðàçðÿäíîñòü ðåçóëüòàòà ìîæåò ïðåâûñèòü ðàçðÿäíîñòü èñõîäíûõ îïåðàíäîâ è
555
    ïðîèçîéäåò èñêàæåíèå ðåçóëüòàòà. ×àñòè÷íî ðåøèòü ýòó ïðîáëåìó Âàì ïîìîæåò
554
    ïðîèçîéäåò èñêàæåíèå ðåçóëüòàòà. ×àñòè÷íî ðåøèòü ýòó ïðîáëåìó Âàì ïîìîæåò
556
    îïöèÿ êîìàíäíîé ñòðîêè /DE èëè ñòðîêà DE â ôàéëå C--.INI. Ïîñëå êîìàíäû
555
    îïöèÿ êîìàíäíîé ñòðîêè /DE èëè ñòðîêà DE â ôàéëå C--.INI. Ïîñëå êîìàíäû
557
    óìíîæåíèÿ êîìïèëÿòîð áóäåò ïðîñìàòðèâàòü îñòàòîê ñòðîêè è åñëè îáíàðóæèò,
556
    óìíîæåíèÿ êîìïèëÿòîð áóäåò ïðîñìàòðèâàòü îñòàòîê ñòðîêè è åñëè îáíàðóæèò,
558
    ÷òî ðàñøèðåíèå ðàçðÿäíîñòè ìîæåò áûòü âîñòðåáîâàíî (âîñòðåáîâàòü
557
    ÷òî ðàñøèðåíèå ðàçðÿäíîñòè ìîæåò áûòü âîñòðåáîâàíî (âîñòðåáîâàòü
559
    ðàñøèðåííóþ ðàçðÿäíîñòü ìîãóò îïåðàöèè äåëåíèÿ è âû÷èñëåíèÿ îñòàòêà), òî
558
    ðàñøèðåííóþ ðàçðÿäíîñòü ìîãóò îïåðàöèè äåëåíèÿ è âû÷èñëåíèÿ îñòàòêà), òî
560
    áóäóò ïðèíÿòû ìåðû ïî åå ñîõðàíåíèþ. Íàïðèìåð:
559
    áóäóò ïðèíÿòû ìåðû ïî åå ñîõðàíåíèþ. Íàïðèìåð:
561
 
560
 
562
      a = b*c+d/e; //çäåñü áóäåò âêëþ÷åíà ïîääåðæêà ðàñøèðåíèÿ ðàçðÿäíîñòè
561
      a = b*c+d/e; //çäåñü áóäåò âêëþ÷åíà ïîääåðæêà ðàñøèðåíèÿ ðàçðÿäíîñòè
563
      a = b*c+d*e; //çäåñü ïîääåðæêè ðàñøèðåíèÿ ðàçðÿäíîñòè íå áóäåò.
562
      a = b*c+d*e; //çäåñü ïîääåðæêè ðàñøèðåíèÿ ðàçðÿäíîñòè íå áóäåò.
564
 
563
 
565
        Îäíàêî ïðèìåíåíèå ýòîé îïöèè ìîæåò èìåòü è íåãàòèâíûå ïîñëåäñòâèÿ.
564
        Îäíàêî ïðèìåíåíèå ýòîé îïöèè ìîæåò èìåòü è íåãàòèâíûå ïîñëåäñòâèÿ.
566
    Ïîêàæó ýòî íà ïðèìåðå:
565
    Ïîêàæó ýòî íà ïðèìåðå:
567
 
566
 
568
    ïóñòü èìååòñÿ âûðàæåíèå
567
    ïóñòü èìååòñÿ âûðàæåíèå
569
 
568
 
570
      a = b * c / d;
569
      a = b * c / d;
571
 
570
 
572
    åñëè çíà÷åíèÿ ïåðåìåííûõ b = 0xC000, c = 0x1000, d=0x10, ïîñëå çàïóñêà
571
    åñëè çíà÷åíèÿ ïåðåìåííûõ b = 0xC000, c = 0x1000, d=0x10, ïîñëå çàïóñêà
573
    òàêàÿ ïðîãðàììà çàâèñíåò ñ ñîîáùåíèåì î òîì, ÷òî ïðîèçîøëî ïåðåïîëíåíèå
572
    òàêàÿ ïðîãðàììà çàâèñíåò ñ ñîîáùåíèåì î òîì, ÷òî ïðîèçîøëî ïåðåïîëíåíèå
574
    ïðè äåëåíèè.
573
    ïðè äåëåíèè.
575
Return to contents.
574
Return to contents.
576
 
575
 
577
 
576
 
578
 
577
 
579
    2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
578
    2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
580
 
579
 
581
 
580
 
582
        Îòëè÷èå ýòîãî îáðàáîò÷èêà êîìàíäíîé ñòðîêè îò parsecommandline
581
        Îòëè÷èå ýòîãî îáðàáîò÷èêà êîìàíäíîé ñòðîêè îò parsecommandline
583
    çàêëþ÷àåòñÿ â òîì, ÷òî ïðè âûçîâå PARAMSTR(0); Âû ïîëó÷èòå àäðåñ ñòðîêè â
582
    çàêëþ÷àåòñÿ â òîì, ÷òî ïðè âûçîâå PARAMSTR(0); Âû ïîëó÷èòå àäðåñ ñòðîêè â
584
    êîòîðîé óêàçàí ïóòü è èìÿ çàïóùåííîé ïðîãðàììû. Ñëåäóþùèå âûçîâû ýòîé
583
    êîòîðîé óêàçàí ïóòü è èìÿ çàïóùåííîé ïðîãðàììû. Ñëåäóþùèå âûçîâû ýòîé
585
    ïðîöåäóðû ñ óâåëè÷èâàþùèìñÿ ïàðàìåòðîì áóäóò âîçâðàùàòü àäðåñà ñëîâ
584
    ïðîöåäóðû ñ óâåëè÷èâàþùèìñÿ ïàðàìåòðîì áóäóò âîçâðàùàòü àäðåñà ñëîâ
586
    êîìàíäíîé ñòðîêè. À âûçîâ ïðîöåäóðû PARAMCOUNT âåðíåò Âàì ÷èñëî ñëîâ â
585
    êîìàíäíîé ñòðîêè. À âûçîâ ïðîöåäóðû PARAMCOUNT âåðíåò Âàì ÷èñëî ñëîâ â
587
    êîìàíäíîé ñòðîêå ïëþñ îäèí.
586
    êîìàíäíîé ñòðîêå ïëþñ îäèí.
588
 
587
 
589
        Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè âêëþ÷àåòñÿ äèðåêòèâîé
588
        Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè âêëþ÷àåòñÿ äèðåêòèâîé
590
    ?argc TRUE èëè èç êîìàíäíîé ñòðîêè êîìïèëÿòîðà êëþ÷îì /argc èëè
589
    ?argc TRUE èëè èç êîìàíäíîé ñòðîêè êîìïèëÿòîðà êëþ÷îì /argc èëè
591
    ñòðî÷êîé argc â ôàéëå C--.INI.
590
    ñòðî÷êîé argc â ôàéëå C--.INI.
592
Return to contents.
591
Return to contents.
593
 
592
 
594
 
593
 
595
 
594
 
596
    2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
595
    2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
597
 
596
 
598
 
597
 
599
        Åñëè ýòîò ðåæèì îïòèìèçàöèè áóäåò àêòèâèçèðîâàí, òî êîìïèëÿòîð áóäåò
598
        Åñëè ýòîò ðåæèì îïòèìèçàöèè áóäåò àêòèâèçèðîâàí, òî êîìïèëÿòîð áóäåò
600
    çàïîìèíàòü âñå ñòðîêîâûå êîíñòàíòû è ïðè îáíàðóæåíèè îäèíàêîâûõ â êîä
599
    çàïîìèíàòü âñå ñòðîêîâûå êîíñòàíòû è ïðè îáíàðóæåíèè îäèíàêîâûõ â êîä
601
    ôàéëà íå áóäåò âñòàâëåíà ïîâòîðíàÿ ñòðîêîâàÿ êîíñòàíòà, à áóäåò ñäåëàíà
600
    ôàéëà íå áóäåò âñòàâëåíà ïîâòîðíàÿ ñòðîêîâàÿ êîíñòàíòà, à áóäåò ñäåëàíà
602
    ññûëêà íà ïåðâóþ, îáíàðóæåííóþ ðàíåå ñòðîêîâóþ êîíñòàíòó. Â îïòèìèçàöèè
601
    ññûëêà íà ïåðâóþ, îáíàðóæåííóþ ðàíåå ñòðîêîâóþ êîíñòàíòó. Â îïòèìèçàöèè
603
    ó÷àñòâóþò òîëüêî íåèìåíîâàííûå ñòðîêîâûå êîíñòàíòû. Ò.å. åñëè ìàññèâ èëè
602
    ó÷àñòâóþò òîëüêî íåèìåíîâàííûå ñòðîêîâûå êîíñòàíòû. Ò.å. åñëè ìàññèâ èëè
604
    ñòðóêòóðà áóäåò èíèöèàëèçèðîâàíû ñòðîêîé, òî òàêàÿ ñòðîêà íå áóäåò
603
    ñòðóêòóðà áóäåò èíèöèàëèçèðîâàíû ñòðîêîé, òî òàêàÿ ñòðîêà íå áóäåò
605
    ó÷àñòâîâàòü â ïðîöåññå èíèöèàëèçàöèè, òàê ýòà ñòðîêà ìîæåò áûòü èçìåíåíà
604
    ó÷àñòâîâàòü â ïðîöåññå èíèöèàëèçàöèè, òàê ýòà ñòðîêà ìîæåò áûòü èçìåíåíà
606
    â ïðîöåññå ðàáîòû ïðîãðàììû. Ïðèìåð:
605
    â ïðîöåññå ðàáîòû ïðîãðàììû. Ïðèìåð:
607
 
606
 
608
      char var="test";  //ýòà ñòðîêà íå áóäåò ó÷àñòâîâàòü â ïðîöåññå
607
      char var="test";  //ýòà ñòðîêà íå áóäåò ó÷àñòâîâàòü â ïðîöåññå
609
                        //îïòèìèçàöèè.
608
                        //îïòèìèçàöèè.
610
 
609
 
611
      void proc(){
610
      void proc(){
612
        WRITESTR("test");	// ýòà ñòðîêà áóäåò ó÷àñòâîâàòü â îïòèìèçàöèè.
611
        WRITESTR("test");       // ýòà ñòðîêà áóäåò ó÷àñòâîâàòü â îïòèìèçàöèè.
613
        AX="test";          // ïåðåìåííîé AX áóäåò ïðèñâîåí àäðåñ ñòðîêè,
612
        AX="test";          // ïåðåìåííîé AX áóäåò ïðèñâîåí àäðåñ ñòðîêè,
614
                            // êîòîðàÿ áûëà âñòàâëåíà â êîä ïðîãðàììû â
613
                            // êîòîðàÿ áûëà âñòàâëåíà â êîä ïðîãðàììû â
615
                            // ïðåäûäóùåé ñòðîêå.
614
                            // ïðåäûäóùåé ñòðîêå.
616
      }
615
      }
617
 
616
 
618
        Îáî âñåõ ñëó÷àÿõ îáíàðóæåíèÿ ïîâòîðíîé ñòðîêè êîìïèëÿòîð áóäåò
617
        Îáî âñåõ ñëó÷àÿõ îáíàðóæåíèÿ ïîâòîðíîé ñòðîêè êîìïèëÿòîð áóäåò
619
    âûäàâàòü ïðåäóïðåæäåíèÿ.
618
    âûäàâàòü ïðåäóïðåæäåíèÿ.
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-.
624
Return to contents.
623
Return to contents.
625
 
624
 
626
 
625
 
627
 
626
 
628
    2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
627
    2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
629
 
628
 
630
 
629
 
631
        Åñëè Âû íàïèñàëè ïðîãðàììó, êîòîðàÿ ìîæåò êîìïèëèðîâàòüñÿ ïî ðàçíîìó,
630
        Åñëè Âû íàïèñàëè ïðîãðàììó, êîòîðàÿ ìîæåò êîìïèëèðîâàòüñÿ ïî ðàçíîìó,
632
    â çàâèñèìîñòè îò ñîñòîÿíèÿ íåêîòîðûõ èäåíòèôèêàòîðîâ (èñïîëüçóåòñÿ ðåæèì
631
    â çàâèñèìîñòè îò ñîñòîÿíèÿ íåêîòîðûõ èäåíòèôèêàòîðîâ (èñïîëüçóåòñÿ ðåæèì
633
    óñëîâíîé êîìïèëÿöèè), òî Âàì î÷åíü ìîæåò ïðèãîäèòñÿ ýòà îïöèÿ.
632
    óñëîâíîé êîìïèëÿöèè), òî Âàì î÷åíü ìîæåò ïðèãîäèòñÿ ýòà îïöèÿ.
634
    Óñòàíàâëèâàÿ ñ êîìàíäíîé ñòðîêè ðàçëè÷íûå èäåíòèôèêàòîðû, Âû ìîæåòå
633
    Óñòàíàâëèâàÿ ñ êîìàíäíîé ñòðîêè ðàçëè÷íûå èäåíòèôèêàòîðû, Âû ìîæåòå
635
    ïîëó÷àòü ðàçëè÷íûå âàðèàíòû ïðîãðàììû, íå ðåäàêòèðóÿ èñõîäíûé òåêñò
634
    ïîëó÷àòü ðàçëè÷íûå âàðèàíòû ïðîãðàììû, íå ðåäàêòèðóÿ èñõîäíûé òåêñò
636
    ïðîãðàììû.
635
    ïðîãðàììû.
637
 
636
 
638
        Èäåíòèôèêàòîð ââîäèòñÿ ñ êîìàíäíîé ñòðîêè êëþ÷îì /d=idname.
637
        Èäåíòèôèêàòîð ââîäèòñÿ ñ êîìàíäíîé ñòðîêè êëþ÷îì /d=idname.
639
Return to contents.
638
Return to contents.
640
 
639
 
641
 
640
 
642
 
641
 
643
    2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
642
    2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
644
 
643
 
645
 
644
 
646
        Ñòàëî âîçìîæíûì èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè áåç ïðåôèêñà $
645
        Ñòàëî âîçìîæíûì èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè áåç ïðåôèêñà $
647
    è âíå áëîêà asm. Ýòîò ðåæèì âêëþ÷àåòñÿ: ñ êîìàíäíîé ñòðîêè îïöèåé /ia;
646
    è âíå áëîêà asm. Ýòîò ðåæèì âêëþ÷àåòñÿ: ñ êîìàíäíîé ñòðîêè îïöèåé /ia;
648
    â ôàéëå êîíôèãóðàöèè ñòðîêîé ia èëè äèðåêòèâîé #pragma option ia.
647
    â ôàéëå êîíôèãóðàöèè ñòðîêîé ia èëè äèðåêòèâîé #pragma option ia.
649
 
648
 
650
        Êîãäà ýòîò ðåæèì âêëþ÷åí, âñå èìåíà àññåìáëåðíûõ èíñòðóêöèé ñòàíîâÿòñÿ
649
        Êîãäà ýòîò ðåæèì âêëþ÷åí, âñå èìåíà àññåìáëåðíûõ èíñòðóêöèé ñòàíîâÿòñÿ
651
    çàðåçåðâèðîâàííûìè ñëîâàìè, ò.å. Âû íå ñìîæåòå ýòè èìåíà èñïîëüçîâàòü â
650
    çàðåçåðâèðîâàííûìè ñëîâàìè, ò.å. Âû íå ñìîæåòå ýòè èìåíà èñïîëüçîâàòü â
652
    êà÷åñòâå èìåí ïåðåìåííûõ èëè ïðîöåäóð. Àññåìáëåðíûå èíñòðóêöèè êîìïèëÿòîð
651
    êà÷åñòâå èìåí ïåðåìåííûõ èëè ïðîöåäóð. Àññåìáëåðíûå èíñòðóêöèè êîìïèëÿòîð
653
    ðàñïîçíàåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè
652
    ðàñïîçíàåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè
654
    áóêâàìè.
653
    áóêâàìè.
655
Return to contents.
654
Return to contents.
656
 
655
 
657
 
656
 
658
 
657
 
659
    2.1.7 /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.
658
    2.1.7 /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.
660
 
659
 
661
 
660
 
662
        ×àùå âñåãî, ïîâòîðíî âêëþ÷àòü ôàéë â êîìïèëèðóåìûé ïðîåêò, íåò
661
        ×àùå âñåãî, ïîâòîðíî âêëþ÷àòü ôàéë â êîìïèëèðóåìûé ïðîåêò, íåò
663
    íåîáõîäèìîñòè, íî ýòî èíîãäà ïðîèñõîäèò èç-çà òîãî, ÷òî íåêîòîðûå
662
    íåîáõîäèìîñòè, íî ýòî èíîãäà ïðîèñõîäèò èç-çà òîãî, ÷òî íåêîòîðûå
664
    âêëþ÷àåìûå ôàéëû ñàìè âêëþ÷àþò äðóãèå ôàéëû. ×òîáû ýòîãî íå ïðîèñõîäèëî
663
    âêëþ÷àåìûå ôàéëû ñàìè âêëþ÷àþò äðóãèå ôàéëû. ×òîáû ýòîãî íå ïðîèñõîäèëî
665
    ïðèõîäèòñÿ äåëàòü ïðîâåðêó íà ïîâòîðíóþ çàãðóçêó ôàéëà. Òåïåðü ýòó
664
    ïðèõîäèòñÿ äåëàòü ïðîâåðêó íà ïîâòîðíóþ çàãðóçêó ôàéëà. Òåïåðü ýòó
666
    ôóíêöèþ áåðåò íà ñåáÿ êîìïèëÿòîð è ó Âàñ îòïàäàåò íåîáõîäèìîñòü äåëàòü
665
    ôóíêöèþ áåðåò íà ñåáÿ êîìïèëÿòîð è ó Âàñ îòïàäàåò íåîáõîäèìîñòü äåëàòü
667
    ýòó ïðîâåðêó.
666
    ýòó ïðîâåðêó.
668
 
667
 
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.
675
 
674
 
676
 
675
 
677
 
676
 
678
    2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
677
    2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
679
 
678
 
680
 
679
 
681
        Åñëè Âû õîòèòå â ñâîåé ïðîãðàììå èñïîëüçîâàòü DLL, äëÿ êîòîðîé íåò
680
        Åñëè Âû õîòèòå â ñâîåé ïðîãðàììå èñïîëüçîâàòü DLL, äëÿ êîòîðîé íåò
682
    çàãîëîâî÷íîãî ôàéëà ñ îïèñàíèåì ïðîöåäóð, òî êîìïèëÿòîð ìîæåò
681
    çàãîëîâî÷íîãî ôàéëà ñ îïèñàíèåì ïðîöåäóð, òî êîìïèëÿòîð ìîæåò
683
    èìïîðòèðîâàòü èìåíà èç ýòîé DLL. Äëÿ ýòîãî Âàì íàäî óêàçàòü èìÿ ýòîé
682
    èìïîðòèðîâàòü èìåíà èç ýòîé DLL. Äëÿ ýòîãî Âàì íàäî óêàçàòü èìÿ ýòîé
684
    áèáëèîòåêè ëèáî ÷åðåç îïöèþ êîìàíäíîé ñòðîêè /ind=name.dll, ëèáî â
683
    áèáëèîòåêè ëèáî ÷åðåç îïöèþ êîìàíäíîé ñòðîêè /ind=name.dll, ëèáî â
685
    ôàéëå INI ñòðîêîé 'ind=name.dll', ëèáî ÷åðåç äèðåêòèâó '#pragma option
684
    ôàéëå INI ñòðîêîé 'ind=name.dll', ëèáî ÷åðåç äèðåêòèâó '#pragma option
686
    ind=name.dll'.
685
    ind=name.dll'.
687
 
686
 
688
        Ê íåäîñòàòêîì òàêîãî ñïîñîáà ïîëó÷åíèÿ èìåí ìîæíî îòíåñòè òî, ÷òî ïðè
687
        Ê íåäîñòàòêîì òàêîãî ñïîñîáà ïîëó÷åíèÿ èìåí ìîæíî îòíåñòè òî, ÷òî ïðè
689
    êîìïèëÿöèè ïðîãðàììû áèáëèîòåêà, èç êîòîðîé èìïîðòèðóþòñÿ èìåíà,
688
    êîìïèëÿöèè ïðîãðàììû áèáëèîòåêà, èç êîòîðîé èìïîðòèðóþòñÿ èìåíà,
690
    îáÿçàòåëüíî äîëæíà ïðèñóòñòâîâàòü â êîìïüþòåðå. Òàêæå, åñëè èìåíà â
689
    îáÿçàòåëüíî äîëæíà ïðèñóòñòâîâàòü â êîìïüþòåðå. Òàêæå, åñëè èìåíà â
691
    áèáëèîòåêå íàïèñàíû áåç ñóôôèêñà '@number', êîìïèëÿòîð íå áóäåò
690
    áèáëèîòåêå íàïèñàíû áåç ñóôôèêñà '@number', êîìïèëÿòîð íå áóäåò
692
    êîíòðîëèðîâàòü ÷èñëî ïàðàìåòðîâ ïåðåäàâàåìûõ ïðîöåäóðå. È, ê ñîæàëåíèþ,
691
    êîíòðîëèðîâàòü ÷èñëî ïàðàìåòðîâ ïåðåäàâàåìûõ ïðîöåäóðå. È, ê ñîæàëåíèþ,
693
    êîìïèëÿòîð óìååò èìïîðòèðîâàòü èìåíà èç áèáëèîòåê èìåþùèõ òîëüêî ôîðìàò
692
    êîìïèëÿòîð óìååò èìïîðòèðîâàòü èìåíà èç áèáëèîòåê èìåþùèõ òîëüêî ôîðìàò
694
    PE-ôàéëà.
693
    PE-ôàéëà.
695
Return to contents.
694
Return to contents.
696
 
695
 
697
 
696
 
698
 
697
 
699
    2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
698
    2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
700
 
699
 
701
 
700
 
702
        Êàê èçâåñòíî, â ïðîãðàììàõ ïîä windows åñòü DOS çàãëóøêà, íàçûâàåìàÿ
701
        Êàê èçâåñòíî, â ïðîãðàììàõ ïîä windows åñòü DOS çàãëóøêà, íàçûâàåìàÿ
703
    stub, êîòîðîé ïåðåäàåòñÿ óïðàâëåíèå ïðè çàïóñêå òàêîé ïðîãðàììû â ÷èñòîì
702
    stub, êîòîðîé ïåðåäàåòñÿ óïðàâëåíèå ïðè çàïóñêå òàêîé ïðîãðàììû â ÷èñòîì
704
    DOS-å. Îáû÷íî òàêàÿ çàãëóøêà âûâîäèò íà ýêðàí ñîîáùåíèå î òîì, ÷òî ýòó
703
    DOS-å. Îáû÷íî òàêàÿ çàãëóøêà âûâîäèò íà ýêðàí ñîîáùåíèå î òîì, ÷òî ýòó
705
    ïðîãðàììó íàäî çàïóñêàòü â ñðåäå windows.
704
    ïðîãðàììó íàäî çàïóñêàòü â ñðåäå windows.
706
 
705
 
707
        Âû ìîæåòå âìåñòî ñòàíäàðòíîãî stub èñïîëüçîâàòü ñâîé. Äëÿ ýòîãî Âàì
706
        Âû ìîæåòå âìåñòî ñòàíäàðòíîãî stub èñïîëüçîâàòü ñâîé. Äëÿ ýòîãî Âàì
708
    íåîáõîäèìî óêàçàòü èìÿ 16-áèòíîãî EXE-ôàéëà ëèáî ÷åðåç îïöèþ êîìàíäíîé
707
    íåîáõîäèìî óêàçàòü èìÿ 16-áèòíîãî EXE-ôàéëà ëèáî ÷åðåç îïöèþ êîìàíäíîé
709
    ñòðîêè /ws=filename, ëèáî ñòðîêîé â INI-ôàéëå ws=filename, ëèáî
708
    ñòðîêè /ws=filename, ëèáî ñòðîêîé â INI-ôàéëå ws=filename, ëèáî
710
    äèðåêòèâîé #pragma option ws=filename.
709
    äèðåêòèâîé #pragma option ws=filename.
711
 
710
 
712
        Òàêèì îáðàçîì, ó Âàñ ïîÿâèëàñü âîçìîæíîñòü ñîçäàâàòü ïðîãðàììû,
711
        Òàêèì îáðàçîì, ó Âàñ ïîÿâèëàñü âîçìîæíîñòü ñîçäàâàòü ïðîãðàììû,
713
    ðàáîòàþùèå è ïîä DOS è ïîä windows.
712
    ðàáîòàþùèå è ïîä DOS è ïîä windows.
714
Return to contents.
713
Return to contents.
715
 
714
 
716
 
715
 
717
 
716
 
718
    2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
717
    2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
719
 
718
 
720
 
719
 
721
        Ñåêöèÿ .bss ñîçäàåòñÿ àâòîìàòè÷åñêè ïðè êîìïèëÿöèè ïðîãðàìì ñ êëþ÷îì
720
        Ñåêöèÿ .bss ñîçäàåòñÿ àâòîìàòè÷åñêè ïðè êîìïèëÿöèè ïðîãðàìì ñ êëþ÷îì
722
    /w32. Åñëè Âû õîòèòå èìåòü ýòó ñåêöèþ è ïðè êîìïèëÿöèè ïðîãðàìì ñ
721
    /w32. Åñëè Âû õîòèòå èìåòü ýòó ñåêöèþ è ïðè êîìïèëÿöèè ïðîãðàìì ñ
723
    êëþ÷àìè /w32c èëè /dll Âàì íåîáõîäèìî äîáàâèòü ëèáî â êîìàíäíîé
722
    êëþ÷àìè /w32c èëè /dll Âàì íåîáõîäèìî äîáàâèòü ëèáî â êîìàíäíîé
724
    ñòðîêå îïöèþ /wbss, ëèáî ñòðîêó wbss â INI-ôàéëå, ëèáî äèðåêòèâó
723
    ñòðîêå îïöèþ /wbss, ëèáî ñòðîêó wbss â INI-ôàéëå, ëèáî äèðåêòèâó
725
    #pragma option wbss.
724
    #pragma option wbss.
726
 
725
 
727
        Èñïîëüçîâàíèå ñåêöèè .bss ïðàêòè÷åñêè íå âëèÿåò íà ðàçìåð ïîëó÷àåìîãî
726
        Èñïîëüçîâàíèå ñåêöèè .bss ïðàêòè÷åñêè íå âëèÿåò íà ðàçìåð ïîëó÷àåìîãî
728
    ôàéëà. Òåîðåòè÷åñêè, äëÿ ïðîöåññîðîâ, ó êîòîðûõ åñòü îòäåëüíûé êýø äëÿ
727
    ôàéëà. Òåîðåòè÷åñêè, äëÿ ïðîöåññîðîâ, ó êîòîðûõ åñòü îòäåëüíûé êýø äëÿ
729
    äàííûõ, èñïîëüçîâàíèå ñåêöèè .bss, äîëæíî ïîâûøàòü ñêîðîñòü ðàáîòû
728
    äàííûõ, èñïîëüçîâàíèå ñåêöèè .bss, äîëæíî ïîâûøàòü ñêîðîñòü ðàáîòû
730
    ïðîãðàììû.
729
    ïðîãðàììû.
731
Return to contents.
730
Return to contents.
732
 
731
 
733
 
732
 
734
 
733
 
735
    2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
734
    2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
736
 
735
 
737
 
736
 
738
        Åñëè ïðè êîìïèëÿöèè ïðîãðàììû â êîìàíäíóþ ñòðîêó äîáàâèòü êëþ÷ /dbg,
737
        Åñëè ïðè êîìïèëÿöèè ïðîãðàììû â êîìàíäíóþ ñòðîêó äîáàâèòü êëþ÷ /dbg,
739
    èëè â ôàéë êîíôèãóðàöèè c--.ini äîáàâèòü ñòðîêó dbg, òî êîìïèëÿòîð ïîñëå
738
    èëè â ôàéë êîíôèãóðàöèè c--.ini äîáàâèòü ñòðîêó dbg, òî êîìïèëÿòîð ïîñëå
740
    îêîí÷àíèÿ êîìïèëÿöèè ñîçäàñò ôàéë ñ îòëàäî÷íîé èíôîðìàöèåé. Ýòîò ôàéë
739
    îêîí÷àíèÿ êîìïèëÿöèè ñîçäàñò ôàéë ñ îòëàäî÷íîé èíôîðìàöèåé. Ýòîò ôàéë
741
    èìååò èìÿ ãëàâíîãî ìîäóëÿ è èìååò ðàñøèðåíèå *.tds.
740
    èìååò èìÿ ãëàâíîãî ìîäóëÿ è èìååò ðàñøèðåíèå *.tds.
742
 
741
 
743
        Îòëàäî÷íàÿ èíôîðìàöèÿ ñîçäàâàåìàÿ êîìïèëÿòîðîì C-- ñîâìåñòèìà ñ
742
        Îòëàäî÷íàÿ èíôîðìàöèÿ ñîçäàâàåìàÿ êîìïèëÿòîðîì C-- ñîâìåñòèìà ñ
744
    îòëàäî÷íîé èíôîðìàöèåé ñîçäàâàåìîé êîìïèëÿòîðàìè ôèðìû Borland. Íî, ïîêà,
743
    îòëàäî÷íîé èíôîðìàöèåé ñîçäàâàåìîé êîìïèëÿòîðàìè ôèðìû Borland. Íî, ïîêà,
745
    ýòà èíôîðìàöèÿ ðåàëèçîâàíà åùå íå â ïîëíîì îáúåìå. Ñîçäàâàåìîé ñåé÷àñ
744
    ýòà èíôîðìàöèÿ ðåàëèçîâàíà åùå íå â ïîëíîì îáúåìå. Ñîçäàâàåìîé ñåé÷àñ
746
    îòëàäî÷íîé èíôîðìàöèè äîñòàòî÷íî äëÿ ïðîâåäåíèÿ ïðîñòåéøåé îòëàäêè
745
    îòëàäî÷íîé èíôîðìàöèè äîñòàòî÷íî äëÿ ïðîâåäåíèÿ ïðîñòåéøåé îòëàäêè
747
    ïðîãðàììû.
746
    ïðîãðàììû.
748
 
747
 
749
        Äëÿ 16-áèòíûõ ïðîãðàìì ïîä DOS äëÿ îòëàäêè íàäî èñïîëüçîâàòü Turbo
748
        Äëÿ 16-áèòíûõ ïðîãðàìì ïîä DOS äëÿ îòëàäêè íàäî èñïîëüçîâàòü Turbo
750
    Debugger èç ïàêåòà Borland C v4.5 èëè ëó÷øå (ôàéë td.exe).
749
    Debugger èç ïàêåòà Borland C v4.5 èëè ëó÷øå (ôàéë td.exe).
751
 
750
 
752
        Äëÿ ïðîãðàìì ïîä Windows íàäî èñïîëüçîâàòü 32-áèòíûé îòëàä÷èê èç ýòîãî
751
        Äëÿ ïðîãðàìì ïîä Windows íàäî èñïîëüçîâàòü 32-áèòíûé îòëàä÷èê èç ýòîãî
753
    æå ïàêåòà (ôàéë td32.exe).
752
    æå ïàêåòà (ôàéë td32.exe).
754
 
753
 
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.
761
 
760
 
762
 
761
 
763
 
762
 
764
    2.1.12 /J0 /J1 /J2
763
    2.1.12 /J0 /J1 /J2
765
 
764
 
766
 
765
 
767
        Ñèíîíèìîì êëþ÷åé /J0 /J1 /J2 ÿâëÿåòñÿ äèðåêòèâà #jumptomain ñ
766
        Ñèíîíèìîì êëþ÷åé /J0 /J1 /J2 ÿâëÿåòñÿ äèðåêòèâà #jumptomain ñ
768
    ïàðàìåòðàìè NONE, SHORT è NEAR ñîîòâåòñòâåííî.
767
    ïàðàìåòðàìè NONE, SHORT è NEAR ñîîòâåòñòâåííî.
769
 
768
 
770
        Äèðåêòèâà #jumptomain âûïîëíÿåò íåìíîãî ðàçëè÷íûå ôóíêöèè â
769
        Äèðåêòèâà #jumptomain âûïîëíÿåò íåìíîãî ðàçëè÷íûå ôóíêöèè â
771
    çàâèñèìîñòè îò òèïà âûõîäíîãî ôàéëà.
770
    çàâèñèìîñòè îò òèïà âûõîäíîãî ôàéëà.
772
 
771
 
773
        Êîìïèëÿöèÿ ôàéëà òèïà *.com è *.exe ìîäåëü ïàìÿòè tiny:
772
        Êîìïèëÿöèÿ ôàéëà òèïà *.com è *.exe ìîäåëü ïàìÿòè tiny:
774
 
773
 
775
      #jumptomain NONE (-j0) - â ýòîì ñëó÷àå ïî îêîí÷àíèè êîäà íà÷àëüíîé
774
      #jumptomain NONE (-j0) - â ýòîì ñëó÷àå ïî îêîí÷àíèè êîäà íà÷àëüíîé
776
    èíèöèàëèçàöèè ïðîãðàììû íå ãåíåðèðóåòñÿ jmp íà ïðîöåäóðó main. Ýòó
775
    èíèöèàëèçàöèè ïðîãðàììû íå ãåíåðèðóåòñÿ jmp íà ïðîöåäóðó main. Ýòó
777
    äèðåêòèâó ñëåäóåò èñïîëüçîâàòü â ñëó÷àå, åñëè äî ïðîöåäóðû main íåò äðóãèõ
776
    äèðåêòèâó ñëåäóåò èñïîëüçîâàòü â ñëó÷àå, åñëè äî ïðîöåäóðû main íåò äðóãèõ
778
    íå äèíàìè÷åñêèõ ïðîöåäóð è èíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
777
    íå äèíàìè÷åñêèõ ïðîöåäóð è èíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
779
 
778
 
780
      #jumptomain SHORT (-j1) - â ýòîì ñëó÷àå ïî îêîí÷àíèè êîäà íà÷àëüíîé
779
      #jumptomain SHORT (-j1) - â ýòîì ñëó÷àå ïî îêîí÷àíèè êîäà íà÷àëüíîé
781
    èíèöèàëèçàöèè ãåíåðèðóåòñÿ êîðîòêèé jmp íà ïðîöåäóðó main. Ýòó äèðåêòèâó
780
    èíèöèàëèçàöèè ãåíåðèðóåòñÿ êîðîòêèé jmp íà ïðîöåäóðó main. Ýòó äèðåêòèâó
782
    ñëåäóåò èñïîëüçîâàòü, åñëè äî ïðîöåäóðû main íàõîäèòñÿ íå áîëåå 128 áàéò
781
    ñëåäóåò èñïîëüçîâàòü, åñëè äî ïðîöåäóðû main íàõîäèòñÿ íå áîëåå 128 áàéò
783
    êîäà è äàííûõ.
782
    êîäà è äàííûõ.
784
 
783
 
785
      #jumptomain NEAR (-j2) - ýòî ñîñòîÿíèå óñòàíàâëèâàåòñÿ ïî óìîë÷àíèþ. Ïðè
784
      #jumptomain NEAR (-j2) - ýòî ñîñòîÿíèå óñòàíàâëèâàåòñÿ ïî óìîë÷àíèþ. Ïðè
786
    ýòîì ãåíåðèðóåòñÿ áëèçêèé jmp íà ïðîöåäóðó main.
785
    ýòîì ãåíåðèðóåòñÿ áëèçêèé jmp íà ïðîöåäóðó main.
787
 
786
 
788
        Êîìïèëÿöèÿ ôàéëîâ *.exe (êëþ÷è -exe -d32 -w32 -w32c):
787
        Êîìïèëÿöèÿ ôàéëîâ *.exe (êëþ÷è -exe -d32 -w32 -w32c):
789
 
788
 
790
      #jumptomain NONE (-j0) - â ýòîì ñëó÷àå êîä íà÷àëüíîé èíèöèàëèçàöèè
789
      #jumptomain NONE (-j0) - â ýòîì ñëó÷àå êîä íà÷àëüíîé èíèöèàëèçàöèè
791
    ïðîãðàììû íå ãåíåðèðóåòñÿ è óïðàâëåíèå ïðè çàïóñêå ïåðåäàåòñÿ ñðàçó íà
790
    ïðîãðàììû íå ãåíåðèðóåòñÿ è óïðàâëåíèå ïðè çàïóñêå ïåðåäàåòñÿ ñðàçó íà
792
    ïðîöåäóðó main.
791
    ïðîöåäóðó main.
793
 
792
 
794
      Âî âñåõ îñòàëüíûõ ñëó÷àÿõ ãåíåðèðóåòñÿ êîä íà÷àëüíîé èíèöèàëèçàöèè è
793
      Âî âñåõ îñòàëüíûõ ñëó÷àÿõ ãåíåðèðóåòñÿ êîä íà÷àëüíîé èíèöèàëèçàöèè è
795
    óïðàâëåíèå íà ïðîöåäóðó main ïåðåäàåòñÿ èíñòðóêöèåé call.
794
    óïðàâëåíèå íà ïðîöåäóðó main ïåðåäàåòñÿ èíñòðóêöèåé call.
796
 
795
 
797
        Êîìïèëÿöèÿ ôàéëîâ *.dll:
796
        Êîìïèëÿöèÿ ôàéëîâ *.dll:
798
 
797
 
799
      #jumptomain NONE (-j0) - â ýòîì ñëó÷àå êîä íà÷àëüíîé èíèöèàëèçàöèè
798
      #jumptomain NONE (-j0) - â ýòîì ñëó÷àå êîä íà÷àëüíîé èíèöèàëèçàöèè
800
    ïðîãðàììû íå ãåíåðèðóåòñÿ è óïðàâëåíèå ïðè çàïóñêå ïåðåäàåòñÿ ñðàçó íà
799
    ïðîãðàììû íå ãåíåðèðóåòñÿ è óïðàâëåíèå ïðè çàïóñêå ïåðåäàåòñÿ ñðàçó íà
801
    ïðîöåäóðó main.
800
    ïðîöåäóðó main.
802
 
801
 
803
      Âî âñåõ îñòàëüíûõ ñëó÷àÿõ ãåíåðèðóåòñÿ êîä çàãëóøêè è óïðàâëåíèå íà
802
      Âî âñåõ îñòàëüíûõ ñëó÷àÿõ ãåíåðèðóåòñÿ êîä çàãëóøêè è óïðàâëåíèå íà
804
    ïðîöåäóðó main íå ïåðåäàåòñÿ. Ôàêòè÷åñêè ïðîöåäóðà main â ýòîì ñëó÷àå íå
803
    ïðîöåäóðó main íå ïåðåäàåòñÿ. Ôàêòè÷åñêè ïðîöåäóðà main â ýòîì ñëó÷àå íå
805
    íóæíà.
804
    íóæíà.
806
 
805
 
807
      Ïðîöåäóðà main ïðè ñîçäàíèè ôàéëîâ DLL äîëæíà âûãëÿäåòü íåìíîãî èíà÷å,
806
      Ïðîöåäóðà main ïðè ñîçäàíèè ôàéëîâ DLL äîëæíà âûãëÿäåòü íåìíîãî èíà÷å,
808
    ÷åì â äðóãèõ ñëó÷àÿõ:
807
    ÷åì â äðóãèõ ñëó÷àÿõ:
809
 
808
 
810
    dword main ( dword hInstDLL, reason, reserv )
809
    dword main ( dword hInstDLL, reason, reserv )
811
    {
810
    {
812
      ...
811
      ...
813
    }
812
    }
814
Return to contents.
813
Return to contents.
815
 
814
 
816
 
815
 
817
 
816
 
818
    2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
817
    2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
819
 
818
 
820
 
819
 
821
        Ñ ïîìîùüþ äîïîëíèòåëüíîé îïöèè êîìàíäíîé ñòðîêè -lst Âû ìîæåòå
820
        Ñ ïîìîùüþ äîïîëíèòåëüíîé îïöèè êîìàíäíîé ñòðîêè -lst Âû ìîæåòå
822
    ïîëó÷èòü âìåñòå ñ èñïîëíèòåëüíûì ôàéëîì è åãî àññåìáëåðíûé ëèñòèíã.
821
    ïîëó÷èòü âìåñòå ñ èñïîëíèòåëüíûì ôàéëîì è åãî àññåìáëåðíûé ëèñòèíã.
823
    Ëèñòèíã áóäåò ïîìåùåí â ôàéë îäíîèìåííûé ñ èñïîëíèòåëüíûì ôàéëîì è
822
    Ëèñòèíã áóäåò ïîìåùåí â ôàéë îäíîèìåííûé ñ èñïîëíèòåëüíûì ôàéëîì è
824
    èìåþùèì ðàñøèðåíèå *.lst.
823
    èìåþùèì ðàñøèðåíèå *.lst.
825
 
824
 
826
        Àññåìáëåðíûé ëèñòèíã ñîçäàåòñÿ íåçàâèñèìîé îò êîìïèëÿòîðà ÷àñòüþ êîäà
825
        Àññåìáëåðíûé ëèñòèíã ñîçäàåòñÿ íåçàâèñèìîé îò êîìïèëÿòîðà ÷àñòüþ êîäà
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
 
834
 
833
 
835
        Åñëè ïðè êîìïèëÿöèè ïðîãðàììû Âû â êîìàíäíóþ ñòðîêó äîáàâèòå îïöèþ
834
        Åñëè ïðè êîìïèëÿöèè ïðîãðàììû Âû â êîìàíäíóþ ñòðîêó äîáàâèòå îïöèþ
836
    -ENV èëè â ôàéë c--.ini ñòðîêà ENV, òî êîìïèëÿòîð äîáàâèò â âàøó
835
    -ENV èëè â ôàéë c--.ini ñòðîêà ENV, òî êîìïèëÿòîð äîáàâèò â âàøó
837
    ïðîãðàììó ïåðåìåííóþ environ, â êîòîðîé ïðè çàãðóçêå áóäåò ñîõðàíÿòñÿ
836
    ïðîãðàììó ïåðåìåííóþ environ, â êîòîðîé ïðè çàãðóçêå áóäåò ñîõðàíÿòñÿ
838
    àäðåñ ïåðåìåííûõ îêðóæåíèÿ çàïóñêàåìîé ïðîãðàììû. Äëÿ ïðîãðàìì ïîä
837
    àäðåñ ïåðåìåííûõ îêðóæåíèÿ çàïóñêàåìîé ïðîãðàììû. Äëÿ ïðîãðàìì ïîä
839
    Windows ýòî áóäåò ïîëíûé àäðåñ, à äëÿ îñòàëüíûõ â ýòîé ïåðåìåííîé áóäåò
838
    Windows ýòî áóäåò ïîëíûé àäðåñ, à äëÿ îñòàëüíûõ â ýòîé ïåðåìåííîé áóäåò
840
    ñîõðàíÿòüñÿ òîëüêî àäðåñ ñåãìåíòà.
839
    ñîõðàíÿòüñÿ òîëüêî àäðåñ ñåãìåíòà.
841
Return to contents.
840
Return to contents.
842
 
841
 
843
 
842
 
844
 
843
 
845
    2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
844
    2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
846
 
845
 
847
 
846
 
848
        Ïåðåìåííûå, êîòîðûì â òåëå ïðîãðàììû íå áûëî ïðèñâîåíî íèêàêîå
847
        Ïåðåìåííûå, êîòîðûì â òåëå ïðîãðàììû íå áûëî ïðèñâîåíî íèêàêîå
849
    çíà÷åíèå, íå âêëþ÷àþòñÿ â òåëî ñêîìïèëèðîâàííîé ïðîãðàììû. Äëÿ íèõ
848
    çíà÷åíèå, íå âêëþ÷àþòñÿ â òåëî ñêîìïèëèðîâàííîé ïðîãðàììû. Äëÿ íèõ
850
    ðåçåðâèðóåòñÿ ïàìÿòü çà ïðåäåëàìè ïðîãðàììû. Íî ýòà ïàìÿòü ìîæåò áûòü
849
    ðåçåðâèðóåòñÿ ïàìÿòü çà ïðåäåëàìè ïðîãðàììû. Íî ýòà ïàìÿòü ìîæåò áûòü
851
    çàïîëíåíà ïðîèçâîëüíîé èíôîðìàöèåé.
850
    çàïîëíåíà ïðîèçâîëüíîé èíôîðìàöèåé.
852
 
851
 
853
        Åñëè Âàì íåîáõîäèìî, ÷òîáû íåèíèöèàëèçèðîâàííûå ïåðåìåííûå ïðè
852
        Åñëè Âàì íåîáõîäèìî, ÷òîáû íåèíèöèàëèçèðîâàííûå ïåðåìåííûå ïðè
854
    çàãðóçêå ïðîãðàììû âñåãäà ñîäåðæàëè îäíî è òîæå çíà÷åíèå (íîëü) -
853
    çàãðóçêå ïðîãðàììû âñåãäà ñîäåðæàëè îäíî è òîæå çíà÷åíèå (íîëü) -
855
    âêëþ÷èòå â êîìàíäíóþ ñòðîêó îïöèþ -CPA.
854
    âêëþ÷èòå â êîìàíäíóþ ñòðîêó îïöèþ -CPA.
856
Return to contents.
855
Return to contents.
857
 
856
 
858
 
857
 
859
 
858
 
860
    2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.
859
    2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.
861
 
860
 
862
 
861
 
863
        Ïî óìîë÷àíèþ êîìïèëÿòîð íå âûâîäèò ïðåäóïðåæäåíèÿ è ìíîãèå äàæå íå
862
        Ïî óìîë÷àíèþ êîìïèëÿòîð íå âûâîäèò ïðåäóïðåæäåíèÿ è ìíîãèå äàæå íå
864
    ïîäîçðåâàþò î ñóùåñòâîâàíèè òàêîé ïîëåçíîé îïöèè. Â C-- ïðåäóïðåæäåíèÿ
863
    ïîäîçðåâàþò î ñóùåñòâîâàíèè òàêîé ïîëåçíîé îïöèè. Â C-- ïðåäóïðåæäåíèÿ
865
    ôàêòè÷åñêè ÿâëÿþòñÿ ïîäñêàçêàìè äëÿ ñîçäàíèÿ îïòèìàëüíûõ ïðîãðàìì è
864
    ôàêòè÷åñêè ÿâëÿþòñÿ ïîäñêàçêàìè äëÿ ñîçäàíèÿ îïòèìàëüíûõ ïðîãðàìì è
866
    çà÷àñòóþ îáëåã÷àþò îòëàäêó ïðîãðàìì.  ïðåäóïðåæäåíèÿõ êîìïèëÿòîð ìîæåò
865
    çà÷àñòóþ îáëåã÷àþò îòëàäêó ïðîãðàìì.  ïðåäóïðåæäåíèÿõ êîìïèëÿòîð ìîæåò
867
    ñîîáùèòü Âàì î òîì, â êàêîì ìåñòå ìîæíî èñïîëüçîâàòü êîðîòêèå ôîðìû
866
    ñîîáùèòü Âàì î òîì, â êàêîì ìåñòå ìîæíî èñïîëüçîâàòü êîðîòêèå ôîðìû
868
    îïåðàòîðîâ IF, WHILE, FOR... Î òîì, êàêèå ïðîöåäóðû, ïåðåìåííûå è
867
    îïåðàòîðîâ IF, WHILE, FOR... Î òîì, êàêèå ïðîöåäóðû, ïåðåìåííûå è
869
    ñòðóêòóðû îïðåäåëåííûå â âàøåé ïðîãðàììå íå áûëè èñïîëüçîâàíû. Î òîì
868
    ñòðóêòóðû îïðåäåëåííûå â âàøåé ïðîãðàììå íå áûëè èñïîëüçîâàíû. Î òîì
870
    êàêèå ðåãèñòðû êîìïèëÿòîð èñïîëüçîâàë áåç âàøåãî âåäîìà è ìíîãî äðóãîé
869
    êàêèå ðåãèñòðû êîìïèëÿòîð èñïîëüçîâàë áåç âàøåãî âåäîìà è ìíîãî äðóãîé
871
    ïîëåçíîé èíôîðìàöèè.
870
    ïîëåçíîé èíôîðìàöèè.
872
 
871
 
873
        Ïî óìîë÷àíèþ ïðåäóïðåæäåíèÿ âûâîäÿòñÿ íà ýêðàí. Íî èõ áûâàåò òàê
872
        Ïî óìîë÷àíèþ ïðåäóïðåæäåíèÿ âûâîäÿòñÿ íà ýêðàí. Íî èõ áûâàåò òàê
874
    ìíîãî, ÷òî îíè ìîãóò íå ïîìåñòèòüñÿ íà ýêðàíå. Ïîýòîìó â êîìïèëÿòîðå åñòü
873
    ìíîãî, ÷òî îíè ìîãóò íå ïîìåñòèòüñÿ íà ýêðàíå. Ïîýòîìó â êîìïèëÿòîðå åñòü
875
    îïöèÿ, ïî êîòîðîé âñå ïðåäóïðåæäåíèÿ âûâîäÿòñÿ â ôàéë. Èìÿ ýòîãî ôàéëà
874
    îïöèÿ, ïî êîòîðîé âñå ïðåäóïðåæäåíèÿ âûâîäÿòñÿ â ôàéë. Èìÿ ýòîãî ôàéëà
876
    çàäàåòñÿ â òîé æå îïöèè. Ïîìåñòèâ â ñâîé c--.ini ôàéë ïàðó âîò ýòèõ ñòðîê:
875
    çàäàåòñÿ â òîé æå îïöèè. Ïîìåñòèâ â ñâîé c--.ini ôàéë ïàðó âîò ýòèõ ñòðîê:
877
 
876
 
878
    w
877
    w
879
    wf=warning
878
    wf=warning
880
 
879
 
881
        Âû áóäåòå ïîëó÷àòü â ôàéëå warning ïðåäóïðåæäåíèÿ.
880
        Âû áóäåòå ïîëó÷àòü â ôàéëå warning ïðåäóïðåæäåíèÿ.
882
Return to contents.
881
Return to contents.
883
 
882
 
884
 
883
 
885
 
884
 
886
    2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
885
    2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
887
 
886
 
888
 
887
 
889
        Ñåé÷àñ êîìïèëÿòîð ìîæåò âûäàâàòü 12 òèïîâ ïðåäóïðåæäåíèé è, èíîãäà èõ
888
        Ñåé÷àñ êîìïèëÿòîð ìîæåò âûäàâàòü 12 òèïîâ ïðåäóïðåæäåíèé è, èíîãäà èõ
890
    áûâàåò òàê ìíîãî, ÷òî ñòàíîâèòñÿ òðóäíî â íèõ îðèåíòèðîâàòüñÿ. Òåïåðü
889
    áûâàåò òàê ìíîãî, ÷òî ñòàíîâèòñÿ òðóäíî â íèõ îðèåíòèðîâàòüñÿ. Òåïåðü
891
    ìîæíî âûáîðî÷íî çàïðåùàòü âûäà÷ó ïðåäóïðåæäåíèé. Äëÿ ýòîãî â êîìàíäíîé
890
    ìîæíî âûáîðî÷íî çàïðåùàòü âûäà÷ó ïðåäóïðåæäåíèé. Äëÿ ýòîãî â êîìàíäíîé
892
    ñòðîêå (èëè â ôàéëå C--.INI) ìîæíî óñòàíîâèòü îïöèþ /nw=number, ãäå
891
    ñòðîêå (èëè â ôàéëå C--.INI) ìîæíî óñòàíîâèòü îïöèþ /nw=number, ãäå
893
    number - ÷èñëî îò 1 äî 12. Ýòèì öèôðàì ñîîòâåòñòâóþò ñëåäóþùèå òèïû
892
    number - ÷èñëî îò 1 äî 12. Ýòèì öèôðàì ñîîòâåòñòâóþò ñëåäóþùèå òèïû
894
    ïðåäóïðåæäåíèé:
893
    ïðåäóïðåæäåíèé:
895
 
894
 
896
      1 - Optimize numerical expressions
895
      1 - Optimize numerical expressions
897
      2 - Compiler used register ..."
896
      2 - Compiler used register ..."
898
      3 - Short operator '...' may be used
897
      3 - Short operator '...' may be used
899
      4 - String '...' repeated
898
      4 - String '...' repeated
900
      5 - Expansion variable
899
      5 - Expansion variable
901
      6 - Signed value returned
900
      6 - Signed value returned
902
      7 - '...' defined above, therefore skipped.
901
      7 - '...' defined above, therefore skipped.
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.
909
 
908
 
910
 
909
 
911
 
910
 
912
    2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
911
    2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
913
 
912
 
914
 
913
 
915
        Òàáëèöà èìïîðòà îáû÷íî ñîñòîèò â ñâîþ î÷åðåäü èç ÷åòûðåõ òàáëèö. Äâå
914
        Òàáëèöà èìïîðòà îáû÷íî ñîñòîèò â ñâîþ î÷åðåäü èç ÷åòûðåõ òàáëèö. Äâå
916
    òàáëèöû LookUp Table è Import Address Table àáñîëþòíî îäèíàêîâû.
915
    òàáëèöû LookUp Table è Import Address Table àáñîëþòíî îäèíàêîâû.
917
 
916
 
918
        Îïöèåé êîìàíäíîé ñòðîêè /WSI Âû ìîæåòå çàñòàâèòü êîìïèëÿòîð
917
        Îïöèåé êîìàíäíîé ñòðîêè /WSI Âû ìîæåòå çàñòàâèòü êîìïèëÿòîð
919
    ãåíåðèðîâàòü òîëüêî îäíó èç ýòèõ äâóõ îäèíàêîâûõ òàáëèö (ãåíåðèðóåòñÿ
918
    ãåíåðèðîâàòü òîëüêî îäíó èç ýòèõ äâóõ îäèíàêîâûõ òàáëèö (ãåíåðèðóåòñÿ
920
    òîëüêî Import Address Table). Òåì ñàìûì ó Âàñ ïîëó÷èòñÿ áîëåå êîìïàêòíàÿ
919
    òîëüêî Import Address Table). Òåì ñàìûì ó Âàñ ïîëó÷èòñÿ áîëåå êîìïàêòíàÿ
921
    òàáëèöà èìïîðòà, ÷òî ïðèâåäåò, â íåêîòîðûõ ñëó÷àÿõ, ê ñîçäàíèþ áîëåå
920
    òàáëèöà èìïîðòà, ÷òî ïðèâåäåò, â íåêîòîðûõ ñëó÷àÿõ, ê ñîçäàíèþ áîëåå
922
    êîìïàêòíîãî âûõîäíîãî ôàéëà.
921
    êîìïàêòíîãî âûõîäíîãî ôàéëà.
923
Return to contents.
922
Return to contents.
924
 
923
 
925
 
924
 
926
 
925
 
927
  2.2 Äèðåêòèâû òðàíñëÿòîðà.
926
  2.2 Äèðåêòèâû òðàíñëÿòîðà.
928
 
927
 
929
 
928
 
930
      C-- íå ñîäåðæèò ïðåïðîöåññîð. Òåì íå ìåíåå, åñòü íåñêîëüêî ôóíêöèé
929
      C-- íå ñîäåðæèò ïðåïðîöåññîð. Òåì íå ìåíåå, åñòü íåñêîëüêî ôóíêöèé
931
  î÷åíü ïîõîæèõ íà ôóíêöèè C ïðåïðîöåññîðà.
930
  î÷åíü ïîõîæèõ íà ôóíêöèè C ïðåïðîöåññîðà.
932
 
931
 
933
      Îíè äàþòñÿ êàê äèðåêòèâû òðàíñëÿòîðà. Âñå äèðåêòèâû òðàíñëÿòîðà
932
      Îíè äàþòñÿ êàê äèðåêòèâû òðàíñëÿòîðà. Âñå äèðåêòèâû òðàíñëÿòîðà
934
  íà÷èíàþòñÿ ñ âîïðîñèòåëüíîãî çíàêà ? ëèáî ñ ñèìâîëà #. Âîò ñïèñîê èìåþùèõñÿ
933
  íà÷èíàþòñÿ ñ âîïðîñèòåëüíîãî çíàêà ? ëèáî ñ ñèìâîëà #. Âîò ñïèñîê èìåþùèõñÿ
935
  äèðåêòèâ è èõ íàçíà÷åíèå:
934
  äèðåêòèâ è èõ íàçíà÷åíèå:
936
 
935
 
937
  ? align [val]                  Âûðîâíÿòü äàííûå ïðîãðàììû íà ÷åòíûé ïî
936
  ? align [val]                  Âûðîâíÿòü äàííûå ïðîãðàììû íà ÷åòíûé ïî
938
                                 óìîë÷àíèþ èëè íà àäðåñ êðàòíûé âåëè÷èíå val.
937
                                 óìîë÷àíèþ èëè íà àäðåñ êðàòíûé âåëè÷èíå val.
939
 
938
 
940
  ? aligncode [val]              Âûðîâíÿòü êîä ïðîãðàììû íà ÷åòíûé ïî
939
  ? aligncode [val]              Âûðîâíÿòü êîä ïðîãðàììû íà ÷åòíûé ïî
941
                                 óìîë÷àíèþ èëè íà àäðåñ êðàòíûé âåëè÷èíå val.
940
                                 óìîë÷àíèþ èëè íà àäðåñ êðàòíûé âåëè÷èíå val.
942
			         Çàïîëíåíèå ïðîèçâîäèòñÿ êîäîì 0x90.
941
                                 Çàïîëíåíèå ïðîèçâîäèòñÿ êîäîì 0x90.
943
 
942
 
944
  ? aligner (aligner value)      îïðåäåëèòü çíà÷åíèå áàéòà âñòàâêè.
943
  ? aligner (aligner value)      îïðåäåëèòü çíà÷åíèå áàéòà âñòàâêè.
945
 
944
 
946
  ? alignword (TRUE or FALSE)    ðàçðåøàåò èëè çàïðåùàåò âûðàâíèâàíèå íà
945
  ? alignword (TRUE or FALSE)    ðàçðåøàåò èëè çàïðåùàåò âûðàâíèâàíèå íà
947
                                 ÷åòíûé àäðåñ ïåðåìåííûõ òèïà word è int,
946
                                 ÷åòíûé àäðåñ ïåðåìåííûõ òèïà word è int,
948
                                 çíà÷åíèå ïî óìîë÷àíèþ TRUE.
947
                                 çíà÷åíèå ïî óìîë÷àíèþ TRUE.
949
 
948
 
950
  ? argc (TRUE or FALSE)         Âêëþ÷èòü èëè îòêëþ÷èòü àëüòåðíàòèâíûé
949
  ? argc (TRUE or FALSE)         Âêëþ÷èòü èëè îòêëþ÷èòü àëüòåðíàòèâíûé
951
                                 îáðàáîò÷èê êîìàíäíîé ñòðîêè.
950
                                 îáðàáîò÷èê êîìàíäíîé ñòðîêè.
952
 
951
 
953
  ? atexit                       Âñòàâëÿåò â startup êîä ïîääåðæêè ïðîöåäóðû
952
  ? atexit                       Âñòàâëÿåò â startup êîä ïîääåðæêè ïðîöåäóðû
954
                                 ATEXIT().
953
                                 ATEXIT().
955
 
954
 
956
  ? code32 (TRUE/FALSE)          ðàçðåøàåò/çàïðåùàåò ãåíåðàöèþ 32-áèòíîãî
955
  ? code32 (TRUE/FALSE)          ðàçðåøàåò/çàïðåùàåò ãåíåðàöèþ 32-áèòíîãî
957
                                 êîäà.
956
                                 êîäà.
958
 
957
 
959
  ? codesize                     îïòèìèçàöèÿ ðàçìåðà êîäà (â óùåðá ñêîðîñòè).
958
  ? codesize                     îïòèìèçàöèÿ ðàçìåðà êîäà (â óùåðá ñêîðîñòè).
960
 
959
 
961
  ? compilerversion min-vers     óêàçûâàåò, êîìïèëÿòîð êàêîé âåðñèè íåîáõîäèì
960
  ? compilerversion min-vers     óêàçûâàåò, êîìïèëÿòîð êàêîé âåðñèè íåîáõîäèì
962
                                 äëÿ êîìïèëÿöèè äàííîé ïðîãðàììû.
961
                                 äëÿ êîìïèëÿöèè äàííîé ïðîãðàììû.
963
 
962
 
964
  ? ctrl_c (TRUE or FALSE )      ðàçðåøàåò èëè çàïðåùàåò èãíîðèðîâàíèå
963
  ? ctrl_c (TRUE or FALSE )      ðàçðåøàåò èëè çàïðåùàåò èãíîðèðîâàíèå
965
                                 íàæàòèÿ CTRL-C.
964
                                 íàæàòèÿ CTRL-C.
966
 
965
 
967
  ? dataseg (value)              óêàçûâàåò êîìïèëÿòîðó ñåãìåíòíûé àäðåñ ÎÇÓ
966
  ? dataseg (value)              óêàçûâàåò êîìïèëÿòîðó ñåãìåíòíûé àäðåñ ÎÇÓ
968
                                 äëÿ ïåðåìåííûõ ïðè êîìïèëÿöèè ROM-BIOS.
967
                                 äëÿ ïåðåìåííûõ ïðè êîìïèëÿöèè ROM-BIOS.
969
 
968
 
970
  ? define (identifier) (token)  îïðåäåëÿåò èäåíòèôèêàòîð.
969
  ? define (identifier) (token)  îïðåäåëÿåò èäåíòèôèêàòîð.
971
 
970
 
972
  ? DOSrequired (íîìåð)          óñòàíàâëèâàåò ìèíèìàëüíóþ òðåáóåìóþ âåðñèþ
971
  ? DOSrequired (íîìåð)          óñòàíàâëèâàåò ìèíèìàëüíóþ òðåáóåìóþ âåðñèþ
973
                                 DOS:  ñòàðøèé áàéò - íîìåð âåðñèè,
972
                                 DOS:  ñòàðøèé áàéò - íîìåð âåðñèè,
974
                                 ìëàäøèé áàéò - íîìåð ìîäèôèêàöèè:
973
                                 ìëàäøèé áàéò - íîìåð ìîäèôèêàöèè:
975
                                  0x0101 äëÿ âåðñèè 1.1 DOS
974
                                  0x0101 äëÿ âåðñèè 1.1 DOS
976
                                  0x0315 äëÿ âåðñèè 3.21 DOS
975
                                  0x0315 äëÿ âåðñèè 3.21 DOS
977
                                  0x0303 äëÿ âåðñèè 3.3 DOS
976
                                  0x0303 äëÿ âåðñèè 3.3 DOS
978
                                  0x0600 äëÿ âåðñèè 6.0 DOS
977
                                  0x0600 äëÿ âåðñèè 6.0 DOS
979
                                  0x0602 äëÿ âåðñèè 6.2 DOS è ò.ä.
978
                                  0x0602 äëÿ âåðñèè 6.2 DOS è ò.ä.
980
 
979
 
981
  ? dosstring (TRUE/FALSE)       óêàçûâàåò êîìïèëÿòîðó, ÷òî â êà÷åñòâå
980
  ? dosstring (TRUE/FALSE)       óêàçûâàåò êîìïèëÿòîðó, ÷òî â êà÷åñòâå
982
                                 òåðìèíàòîðà ñòðîêè íàäî èñïîëüçîâàòü ñèìâîë $
981
                                 òåðìèíàòîðà ñòðîêè íàäî èñïîëüçîâàòü ñèìâîë $
983
 
982
 
984
  ? else                         ãåíåðèðóåò àëüòåðíàòèâíûé êîä åñëè ?ifdef èëè
983
  ? else                         ãåíåðèðóåò àëüòåðíàòèâíûé êîä åñëè ?ifdef èëè
985
                                 ?ifndef ïðèíèìàþò çíà÷åíèå FALSE (ïðèìåð
984
                                 ?ifndef ïðèíèìàþò çíà÷åíèå FALSE (ïðèìåð
986
                                 èñïîëüçîâàíèÿ ñìîòðèòå â ôàéëå FPU.H--)
985
                                 èñïîëüçîâàíèÿ ñìîòðèòå â ôàéëå FPU.H--)
987
 
986
 
988
  ? endif                        óêàçûâàåò íà êîíåö äåéñòâèÿ äèðåêòèâ ifdef è
987
  ? endif                        óêàçûâàåò íà êîíåö äåéñòâèÿ äèðåêòèâ ifdef è
989
                                 ifndef
988
                                 ifndef
990
 
989
 
991
  ? fastcallapi (FALSE/TRUE)     çàïðåòèòü/ðàçðåøèòü ãåíåðàöèþ áûñòðîãî âûçîâà
990
  ? fastcallapi (FALSE/TRUE)     çàïðåòèòü/ðàçðåøèòü ãåíåðàöèþ áûñòðîãî âûçîâà
992
                                 API-ïðîöåäóð (ïî óìîë÷àíèþ ðàçðåøåíî).
991
                                 API-ïðîöåäóð (ïî óìîë÷àíèþ ðàçðåøåíî).
993
                                 Äèðåêòèâà ðàáîòàåò ïðè êîìïèëÿöèè ïðîãðàìì
992
                                 Äèðåêòèâà ðàáîòàåò ïðè êîìïèëÿöèè ïðîãðàìì
994
                                 ïîä Windows.
993
                                 ïîä Windows.
995
 
994
 
996
  ? fixuptable (TRUE/FALSE)      ðàçðåøèòü/çàïðåòèòü ñîçäàíèå FixUp òàáëèöû
995
  ? fixuptable (TRUE/FALSE)      ðàçðåøèòü/çàïðåòèòü ñîçäàíèå FixUp òàáëèöû
997
                                 (ïî óìîë÷àíèþ çàïðåùåíî). Äèðåêòèâà ðàáîòàåò
996
                                 (ïî óìîë÷àíèþ çàïðåùåíî). Äèðåêòèâà ðàáîòàåò
998
                                 ïðè êîìïèëÿöèè ïðîãðàìì ïîä Windows.
997
                                 ïðè êîìïèëÿöèè ïðîãðàìì ïîä Windows.
999
 
998
 
1000
  ? ifdef (identifier)           åñëè èäåíòèôèêàòîð îïðåäåëåí, òî âîçâðàùàåò
999
  ? ifdef (identifier)           åñëè èäåíòèôèêàòîð îïðåäåëåí, òî âîçâðàùàåò
1001
                                 TRUE èíà÷å FALSE
1000
                                 TRUE èíà÷å FALSE
1002
 
1001
 
1003
  ? imagebase value              çàäàåò àäðåñ Image Base. Ïî óìîë÷àíèþ ýòîò
1002
  ? imagebase value              çàäàåò àäðåñ Image Base. Ïî óìîë÷àíèþ ýòîò
1004
                                 àäðåñ  ðàâåí 0x400000. Äèðåêòèâà ðàáîòàåò ïðè
1003
                                 àäðåñ  ðàâåí 0x400000. Äèðåêòèâà ðàáîòàåò ïðè
1005
                                 êîìïèëÿöèè ïðîãðàìì ïîä Windows.
1004
                                 êîìïèëÿöèè ïðîãðàìì ïîä Windows.
1006
 
1005
 
1007
  ? ifndef (identifier)          åñëè èäåíòèôèêàòîð îïðåäåëåí, òî âîçâðàùàåò
1006
  ? ifndef (identifier)          åñëè èäåíòèôèêàòîð îïðåäåëåí, òî âîçâðàùàåò
1008
                                 FALSE èíà÷å TRUE
1007
                                 FALSE èíà÷å TRUE
1009
 
1008
 
1010
  ? include ("filename")         âêëþ÷àåò äðóãîé ôàéë.
1009
  ? include ("filename")         âêëþ÷àåò äðóãîé ôàéë.
1011
 
1010
 
1012
  ? includepath ("path")         óêàçàíèå êîìïèëÿòîðó, â êàêîé äèðåêòîðèè íàäî
1011
  ? includepath ("path")         óêàçàíèå êîìïèëÿòîðó, â êàêîé äèðåêòîðèè íàäî
1013
                                 èñêàòü âêëþ÷àåìûå ôàéëû
1012
                                 èñêàòü âêëþ÷àåìûå ôàéëû
1014
 
1013
 
1015
  ? initallvar                   èíèöèàëèçèðóåò 0 âñå íåèíèöèàëèçèðîâàííûå
1014
  ? initallvar                   èíèöèàëèçèðóåò 0 âñå íåèíèöèàëèçèðîâàííûå
1016
                                 ïåðåìåííûå.
1015
                                 ïåðåìåííûå.
1017
 
1016
 
1018
  ? jumptomain (NONE, SHORT, NEAR or FALSE)
1017
  ? jumptomain (NONE, SHORT, NEAR or FALSE)
1019
                                 óñòàíàâëèâàåò òèï ïåðåõîäà ê main(),
1018
                                 óñòàíàâëèâàåò òèï ïåðåõîäà ê main(),
1020
                                 çíà÷åíèå ïî óìîë÷àíèþ - NEAR.
1019
                                 çíà÷åíèå ïî óìîë÷àíèþ - NEAR.
1021
 
1020
 
1022
  ? maxerrors (number)           ìàêñèìàëüíîå êîëè÷åñòâî íàéäåííûõ îøèáîê,
1021
  ? maxerrors (number)           ìàêñèìàëüíîå êîëè÷åñòâî íàéäåííûõ îøèáîê,
1023
                                 ïðåâûñèâ êîòîðîå òðàíñëÿòîð ïðåêðàùàåò
1022
                                 ïðåâûñèâ êîòîðîå òðàíñëÿòîð ïðåêðàùàåò
1024
                                 ðàáîòó, çíà÷åíèå ïî óìîë÷àíèþ - 16.
1023
                                 ðàáîòó, çíà÷åíèå ïî óìîë÷àíèþ - 16.
1025
 
1024
 
1026
  ? movedatarom  (TRUE/FALSE)    óêàçûâàåò êîìïèëÿòîðó î íåîáõîäèìîñòè
1025
  ? movedatarom  (TRUE/FALSE)    óêàçûâàåò êîìïèëÿòîðó î íåîáõîäèìîñòè
1027
                                 ïåðåíîñà äàííûõ èç ÏÇÓ â ÎÇÓ.
1026
                                 ïåðåíîñà äàííûõ èç ÏÇÓ â ÎÇÓ.
1028
 
1027
 
1029
  ? parsecommandline (TRUE or FALSE)
1028
  ? parsecommandline (TRUE or FALSE)
1030
                                 âêëþ÷àåò â ïðîãðàììó áëîê êîäà äëÿ
1029
                                 âêëþ÷àåò â ïðîãðàììó áëîê êîäà äëÿ
1031
                                 ñèíòàêñè÷åñêîãî àíàëèçà êîìàíäíîé ñòðîêè
1030
                                 ñèíòàêñè÷åñêîãî àíàëèçà êîìàíäíîé ñòðîêè
1032
                                 çíà÷åíèå ïî óìîë÷àíèþ FALSE.
1031
                                 çíà÷åíèå ïî óìîë÷àíèþ FALSE.
1033
 
1032
 
1034
  ? pragma                       ìîæåò îáúÿâëÿòü íåñêîëüêî äðóãèõ äèðåêòèâ
1033
  ? pragma                       ìîæåò îáúÿâëÿòü íåñêîëüêî äðóãèõ äèðåêòèâ
1035
 
1034
 
1036
  ? print (number or string)     âûâîäèò íà ýêðàí ñòðîêó èëè ÷èñëî.
1035
  ? print (number or string)     âûâîäèò íà ýêðàí ñòðîêó èëè ÷èñëî.
1037
 
1036
 
1038
  ? printhex (number)            âûâîäèò íà ýêðàí ÷èñëî â øåñòíàäöàòåðè÷íîì
1037
  ? printhex (number)            âûâîäèò íà ýêðàí ÷èñëî â øåñòíàäöàòåðè÷íîì
1039
                                 êîäå.
1038
                                 êîäå.
1040
 
1039
 
1041
  ? randombyte                   âñòàâëÿåò â êîä ïðîãðàììû áàéò ñëó÷àéíîãî
1040
  ? randombyte                   âñòàâëÿåò â êîä ïðîãðàììû áàéò ñëó÷àéíîãî
1042
                                 çíà÷åíèÿ.
1041
                                 çíà÷åíèÿ.
1043
 
1042
 
1044
  ? resize (TRUE or FALSE)       âêëþ÷àåò ôóíêöèþ èçìåíåíèÿ ïîñëå çàïóñêà
1043
  ? resize (TRUE or FALSE)       âêëþ÷àåò ôóíêöèþ èçìåíåíèÿ ïîñëå çàïóñêà
1045
                                 ðàçìåðà âûäåëåííîãî ïðîãðàììå áëîêà ïàìÿòè
1044
                                 ðàçìåðà âûäåëåííîãî ïðîãðàììå áëîêà ïàìÿòè
1046
                                 íà ìèíèìàëüíî òðåáóåìûé îáúåì,
1045
                                 íà ìèíèìàëüíî òðåáóåìûé îáúåì,
1047
                                 çíà÷åíèå ïî óìîë÷àíèþ TRUE.
1046
                                 çíà÷åíèå ïî óìîë÷àíèþ TRUE.
1048
 
1047
 
1049
  ? resizemessage (string)       ñîîáùåíèå, âûâîäèìîå íà ýêðàí ïåðåä
1048
  ? resizemessage (string)       ñîîáùåíèå, âûâîäèìîå íà ýêðàí ïåðåä
1050
                                 àâàðèéíûì ïðåðûâàíèåì âûïîëíåíèÿ ïðîãðàììû,
1049
                                 àâàðèéíûì ïðåðûâàíèåì âûïîëíåíèÿ ïðîãðàììû,
1051
                                 åñëè èçìåíåíèå ðàçìåðà âûäåëåííîãî ïðîãðàììå
1050
                                 åñëè èçìåíåíèå ðàçìåðà âûäåëåííîãî ïðîãðàììå
1052
                                 áëîêà ïàìÿòè íå âûïîëíåíî.
1051
                                 áëîêà ïàìÿòè íå âûïîëíåíî.
1053
 
1052
 
1054
  ? setdinproc                   ïî ýòîé äèðåêòèâå êîìïèëÿòîð íåìåäëåííî
1053
  ? setdinproc                   ïî ýòîé äèðåêòèâå êîìïèëÿòîð íåìåäëåííî
1055
                                 âñòàâëÿåò â êîä êîìïèëèðóåìîé ïðîãðàììû âñå
1054
                                 âñòàâëÿåò â êîä êîìïèëèðóåìîé ïðîãðàììû âñå
1056
                                 âûçûâàâøèåñÿ ðàíåå äèíàìè÷åñêèå ïðîöåäóðû.
1055
                                 âûçûâàâøèåñÿ ðàíåå äèíàìè÷åñêèå ïðîöåäóðû.
1057
 
1056
 
1058
  ? sizerom  (value)             óêàçûâàåò êîìïèëÿòîðó ðàçìåð ÏÇÓ.
1057
  ? sizerom  (value)             óêàçûâàåò êîìïèëÿòîðó ðàçìåð ÏÇÓ.
1059
 
1058
 
1060
  ? speed                        îïòèìèçàöèÿ áûñòðîäåéñòâèÿ (çíà÷åíèå
1059
  ? speed                        îïòèìèçàöèÿ áûñòðîäåéñòâèÿ (çíà÷åíèå
1061
                                 ïî óìîë÷àíèþ) â óùåðá ðàçìåðó êîäà.
1060
                                 ïî óìîë÷àíèþ) â óùåðá ðàçìåðó êîäà.
1062
 
1061
 
1063
  ? stack (number)               îïðåäåëÿåò ðàçìåð ñòåêà ïðîãðàììû â áàéòàõ.
1062
  ? stack (number)               îïðåäåëÿåò ðàçìåð ñòåêà ïðîãðàììû â áàéòàõ.
1064
 
1063
 
1065
  ? startaddress (number)        óñòàíàâëèâàåò ñòàðòîâûé àäðåñ íà÷àëà êîäà,
1064
  ? startaddress (number)        óñòàíàâëèâàåò ñòàðòîâûé àäðåñ íà÷àëà êîäà,
1066
                                 çíà÷åíèå ïî óìîë÷àíèþ 0x100.
1065
                                 çíà÷åíèå ïî óìîë÷àíèþ 0x100.
1067
 
1066
 
1068
  ? startuptomain                â com-ôàéëàõ ðàçìåùàåò startup-êîä â
1067
  ? startuptomain                â com-ôàéëàõ ðàçìåùàåò startup-êîä â
1069
                                 ïðîöåäóðå main().
1068
                                 ïðîöåäóðå main().
1070
 
1069
 
1071
  ? startusevar (number)         óêàçûâàåò àäðåñ, ñ êîòîðîãî ðàçðåøåíî
1070
  ? startusevar (number)         óêàçûâàåò àäðåñ, ñ êîòîðîãî ðàçðåøåíî
1072
                                 èñïîëüçîâàòü ÿ÷åéêè ïàìÿòè ïîä
1071
                                 èñïîëüçîâàòü ÿ÷åéêè ïàìÿòè ïîä
1073
                                 íåèíèöèàëèçèðîâàííûå ïåðåìåííûå.
1072
                                 íåèíèöèàëèçèðîâàííûå ïåðåìåííûå.
1074
 
1073
 
1075
  ? sysattribute (çíà÷åíèå)      ýòà äèðåêòèâà ïåðåäàåò êîìïèëÿòîðó àòðèáóò
1074
  ? sysattribute (çíà÷åíèå)      ýòà äèðåêòèâà ïåðåäàåò êîìïèëÿòîðó àòðèáóò
1076
                                 ñîçäàâàåìîãî äðàéâåðà. Ïî óìîë÷àíèþ
1075
                                 ñîçäàâàåìîãî äðàéâåðà. Ïî óìîë÷àíèþ
1077
                                 óñòàíàâëèâàåòñÿ çíà÷åíèå 0x2000.
1076
                                 óñòàíàâëèâàåòñÿ çíà÷åíèå 0x2000.
1078
                                 Äåéñòâóåò òîëüêî ñ êëþ÷îì /SYS.
1077
                                 Äåéñòâóåò òîëüêî ñ êëþ÷îì /SYS.
1079
 
1078
 
1080
  ? sysname <òåêñòîâàÿ ñòðîêà>   ýòà äèðåêòèâà ïåðåäàåò êîìïèëÿòîðó èìÿ
1079
  ? sysname <òåêñòîâàÿ ñòðîêà>   ýòà äèðåêòèâà ïåðåäàåò êîìïèëÿòîðó èìÿ
1081
                                 áóäóùåãî äðàéâåðà. Ïî óìîë÷àíèþ
1080
                                 áóäóùåãî äðàéâåðà. Ïî óìîë÷àíèþ
1082
                                 ïðèñâàèâàåòñÿ èìÿ NO_NAME. Äëèíà èìåíè íå
1081
                                 ïðèñâàèâàåòñÿ èìÿ NO_NAME. Äëèíà èìåíè íå
1083
                                 áîëåå 8 ñèìâîëîâ.  Äåéñòâóåò òîëüêî ñ êëþ÷îì
1082
                                 áîëåå 8 ñèìâîëîâ.  Äåéñòâóåò òîëüêî ñ êëþ÷îì
1084
                                 /SYS.
1083
                                 /SYS.
1085
 
1084
 
1086
  ? syscommand ,, ...; - ýòà äèðåêòèâà
1085
  ? syscommand ,, ...; - ýòà äèðåêòèâà
1087
                                 ÿâëÿåòñÿ îáÿçàòåëüíîé ïðè ñîçäàíèè
1086
                                 ÿâëÿåòñÿ îáÿçàòåëüíîé ïðè ñîçäàíèè
1088
                                 äðàéâåðîâ. Ïî ýòîé äèðåêòèâå êîìïèëÿòîðó
1087
                                 äðàéâåðîâ. Ïî ýòîé äèðåêòèâå êîìïèëÿòîðó
1089
                                 ïåðåäàåòñÿ ñïèñîê èìåí ïðîöåäóð îáðàáîòêè
1088
                                 ïåðåäàåòñÿ ñïèñîê èìåí ïðîöåäóð îáðàáîòêè
1090
                                 êîìàíä äðàéâåðà. Äåéñòâóåò òîëüêî ñ êëþ÷îì
1089
                                 êîìàíä äðàéâåðà. Äåéñòâóåò òîëüêî ñ êëþ÷îì
1091
                                 /SYS.
1090
                                 /SYS.
1092
 
1091
 
1093
  ? warning (TRUE or FALSE)      ýòà äèðåêòèâà ðàçðåøàåò èëè çàïðåùàåò âûäà÷ó
1092
  ? warning (TRUE or FALSE)      ýòà äèðåêòèâà ðàçðåøàåò èëè çàïðåùàåò âûäà÷ó
1094
                                 ïðåäóïðåæäåíèé. Äèðåêòèâà äåéñòâóåò òîëüêî â
1093
                                 ïðåäóïðåæäåíèé. Äèðåêòèâà äåéñòâóåò òîëüêî â
1095
                                 ïðåäåëàõ òåêóùåãî ôàéëà è íå âëèÿåò íà
1094
                                 ïðåäåëàõ òåêóùåãî ôàéëà è íå âëèÿåò íà
1096
                                 âêëþ÷àåìûå ôàéëû.
1095
                                 âêëþ÷àåìûå ôàéëû.
1097
 
1096
 
1098
  ? winmonoblock FALSE           çàïðåùàåò ðàçìåùåíèå òàáëèö ôàéëà ôîðìàòà PE
1097
  ? winmonoblock FALSE           çàïðåùàåò ðàçìåùåíèå òàáëèö ôàéëà ôîðìàòà PE
1099
                                 â îäíó ñåêöèþ.
1098
                                 â îäíó ñåêöèþ.
1100
 
1099
 
1101
  ? undef                        óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé
1100
  ? undef                        óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé
1102
                                 ? define
1101
                                 ? define
1103
 
1102
 
1104
  ? use8086                      îãðàíè÷èâàåòñÿ ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1103
  ? use8086                      îãðàíè÷èâàåòñÿ ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1105
                                 êîìàíäàìè 8088/8086 (çíà÷åíèå ïî óìîë÷àíèþ).
1104
                                 êîìàíäàìè 8088/8086 (çíà÷åíèå ïî óìîë÷àíèþ).
1106
 
1105
 
1107
  ? use8088                      îãðàíè÷èâàåòñÿ ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1106
  ? use8088                      îãðàíè÷èâàåòñÿ ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1108
                                 êîìàíäàìè 8088/8086 (çíà÷åíèå ïî óìîë÷àíèþ).
1107
                                 êîìàíäàìè 8088/8086 (çíà÷åíèå ïî óìîë÷àíèþ).
1109
 
1108
 
1110
  ? use80186                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1109
  ? use80186                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1111
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80186.
1110
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80186.
1112
 
1111
 
1113
  ? use80286                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1112
  ? use80286                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1114
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80286.
1113
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80286.
1115
 
1114
 
1116
  ? use80386                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1115
  ? use80386                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1117
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80386.
1116
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80386.
1118
 
1117
 
1119
  ? use80486                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1118
  ? use80486                     äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1120
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80486.
1119
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà 80486.
1121
 
1120
 
1122
  ? usePentium                   äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1121
  ? usePentium                   äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1123
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà Pentium.
1122
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà Pentium.
1124
 
1123
 
1125
  ? useMMX                       äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1124
  ? useMMX                       äîïóñêàåò ïðè ãåíåðàöèè îáúåêòíîãî êîäà
1126
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà Pentium
1125
                                 êîìàíäû è îïòèìèçàöèþ äëÿ ïðîöåññîðà Pentium
1127
                                 MMX.
1126
                                 MMX.
1128
 
1127
 
1129
  ? usestartup                   ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè
1128
  ? usestartup                   ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè
1130
                                 ïàìÿòè, çàíèìàåìûå êîäîì íà÷àëüíîé
1129
                                 ïàìÿòè, çàíèìàåìûå êîäîì íà÷àëüíîé
1131
                                 èíèöèàëèçàöèè ïðîãðàììû.
1130
                                 èíèöèàëèçàöèè ïðîãðàììû.
1132
Return to contents.
1131
Return to contents.
1133
 
1132
 
1134
 
1133
 
1135
 
1134
 
1136
    2.2.1 ?ifdef/?ifndef
1135
    2.2.1 ?ifdef/?ifndef
1137
 
1136
 
1138
 
1137
 
1139
         Ðàíåå äèðåêòèâà ?ifdef ñðàáàòûâàëà íà íàëè÷èå êîíñòàíòû íåçàâèñèìî
1138
         Ðàíåå äèðåêòèâà ?ifdef ñðàáàòûâàëà íà íàëè÷èå êîíñòàíòû íåçàâèñèìî
1140
    îò çíà÷åíèÿ åå âåëè÷èíû, à äèðåêòèâà ?ifndef ñðàáàòûâàëà íà îòñóòñòâèå
1139
    îò çíà÷åíèÿ åå âåëè÷èíû, à äèðåêòèâà ?ifndef ñðàáàòûâàëà íà îòñóòñòâèå
1141
    êîíñòàíòû â êîìïèëèðóåìîì ôàéëå. Òåïåðü ?indef ñðàáàòûâàåò ëèøü íà
1140
    êîíñòàíòû â êîìïèëèðóåìîì ôàéëå. Òåïåðü ?indef ñðàáàòûâàåò ëèøü íà
1142
    êîíñòàíòó îòëè÷íóþ îò FALSE, à ?ifndef ñðàáàòûâàåò êàê íà îòñóòñòâèå
1141
    êîíñòàíòó îòëè÷íóþ îò FALSE, à ?ifndef ñðàáàòûâàåò êàê íà îòñóòñòâèå
1143
    êîíñòàíòû â êîìïèëèðóåìîì ôàéëå, òàê è íà êîíñòàíòó èìåþùóþ çíà÷åíèå
1142
    êîíñòàíòû â êîìïèëèðóåìîì ôàéëå, òàê è íà êîíñòàíòó èìåþùóþ çíà÷åíèå
1144
    FALSE.
1143
    FALSE.
1145
 
1144
 
1146
        Äëÿ äèðåêòèâ ?ifdef/?ifndef çàðåçåðâèðîâàíû êîíñòàíòû codesize è
1145
        Äëÿ äèðåêòèâ ?ifdef/?ifndef çàðåçåðâèðîâàíû êîíñòàíòû codesize è
1147
    speed, êîòîðûå ïðèíèìàþò çíà÷åíèå TRUE èëè FALSE â çàâèñèìîñòè îò ðåæèìà
1146
    speed, êîòîðûå ïðèíèìàþò çíà÷åíèå TRUE èëè FALSE â çàâèñèìîñòè îò ðåæèìà
1148
    îïòèìèçàöèè. Ýòî áóäåò ïîëåçíûì äëÿ ñîçäàíèÿ áîëåå ãèáêèõ áèáëèîòåê.
1147
    îïòèìèçàöèè. Ýòî áóäåò ïîëåçíûì äëÿ ñîçäàíèÿ áîëåå ãèáêèõ áèáëèîòåê.
1149
 
1148
 
1150
        Åñòü âîçìîæíîñòü ïðîâåðêè òèïà CPU äëÿ êîòîðîãî âåäåòñÿ êîìïèëÿöèÿ.
1149
        Åñòü âîçìîæíîñòü ïðîâåðêè òèïà CPU äëÿ êîòîðîãî âåäåòñÿ êîìïèëÿöèÿ.
1151
    Äîïóñòèìûå âàðèàíòû ñèíòàêñèñà:
1150
    Äîïóñòèìûå âàðèàíòû ñèíòàêñèñà:
1152
 
1151
 
1153
    ?ifdef cpu > 1	 //åñëè ïðîãðàììà êîìïèëèðóåòñÿ äëÿ CPU âûøå 80186
1152
    ?ifdef cpu > 1       //åñëè ïðîãðàììà êîìïèëèðóåòñÿ äëÿ CPU âûøå 80186
1154
    ?ifndef cpu >= 2 // -------//------------- íå áîëüøå èëè ðàâíî 80286
1153
    ?ifndef cpu >= 2 // -------//------------- íå áîëüøå èëè ðàâíî 80286
1155
    ?ifdef cpu == 3  // -------//------------- ðàâíî 80386
1154
    ?ifdef cpu == 3  // -------//------------- ðàâíî 80386
1156
    ?ifdef cpu != 0  // -------//------------- íå ðàâåí 8086
1155
    ?ifdef cpu != 0  // -------//------------- íå ðàâåí 8086
1157
    ?ifdef cpu < 3   // -------//------------- õóæå 80386
1156
    ?ifdef cpu < 3   // -------//------------- õóæå 80386
1158
    ?ifdef cpu <= 2  // -------//------------- õóæå èëè ðàâåí 80286
1157
    ?ifdef cpu <= 2  // -------//------------- õóæå èëè ðàâåí 80286
1159
 
1158
 
1160
        Ýòà äèðåêòèâà ïîçâîëèò Âàì ïèñàòü îäíó ïðîöåäóðó äëÿ ðàçëè÷íûõ òèïîâ
1159
        Ýòà äèðåêòèâà ïîçâîëèò Âàì ïèñàòü îäíó ïðîöåäóðó äëÿ ðàçëè÷íûõ òèïîâ
1161
    CPU.
1160
    CPU.
1162
Return to contents.
1161
Return to contents.
1163
 
1162
 
1164
 
1163
 
1165
 
1164
 
1166
    2.2.2 ?initallvar
1165
    2.2.2 ?initallvar
1167
 
1166
 
1168
 
1167
 
1169
        Äèðåêòèâîé ?initallvar TRUE âêëþ÷àåòñÿ ðåæèì ïðè êîòîðîì âñåì
1168
        Äèðåêòèâîé ?initallvar TRUE âêëþ÷àåòñÿ ðåæèì ïðè êîòîðîì âñåì
1170
    íåèíèöèàëèçèðîâàííûì ïåðåìåííûì áóäåò ïðèñâîåíî íóëåâîå çíà÷åíèå è îíè
1169
    íåèíèöèàëèçèðîâàííûì ïåðåìåííûì áóäåò ïðèñâîåíî íóëåâîå çíà÷åíèå è îíè
1171
    áóäóò ðàñïîëàãàòüñÿ â òîì ìåñòå, ãäå áûëè îáúÿâëåíû. Ò.å. ïðàêòè÷åñêè
1170
    áóäóò ðàñïîëàãàòüñÿ â òîì ìåñòå, ãäå áûëè îáúÿâëåíû. Ò.å. ïðàêòè÷åñêè
1172
    èñ÷åçíóò íåèíèöèàëèçèðîâàííûå ïåðåìåííûå. Ýòî ìîæåò áûòü ïîëåçíûì ïðè
1171
    èñ÷åçíóò íåèíèöèàëèçèðîâàííûå ïåðåìåííûå. Ýòî ìîæåò áûòü ïîëåçíûì ïðè
1173
    íàïèñàíèè äðàéâåðîâ è ðåçèäåíòíûõ ïðîãðàìì.
1172
    íàïèñàíèè äðàéâåðîâ è ðåçèäåíòíûõ ïðîãðàìì.
1174
 
1173
 
1175
        Ïàðàìåòð FALSE ýòîé äèðåêòèâû îòêëþ÷àåò ýòîò ðåæèì.
1174
        Ïàðàìåòð FALSE ýòîé äèðåêòèâû îòêëþ÷àåò ýòîò ðåæèì.
1176
        Ïî óìîë÷àíèþ ýòà äèðåêòèâà óñòàíîâëåíà â FALSE.
1175
        Ïî óìîë÷àíèþ ýòà äèðåêòèâà óñòàíîâëåíà â FALSE.
1177
Return to contents.
1176
Return to contents.
1178
 
1177
 
1179
 
1178
 
1180
 
1179
 
1181
    2.2.3 ?usestartup
1180
    2.2.3 ?usestartup
1182
 
1181
 
1183
 
1182
 
1184
        Äèðåêòèâà ?usestartup ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè êîäà
1183
        Äèðåêòèâà ?usestartup ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè êîäà
1185
    íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû (startup) äëÿ ïîñëåäóþùåãî ðàçìåùåíèÿ â
1184
    íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû (startup) äëÿ ïîñëåäóþùåãî ðàçìåùåíèÿ â
1186
    íèõ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ. Ýòî ìîæåò áûòü ïîëåçíûì äëÿ ïîëó÷åíèÿ
1185
    íèõ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ. Ýòî ìîæåò áûòü ïîëåçíûì äëÿ ïîëó÷åíèÿ
1187
    áîëåå êîìïàêòíîãî êîäà, êàê îáû÷íûõ ïðîãðàìì, òàê è â îñîáåííîñòè
1186
    áîëåå êîìïàêòíîãî êîäà, êàê îáû÷íûõ ïðîãðàìì, òàê è â îñîáåííîñòè
1188
    ðåçèäåíòíûõ.
1187
    ðåçèäåíòíûõ.
1189
 
1188
 
1190
        Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
1189
        Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
1191
Return to contents.
1190
Return to contents.
1192
 
1191
 
1193
 
1192
 
1194
 
1193
 
1195
    2.2.4 ?startusevar
1194
    2.2.4 ?startusevar
1196
 
1195
 
1197
 
1196
 
1198
        Äèðåêòèâîé ?startusevar ìîæíî óêàçàòü íà÷àëüíûé àäðåñ ñ êîòîðîãî
1197
        Äèðåêòèâîé ?startusevar ìîæíî óêàçàòü íà÷àëüíûé àäðåñ ñ êîòîðîãî
1199
    êîìïèëÿòîð áóäåò ðàñïðåäåëÿòü ïàìÿòü äëÿ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
1198
    êîìïèëÿòîð áóäåò ðàñïðåäåëÿòü ïàìÿòü äëÿ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
1200
    Íàïðèìåð, ïîëó÷èâ äèðåêòèâó ?startusevar 0x53 êîìïèëÿòîð áóäåò
1199
    Íàïðèìåð, ïîëó÷èâ äèðåêòèâó ?startusevar 0x53 êîìïèëÿòîð áóäåò
1201
    ðàñïîëàãàòü íåèíèöèàëèçèðîâàííûå ïåðåìåííûå, íà÷èíàÿ ñ àäðåñà 0x53. Ýòî
1200
    ðàñïîëàãàòü íåèíèöèàëèçèðîâàííûå ïåðåìåííûå, íà÷èíàÿ ñ àäðåñà 0x53. Ýòî
1202
    ìîæåò áûòü ïîëåçíûì äëÿ ïîëó÷åíèÿ áîëåå êîìïàêòíîãî êîäà êàê äëÿ
1201
    ìîæåò áûòü ïîëåçíûì äëÿ ïîëó÷åíèÿ áîëåå êîìïàêòíîãî êîäà êàê äëÿ
1203
    ðåçèäåíòíûõ, òàê è äëÿ îáû÷íûõ ïðîãðàìì.
1202
    ðåçèäåíòíûõ, òàê è äëÿ îáû÷íûõ ïðîãðàìì.
1204
 
1203
 
1205
        Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
1204
        Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
1206
Return to contents.
1205
Return to contents.
1207
 
1206
 
1208
 
1207
 
1209
 
1208
 
1210
    2.2.5 ?atexit
1209
    2.2.5 ?atexit
1211
 
1210
 
1212
 
1211
 
1213
        Äèðåêòèâà ?atexit äîáàâëÿåò â startup ïðîãðàììû êîä ïîääåðæêè
1212
        Äèðåêòèâà ?atexit äîáàâëÿåò â startup ïðîãðàììû êîä ïîääåðæêè
1214
    ïðîöåäóðû ATEXIT, ðåçåðâèðóåò ìåñòî äëÿ õðàíåíèÿ 16 àäðåñîâ ïðîöåäóð è
1213
    ïðîöåäóðû ATEXIT, ðåçåðâèðóåò ìåñòî äëÿ õðàíåíèÿ 16 àäðåñîâ ïðîöåäóð è
1215
    èçìåíÿåò êîä ïðîöåäóð ABORT è EXIT.
1214
    èçìåíÿåò êîä ïðîöåäóð ABORT è EXIT.
1216
 
1215
 
1217
        Ïðîöåäóðà ATEXIT ðåãèñòðèðóåò ïðîöåäóðó, àäðåñ êîòîðîé ïåðåäàåòñÿ åé â
1216
        Ïðîöåäóðà ATEXIT ðåãèñòðèðóåò ïðîöåäóðó, àäðåñ êîòîðîé ïåðåäàåòñÿ åé â
1218
    êà÷åñòâå ïàðàìåòðà, êàê ïðîöåäóðó çàâåðøåíèÿ ïðîãðàììû. Ýòà ïðîöåäóðà
1217
    êà÷åñòâå ïàðàìåòðà, êàê ïðîöåäóðó çàâåðøåíèÿ ïðîãðàììû. Ýòà ïðîöåäóðà
1219
    áóäåò âûçâàíà â ìîìåíò çàâåðøåíèÿ ïðîãðàììû ïðîöåäóðàìè ABORT èëè EXIT
1218
    áóäåò âûçâàíà â ìîìåíò çàâåðøåíèÿ ïðîãðàììû ïðîöåäóðàìè ABORT èëè EXIT
1220
    èëè èíñòðóêöèåé RET èç main.
1219
    èëè èíñòðóêöèåé RET èç main.
1221
 
1220
 
1222
        Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ïðîöåäóð. Ïðîöåäóðû âûçûâàþòñÿ â
1221
        Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ïðîöåäóð. Ïðîöåäóðû âûçûâàþòñÿ â
1223
    ïîðÿäêå îáðàòíîì ïîðÿäêó èõ ðåãèñòðàöèè.
1222
    ïîðÿäêå îáðàòíîì ïîðÿäêó èõ ðåãèñòðàöèè.
1224
Return to contents.
1223
Return to contents.
1225
 
1224
 
1226
 
1225
 
1227
 
1226
 
1228
    2.2.6 ?startuptomain
1227
    2.2.6 ?startuptomain
1229
 
1228
 
1230
 
1229
 
1231
        Ïî ýòîé äèðåêòèâå êîìïèëÿòîð â íà÷àëå ôàéëà äåëàåò jmp íà íà÷àëî
1230
        Ïî ýòîé äèðåêòèâå êîìïèëÿòîð â íà÷àëå ôàéëà äåëàåò jmp íà íà÷àëî
1232
    ïðîöåäóðû main(). Ïåðåä íà÷àëîì êîìïèëÿöèè ýòîé ïðîöåäóðû êîìïèëÿòîð
1231
    ïðîöåäóðû main(). Ïåðåä íà÷àëîì êîìïèëÿöèè ýòîé ïðîöåäóðû êîìïèëÿòîð
1233
    íà÷íåò êîìïèëÿöèþ startup êîäà è ëèøü çàòåì áóäåò ïðîäîëæåíà êîìïèëÿöèÿ
1232
    íà÷íåò êîìïèëÿöèþ startup êîäà è ëèøü çàòåì áóäåò ïðîäîëæåíà êîìïèëÿöèÿ
1234
    ïðîöåäóðû main(). Òåì ñàìûì startup êîä îêàæåòñÿ íå â íà÷àëå ôàéëà, êàê
1233
    ïðîöåäóðû main(). Òåì ñàìûì startup êîä îêàæåòñÿ íå â íà÷àëå ôàéëà, êàê
1235
    ýòî ïðîèñõîäèò îáû÷íî, à â òåëå ïðîöåäóðû main(). Ýòî áóäåò ïîëåçíûì ïðè
1234
    ýòî ïðîèñõîäèò îáû÷íî, à â òåëå ïðîöåäóðû main(). Ýòî áóäåò ïîëåçíûì ïðè
1236
    êîìïèëÿöèè ðåçèäåíòíûõ ïðîãðàìì (TSR).
1235
    êîìïèëÿöèè ðåçèäåíòíûõ ïðîãðàìì (TSR).
1237
 
1236
 
1238
        Äèðåêòèâà ?startuptomain ðàáîòàåò òîëüêî ïðè êîìïèëÿöèè com-ôàéëîâ.
1237
        Äèðåêòèâà ?startuptomain ðàáîòàåò òîëüêî ïðè êîìïèëÿöèè com-ôàéëîâ.
1239
Return to contents.
1238
Return to contents.
1240
 
1239
 
1241
 
1240
 
1242
 
1241
 
1243
    2.2.7 ?undef
1242
    2.2.7 ?undef
1244
 
1243
 
1245
 
1244
 
1246
        Ýòà äèðåêòèâà óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé ?define. Åå
1245
        Ýòà äèðåêòèâà óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé ?define. Åå
1247
    ìîæíî ïðèìåíÿòü äëÿ èçìåíåíèÿ â ïðîöåññå êîìïèëÿöèè çíà÷åíèÿ êàêîé-íèáóäü
1246
    ìîæíî ïðèìåíÿòü äëÿ èçìåíåíèÿ â ïðîöåññå êîìïèëÿöèè çíà÷åíèÿ êàêîé-íèáóäü
1248
    êîíñòàíòû.
1247
    êîíñòàíòû.
1249
Return to contents.
1248
Return to contents.
1250
 
1249
 
1251
 
1250
 
1252
 
1251
 
1253
    2.2.8 ?align è ?aligncode
1252
    2.2.8 ?align è ?aligncode
1254
 
1253
 
1255
 
1254
 
1256
        Â C-- ñóùåñòâóåò äèðåêòèâà ?align, êîòîðàÿ äåëàåò îäíîêðàòíîå
1255
        Â C-- ñóùåñòâóåò äèðåêòèâà ?align, êîòîðàÿ äåëàåò îäíîêðàòíîå
1257
    âûðàâíèâàíèå äàííûõ íà ÷åòíûé àäðåñ. Íî åñëè ê ýòîé äèðåêòèâå äîáàâèòü
1256
    âûðàâíèâàíèå äàííûõ íà ÷åòíûé àäðåñ. Íî åñëè ê ýòîé äèðåêòèâå äîáàâèòü
1258
    ÷èñëî, òî âûðàâíèâàíèå áóäåò ïðîèçâåäåíî íà àäðåñ êðàòíûé ýòîìó ÷èñëó.
1257
    ÷èñëî, òî âûðàâíèâàíèå áóäåò ïðîèçâåäåíî íà àäðåñ êðàòíûé ýòîìó ÷èñëó.
1259
    Íàïðèìåð äèðåêòèâà ?align 4 äîïîëíèò ñåãìåíò äàííûõ äî àäðåñà êðàòíîãî
1258
    Íàïðèìåð äèðåêòèâà ?align 4 äîïîëíèò ñåãìåíò äàííûõ äî àäðåñà êðàòíîãî
1260
    4. Ïðè âûðàâíèâàíèè áóäóò âñòàâëÿòüñÿ áàéòû, çíà÷åíèÿ êîòîðûõ îïðåäåëÿþòñÿ
1259
    4. Ïðè âûðàâíèâàíèè áóäóò âñòàâëÿòüñÿ áàéòû, çíà÷åíèÿ êîòîðûõ îïðåäåëÿþòñÿ
1261
    äèðåêòèâîé ?aligner, ïî óìîë÷àíèþ ýòî çíà÷åíèå ðàâíî íóëþ. Äèðåêòèâà
1260
    äèðåêòèâîé ?aligner, ïî óìîë÷àíèþ ýòî çíà÷åíèå ðàâíî íóëþ. Äèðåêòèâà
1262
    ?align ïðîèçâîäèò âûðàâíèâàíèå òîëüêî â ñåãìåíòå äàííûõ. Â òåõ ìîäåëÿõ
1261
    ?align ïðîèçâîäèò âûðàâíèâàíèå òîëüêî â ñåãìåíòå äàííûõ. Â òåõ ìîäåëÿõ
1263
    ïàìÿòè, â êîòîðûõ ñåãìåíò äàííûõ è êîäà ñîâïàäàþò ýòó äèðåêòèâó ìîæíî
1262
    ïàìÿòè, â êîòîðûõ ñåãìåíò äàííûõ è êîäà ñîâïàäàþò ýòó äèðåêòèâó ìîæíî
1264
    ïðèìåíÿòü è äëÿ âûðàâíèâàíèÿ íà÷àëà ïðîöåäóð.
1263
    ïðèìåíÿòü è äëÿ âûðàâíèâàíèÿ íà÷àëà ïðîöåäóð.
1265
 
1264
 
1266
        Äèðåêòèâà ?aligncode [value] äåëàåò âûðàâíèâàíèå â ñåãìåíòå êîäà íà
1265
        Äèðåêòèâà ?aligncode [value] äåëàåò âûðàâíèâàíèå â ñåãìåíòå êîäà íà
1267
    àäðåñ êðàòíûé çíà÷åíèþ value, ïî óìîë÷àíèþ íà ÷åòíûé àäðåñ. Çíà÷åíèå áàéòà
1266
    àäðåñ êðàòíûé çíà÷åíèþ value, ïî óìîë÷àíèþ íà ÷åòíûé àäðåñ. Çíà÷åíèå áàéòà
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.
1274
 
1273
 
1275
 
1274
 
1276
 
1275
 
1277
    2.2.9 ?pragma
1276
    2.2.9 ?pragma
1278
 
1277
 
1279
 
1278
 
1280
        Äèðåêòèâà #pragma ýòî ìíîãîôóíêöèîíàëüíàëüíàÿ äèðåêòèâà, êîòîðàÿ â
1279
        Äèðåêòèâà #pragma ýòî ìíîãîôóíêöèîíàëüíàëüíàÿ äèðåêòèâà, êîòîðàÿ â
1281
    ñâîþ î÷åðåäü èìååò ñâîè äèðåêòèâû:
1280
    ñâîþ î÷åðåäü èìååò ñâîè äèðåêòèâû:
1282
 
1281
 
1283
      option
1282
      option
1284
        Äèðåêòèâà option ïîçâîëÿåò âêëþ÷èòü â Âàø êîä îïöèè êîìàíäíîé ñòðîêè
1283
        Äèðåêòèâà option ïîçâîëÿåò âêëþ÷èòü â Âàø êîä îïöèè êîìàíäíîé ñòðîêè
1285
    êîìïèëÿòîðà. Íåêîòîðûå îïöèè íå ìîãóò áûòü èñïîëüçîâàíû â ýòîé äèðåêòèâå;
1284
    êîìïèëÿòîðà. Íåêîòîðûå îïöèè íå ìîãóò áûòü èñïîëüçîâàíû â ýòîé äèðåêòèâå;
1286
    äðóãèå äîëæíû ïîìåùàòüñÿ â ñàìîì íà÷àëå èñõîäíîãî òåêñòà. Ïðèìåð:
1285
    äðóãèå äîëæíû ïîìåùàòüñÿ â ñàìîì íà÷àëå èñõîäíîãî òåêñòà. Ïðèìåð:
1287
 
1286
 
1288
      #pragma option w32c
1287
      #pragma option w32c
1289
 
1288
 
1290
        Ýòà äèðåêòèâà îáúÿâëÿåò êîìïèëÿòîðó, ÷òî íàäî ñîçäàòü êîíñîëüíûé
1289
        Ýòà äèðåêòèâà îáúÿâëÿåò êîìïèëÿòîðó, ÷òî íàäî ñîçäàòü êîíñîëüíûé
1291
    32-áèòíûé ôàéë ïîä windows.
1290
    32-áèòíûé ôàéë ïîä windows.
1292
 
1291
 
1293
      startup
1292
      startup
1294
       Äèðåêòèâîé startup ìîæíî óêàçàòü ôóíêöèþ, êîòîðàÿ áóäåò âûïîëíåíà ïåðåä
1293
       Äèðåêòèâîé startup ìîæíî óêàçàòü ôóíêöèþ, êîòîðàÿ áóäåò âûïîëíåíà ïåðåä
1295
    çàïóñêîì ïðîöåäóðû main. Ýòà äèðåêòèâà èìååò òàêîé ôîðìàò:
1294
    çàïóñêîì ïðîöåäóðû main. Ýòà äèðåêòèâà èìååò òàêîé ôîðìàò:
1296
 
1295
 
1297
      #pragma startup procname
1296
      #pragma startup procname
1298
 
1297
 
1299
        Êîëè÷åñòâî ðàç, êîòîðîå ìîæíî ïðèìåíÿòü ýòó äèðåêòèâó â îäíîé
1298
        Êîëè÷åñòâî ðàç, êîòîðîå ìîæíî ïðèìåíÿòü ýòó äèðåêòèâó â îäíîé
1300
    ïðîãðàììå íå îãðàíè÷åíî, íî ðåàëüíî ìîæíî èñïîëüçîâàòü ëèøü íåñêîëüêî
1299
    ïðîãðàììå íå îãðàíè÷åíî, íî ðåàëüíî ìîæíî èñïîëüçîâàòü ëèøü íåñêîëüêî
1301
    òûñÿ÷ ðàç.
1300
    òûñÿ÷ ðàç.
1302
 
1301
 
1303
      line
1302
      line
1304
        Äèðåêòèâà line âûâîäèò íà ýêðàí íîìåð òåêóùåé ñòðîêè è èìÿ ôàéëà.
1303
        Äèðåêòèâà line âûâîäèò íà ýêðàí íîìåð òåêóùåé ñòðîêè è èìÿ ôàéëà.
1305
    Äîïîëíèòåëüíî ìîæåò âûâîäèòüñÿ ñîäåðæèìîå ñòðîêè íàõîäÿùååñÿ ïîñëå ñëîâà
1304
    Äîïîëíèòåëüíî ìîæåò âûâîäèòüñÿ ñîäåðæèìîå ñòðîêè íàõîäÿùååñÿ ïîñëå ñëîâà
1306
    line. Ïðèìåð:
1305
    line. Ïðèìåð:
1307
 
1306
 
1308
      #pragma line information
1307
      #pragma line information
1309
 
1308
 
1310
        Âñòðåòèâ ýòó äèðåêòèâó, êîìïèëÿòîð âûâåäåò íà ýêðàí íîìåð ñòðîêè è èìÿ
1309
        Âñòðåòèâ ýòó äèðåêòèâó, êîìïèëÿòîð âûâåäåò íà ýêðàí íîìåð ñòðîêè è èìÿ
1311
    ôàéëà. Òàêæå áóäåò âûâåäåíî ñîîáùåíèå ñïðàâà îò ñëîâà line, åñëè îíî
1310
    ôàéëà. Òàêæå áóäåò âûâåäåíî ñîîáùåíèå ñïðàâà îò ñëîâà line, åñëè îíî
1312
    åñòü.
1311
    åñòü.
1313
 
1312
 
1314
      resource
1313
      resource
1315
        Ýòà äèðåêòèâà ìîæåò ïðèíèìàòü çíà÷åíèÿ start è end. Ýòè äâà
1314
        Ýòà äèðåêòèâà ìîæåò ïðèíèìàòü çíà÷åíèÿ start è end. Ýòè äâà
1316
    çíà÷åíèÿ âûäåëÿþò íà÷àëî è êîíåö áëîêà ðåñóðñîâ, åñëè âû èñïîëüçóåòå åãî
1315
    çíà÷åíèÿ âûäåëÿþò íà÷àëî è êîíåö áëîêà ðåñóðñîâ, åñëè âû èñïîëüçóåòå åãî
1317
    íåïîñðåäñòâåííî â èñõîäíîì êîäå ôàéëà, à íå â îòäåëüíîì ôàéëå. Ïðèìåð:
1316
    íåïîñðåäñòâåííî â èñõîäíîì êîäå ôàéëà, à íå â îòäåëüíîì ôàéëå. Ïðèìåð:
1318
 
1317
 
1319
    #pragma resource start
1318
    #pragma resource start
1320
 
1319
 
1321
    MyMenu MENU DISCARDABLE
1320
    MyMenu MENU DISCARDABLE
1322
    BEGIN    POPUP "Files",HELP
1321
    BEGIN    POPUP "Files",HELP
1323
        BEGIN
1322
        BEGIN
1324
            MENUITEM "Open",                        ID_OPEN
1323
            MENUITEM "Open",                        ID_OPEN
1325
            MENUITEM "Save",                        ID_SAVE
1324
            MENUITEM "Save",                        ID_SAVE
1326
            MENUITEM SEPARATOR
1325
            MENUITEM SEPARATOR
1327
            MENUITEM "Exit",                        ID_EXIT
1326
            MENUITEM "Exit",                        ID_EXIT
1328
        END
1327
        END
1329
        MENUITEM "Other",                           65535
1328
        MENUITEM "Other",                           65535
1330
    END
1329
    END
1331
 
1330
 
1332
    #pragma resource end
1331
    #pragma resource end
1333
Return to contents.
1332
Return to contents.
1334
 
1333
 
1335
 
1334
 
1336
 
1335
 
1337
3. Êîíñòàíòû.
1336
3. Êîíñòàíòû.
1338
 
1337
 
1339
  3.1 ×èñëîâûå êîíñòàíòû.
1338
  3.1 ×èñëîâûå êîíñòàíòû.
1340
 
1339
 
1341
 
1340
 
1342
      Ïðåäñòàâëåíèå ÷èñëîâûõ êîíñòàíò â âèäå äåñÿòè÷íûõ ÷èñåë (÷èñåë ñ
1341
      Ïðåäñòàâëåíèå ÷èñëîâûõ êîíñòàíò â âèäå äåñÿòè÷íûõ ÷èñåë (÷èñåë ñ
1343
  îñíîâàíèåì 10) è øåñòíàäöàòåðè÷íûõ ÷èñåë (îñíîâàíèå ñ÷èñëåíèÿ 16) ïîëíîñòüþ
1342
  îñíîâàíèåì 10) è øåñòíàäöàòåðè÷íûõ ÷èñåë (îñíîâàíèå ñ÷èñëåíèÿ 16) ïîëíîñòüþ
1344
  àíàëîãè÷íî ÿçûêó C.
1343
  àíàëîãè÷íî ÿçûêó C.
1345
 
1344
 
1346
      Ïðè äâîè÷íîì ïðåäñòàâëåíèè ÷èñåë (îñíîâàíèå 2) ÷èñëî äîëæíî íà÷èíàòüñÿ
1345
      Ïðè äâîè÷íîì ïðåäñòàâëåíèè ÷èñåë (îñíîâàíèå 2) ÷èñëî äîëæíî íà÷èíàòüñÿ
1347
  ñ ñèìâîëîâ 0b, çà êîòîðûìè áåç ïðîáåëà èäåò ïîñëåäîâàòåëüíîñòü íóëåé è
1346
  ñ ñèìâîëîâ 0b, çà êîòîðûìè áåç ïðîáåëà èäåò ïîñëåäîâàòåëüíîñòü íóëåé è
1348
  åäèíèö.
1347
  åäèíèö.
1349
 
1348
 
1350
      Ïðè âîñüìåðè÷íîì ïðåäñòàâëåíèè ÷èñåë (îñíîâàíèå 8) ÷èñëî äîëæíî
1349
      Ïðè âîñüìåðè÷íîì ïðåäñòàâëåíèè ÷èñåë (îñíîâàíèå 8) ÷èñëî äîëæíî
1351
  íà÷èíàòüñÿ ñ ñèìâîëîâ 0o, çà êîòîðûìè áåç ïðîáåëà èäåò ïîñëåäîâàòåëüíîñòü
1350
  íà÷èíàòüñÿ ñ ñèìâîëîâ 0o, çà êîòîðûìè áåç ïðîáåëà èäåò ïîñëåäîâàòåëüíîñòü
1352
  öèôð.
1351
  öèôð.
1353
 
1352
 
1354
      Âåùåñòâåííîå ÷èñëî îòëè÷àåòñÿ îò öåëîãî ïî íàëè÷èþ â íåì òî÷êè.
1353
      Âåùåñòâåííîå ÷èñëî îòëè÷àåòñÿ îò öåëîãî ïî íàëè÷èþ â íåì òî÷êè.
1355
  Íà÷èíàòüñÿ âåùåñòâåííîå ÷èñëî äîëæíî ëèáî öèôðîé îò 0 äî 9, ëèáî çíàêîì
1354
  Íà÷èíàòüñÿ âåùåñòâåííîå ÷èñëî äîëæíî ëèáî öèôðîé îò 0 äî 9, ëèáî çíàêîì
1356
  ìèíóñ. Íåîáÿçàòåëüíîé ÷àñòüþ âåùåñòâåííîãî ÷èñëà ÿâëÿåòñÿ ïîêàçàòåëü
1355
  ìèíóñ. Íåîáÿçàòåëüíîé ÷àñòüþ âåùåñòâåííîãî ÷èñëà ÿâëÿåòñÿ ïîêàçàòåëü
1357
  ñòåïåíè. Ïîêàçàòåëü ñòåïåíè îòäåëÿåòñÿ îò ÷èñëà ñèìâîëîì e èëè E.
1356
  ñòåïåíè. Ïîêàçàòåëü ñòåïåíè îòäåëÿåòñÿ îò ÷èñëà ñèìâîëîì e èëè E.
1358
  Ïðîáåëû íåäîïóñòèìû.
1357
  Ïðîáåëû íåäîïóñòèìû.
1359
 
1358
 
1360
  Ïðèìåðû:
1359
  Ïðèìåðû:
1361
    0b11111111 // äâîè÷íîå ïðåäñòàâëåíèå ÷èñëà 255
1360
    0b11111111 // äâîè÷íîå ïðåäñòàâëåíèå ÷èñëà 255
1362
    0x00F // øåñòíàäöàòåðè÷íîå ïðåäñòàâëåíèå ÷èñëà 15
1361
    0x00F // øåñòíàäöàòåðè÷íîå ïðåäñòàâëåíèå ÷èñëà 15
1363
    0o10 // âîñüìåðè÷íîå ïðåäñòàâëåíèå ÷èñëà 8
1362
    0o10 // âîñüìåðè÷íîå ïðåäñòàâëåíèå ÷èñëà 8
1364
    1.234567E-20 // âåùåñòâåííîå ÷èñëî
1363
    1.234567E-20 // âåùåñòâåííîå ÷èñëî
1365
 
1364
 
1366
      C-- âìåñòå ñ òðàäèöèîííûì C-ñòèëåì øåñòíàäöàòåðè÷íûõ ÷èñåë ïîíèìàåò è
1365
      C-- âìåñòå ñ òðàäèöèîííûì C-ñòèëåì øåñòíàäöàòåðè÷íûõ ÷èñåë ïîíèìàåò è
1367
  ÷èñëà çàïèñàííûå â ñòèëå àññåìáëåðà. Äëÿ òåõ, êòî âäðóã íå çíàåò, ñîîáùàþ,
1366
  ÷èñëà çàïèñàííûå â ñòèëå àññåìáëåðà. Äëÿ òåõ, êòî âäðóã íå çíàåò, ñîîáùàþ,
1368
  ÷òî øåñòíàäöàòåðè÷íûå ÷èñëà â àññåìáëåðå èìåþò íà êîíöå ñèìâîë h èëè H.
1367
  ÷òî øåñòíàäöàòåðè÷íûå ÷èñëà â àññåìáëåðå èìåþò íà êîíöå ñèìâîë h èëè H.
1369
  Åñëè ïåðâûé ñèìâîë øåñòíàäöàòåðè÷íîãî ÷èñëà áîëüøå 9, òî ïåðåä íèì
1368
  Åñëè ïåðâûé ñèìâîë øåñòíàäöàòåðè÷íîãî ÷èñëà áîëüøå 9, òî ïåðåä íèì
1370
  îáÿçàòåëüíî äîëæåí áûòü çàïèñàí ñèìâîë 0. Ïðèìåðû:
1369
  îáÿçàòåëüíî äîëæåí áûòü çàïèñàí ñèìâîë 0. Ïðèìåðû:
1371
 
1370
 
1372
    1234h
1371
    1234h
1373
    0A000H
1372
    0A000H
1374
 
1373
 
1375
      Ê ÷èñëîâûì êîíñòàíòàì ìîæíî ïèñàòü ñóôôèêñû L, U è F. Ôàêòè÷åñêè
1374
      Ê ÷èñëîâûì êîíñòàíòàì ìîæíî ïèñàòü ñóôôèêñû L, U è F. Ôàêòè÷åñêè
1376
  ýòè ñóôôèêñû â C-- íå èãðàþò íèêàêîé ðîëè, êîìïèëÿòîð èõ ïðîñòî
1375
  ýòè ñóôôèêñû â C-- íå èãðàþò íèêàêîé ðîëè, êîìïèëÿòîð èõ ïðîñòî
1377
  ïðîãëàòûâàåò. Ïðèìåð:
1376
  ïðîãëàòûâàåò. Ïðèìåð:
1378
 
1377
 
1379
  #define DEF  1L
1378
  #define DEF  1L
1380
  #define DEF2 2Lu
1379
  #define DEF2 2Lu
1381
  #define DEF3 3.0F
1380
  #define DEF3 3.0F
1382
 
1381
 
1383
      Ýòè ñóôôèêñû íå çàâèñÿò îò ðåãèñòðà, ò.å. èõ ìîæíî ïèñàòü êàê
1382
      Ýòè ñóôôèêñû íå çàâèñÿò îò ðåãèñòðà, ò.å. èõ ìîæíî ïèñàòü êàê
1384
  ìàëåíüêèìè, òàê è áîëüøèìè áóêâàìè.
1383
  ìàëåíüêèìè, òàê è áîëüøèìè áóêâàìè.
1385
Return to contents.
1384
Return to contents.
1386
 
1385
 
1387
 
1386
 
1388
 
1387
 
1389
  3.2 Ñèìâîëüíûå êîíñòàíòû.
1388
  3.2 Ñèìâîëüíûå êîíñòàíòû.
1390
 
1389
 
1391
 
1390
 
1392
      Îäèíî÷íûå ñèìâîëüíûå êîíñòàíòû, êàê è â C, äîëæíû çàêëþ÷àòüñÿ â
1391
      Îäèíî÷íûå ñèìâîëüíûå êîíñòàíòû, êàê è â C, äîëæíû çàêëþ÷àòüñÿ â
1393
  îäèíî÷íûå êàâû÷êè '.
1392
  îäèíî÷íûå êàâû÷êè '.
1394
 
1393
 
1395
      Òàêæå êàê è â C, äëÿ îáîçíà÷åíèÿ ñïåöèàëüíûõ ñèìâîëîâ ñëóæèò îáðàòíàÿ
1394
      Òàêæå êàê è â C, äëÿ îáîçíà÷åíèÿ ñïåöèàëüíûõ ñèìâîëîâ ñëóæèò îáðàòíàÿ
1396
  íàêëîííàÿ ÷åðòà âïðàâî \ ñ ïîñëåäóþùèì çà íåé êëþ÷åâûì ñèìâîëîì (èëè
1395
  íàêëîííàÿ ÷åðòà âïðàâî \ ñ ïîñëåäóþùèì çà íåé êëþ÷åâûì ñèìâîëîì (èëè
1397
  íåñêîëüêèìè ñèìâîëàìè). Ïîääåðæèâàþòñÿ ñëåäóþùèå ñïåöèàëüíûå ñèìâîëû:
1396
  íåñêîëüêèìè ñèìâîëàìè). Ïîääåðæèâàþòñÿ ñëåäóþùèå ñïåöèàëüíûå ñèìâîëû:
1398
 
1397
 
1399
    \a  /* çâóêîâîé ñèãíàë */
1398
    \a  /* çâóêîâîé ñèãíàë */
1400
    \b  /* çàáîé */
1399
    \b  /* çàáîé */
1401
    \f  /* ïåðåâîä  ñòðàíèöû */
1400
    \f  /* ïåðåâîä  ñòðàíèöû */
1402
    \l  /* ïåðåâîä ñòðîêè */
1401
    \l  /* ïåðåâîä ñòðîêè */
1403
    \n  /* âîçâðàò êàðåòêè*/
1402
    \n  /* âîçâðàò êàðåòêè*/
1404
    \r  /* âîçâðàò êàðåòêè*/
1403
    \r  /* âîçâðàò êàðåòêè*/
1405
    \t  /* òàáóëÿöèÿ */
1404
    \t  /* òàáóëÿöèÿ */
1406
    \x??  /* ñèìâîë ASCII, ñîîòâåòñòâóþùèé áàéòîâîìó ïðåäñòàâëåíèþ,
1405
    \x??  /* ñèìâîë ASCII, ñîîòâåòñòâóþùèé áàéòîâîìó ïðåäñòàâëåíèþ,
1407
               ñîñòîÿùåìó èç äâóõ øåñòíàäöàòåðè÷íûõ öèôð, ðàñïîëîæåííûõ
1406
               ñîñòîÿùåìó èç äâóõ øåñòíàäöàòåðè÷íûõ öèôð, ðàñïîëîæåííûõ
1408
               íà ìåñòå çíàêîâ âîïðîñà */
1407
               íà ìåñòå çíàêîâ âîïðîñà */
1409
     \???  /* ñèìâîë ASCII, ñîîòâåòñòâóþùèé áàéòîâîìó ïðåäñòàâëåíèþ,
1408
     \???  /* ñèìâîë ASCII, ñîîòâåòñòâóþùèé áàéòîâîìó ïðåäñòàâëåíèþ,
1410
               ñîñòîÿùåìó èç òðåõ äåñÿòè÷íûõ öèôð, ðàñïîëîæåííûõ
1409
               ñîñòîÿùåìó èç òðåõ äåñÿòè÷íûõ öèôð, ðàñïîëîæåííûõ
1411
               íà ìåñòå çíàêîâ âîïðîñà */
1410
               íà ìåñòå çíàêîâ âîïðîñà */
1412
 
1411
 
1413
      Ëþáîé äðóãîé ñèìâîë ïîñëå îáðàòíîé íàêëîííîé ÷åðòû âïðàâî áóäåò ïðèíÿò
1412
      Ëþáîé äðóãîé ñèìâîë ïîñëå îáðàòíîé íàêëîííîé ÷åðòû âïðàâî áóäåò ïðèíÿò
1414
  êàê ïðîñòîé ñèìâîë.
1413
  êàê ïðîñòîé ñèìâîë.
1415
 
1414
 
1416
      Ñèìâîë "Îäèíî÷íàÿ êàâû÷êà" ' ìîæåò áûòü ââåäåí ïðè ïîìîùè êîíñòðóêöèè
1415
      Ñèìâîë "Îäèíî÷íàÿ êàâû÷êà" ' ìîæåò áûòü ââåäåí ïðè ïîìîùè êîíñòðóêöèè
1417
  \'
1416
  \'
1418
 
1417
 
1419
      Ñèìâîë NULL ìîæåò áûòü ââåäåí êàê ''
1418
      Ñèìâîë NULL ìîæåò áûòü ââåäåí êàê ''
1420
 
1419
 
1421
      Â C-- ïîääåðæèâàþòñÿ è ìíîãîáóêâåííûå ñèìâîëüíûå êîíñòàíòû. Ïðèìåðû
1420
      Â C-- ïîääåðæèâàþòñÿ è ìíîãîáóêâåííûå ñèìâîëüíûå êîíñòàíòû. Ïðèìåðû
1422
  ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò:
1421
  ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò:
1423
 
1422
 
1424
         'ab'
1423
         'ab'
1425
         'the'
1424
         'the'
1426
         'this is large'
1425
         'this is large'
1427
 
1426
 
1428
      Íèêàêîãî îãðàíè÷åíèÿ íà ÷èñëî ñèìâîëîâ â ñèìâîëüíîé êîíñòàíòå íå
1427
      Íèêàêîãî îãðàíè÷åíèÿ íà ÷èñëî ñèìâîëîâ â ñèìâîëüíîé êîíñòàíòå íå
1429
  íàêëàäûâàåòñÿ, íî ðàçëè÷àþòñÿ òîëüêî ïîñëåäíèå 4 ñèìâîëà. Ýòî - ìàêñèìóì,
1428
  íàêëàäûâàåòñÿ, íî ðàçëè÷àþòñÿ òîëüêî ïîñëåäíèå 4 ñèìâîëà. Ýòî - ìàêñèìóì,
1430
  êîòîðûé ìîæåò áûòü ñîõðàíåí â 32-ðàçðÿäíîé ïåðåìåííîé. Íàïðèìåð, êîíñòàíòû
1429
  êîòîðûé ìîæåò áûòü ñîõðàíåí â 32-ðàçðÿäíîé ïåðåìåííîé. Íàïðèìåð, êîíñòàíòû
1431
  this is large è arge - îäèíàêîâû.
1430
  this is large è arge - îäèíàêîâû.
1432
 
1431
 
1433
      C-- îáðàáàòûâàåò âñå ñèìâîëüíûå êîíñòàíòû êàê ÷èñëîâûå çíà÷åíèÿ ASCII
1432
      C-- îáðàáàòûâàåò âñå ñèìâîëüíûå êîíñòàíòû êàê ÷èñëîâûå çíà÷åíèÿ ASCII
1434
  ñèìâîëîâ. Äëÿ ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò ïåðâûé ñèìâîë
1433
  ñèìâîëîâ. Äëÿ ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò ïåðâûé ñèìâîë
1435
  ñîîòâåòñòâóåò ñòàðøèì ðàçðÿäàì, òàêèì îáðàçîì, çíà÷åíèå äëÿ ab áóäåò
1434
  ñîîòâåòñòâóåò ñòàðøèì ðàçðÿäàì, òàêèì îáðàçîì, çíà÷åíèå äëÿ ab áóäåò
1436
  çàêîäèðîâàíî êàê a*256+b.
1435
  çàêîäèðîâàíî êàê a*256+b.
1437
Return to contents.
1436
Return to contents.
1438
 
1437
 
1439
 
1438
 
1440
 
1439
 
1441
  3.3 Ñòðîêîâûå êîíñòàíòû.
1440
  3.3 Ñòðîêîâûå êîíñòàíòû.
1442
 
1441
 
1443
 
1442
 
1444
      Ñòðîêîâûå êîíñòàíòû, êàê è â C, çàêëþ÷àþòñÿ â äâîéíûå êàâû÷êè (").
1443
      Ñòðîêîâûå êîíñòàíòû, êàê è â C, çàêëþ÷àþòñÿ â äâîéíûå êàâû÷êè (").
1445
  Ñïåöèàëüíûå ñèìâîëû âíóòðè ñòðîê îáîçíà÷àþòñÿ òàê æå, êàê è â ñèìâîëüíûõ
1444
  Ñïåöèàëüíûå ñèìâîëû âíóòðè ñòðîê îáîçíà÷àþòñÿ òàê æå, êàê è â ñèìâîëüíûõ
1446
  êîíñòàíòàõ. Âñå ñïåöèàëüíûå ñèìâîëû èìåþò òî æå çíà÷åíèå, ÷òî è â
1445
  êîíñòàíòàõ. Âñå ñïåöèàëüíûå ñèìâîëû èìåþò òî æå çíà÷åíèå, ÷òî è â
1447
  ñèìâîëüíûõ êîíñòàíòàõ çà èñêëþ÷åíèåì \n, êîòîðûé èìååò çíà÷åíèå íîâàÿ
1446
  ñèìâîëüíûõ êîíñòàíòàõ çà èñêëþ÷åíèåì \n, êîòîðûé èìååò çíà÷åíèå íîâàÿ
1448
  ñòðîêà è çàìåíÿåò ñîáîé ïàðó ñèìâîëîâ âîçâðàò êàðåòêè è ïåðåâîä
1447
  ñòðîêà è çàìåíÿåò ñîáîé ïàðó ñèìâîëîâ âîçâðàò êàðåòêè è ïåðåâîä
1449
  ñòðîêè.
1448
  ñòðîêè.
1450
 
1449
 
1451
      Â íàñòîÿùåå âðåìÿ íàèáîëüøàÿ äëèíà ñòðîêîâîé êîíñòàíòû - 2048 ñèìâîëîâ,
1450
      Â íàñòîÿùåå âðåìÿ íàèáîëüøàÿ äëèíà ñòðîêîâîé êîíñòàíòû - 2048 ñèìâîëîâ,
1452
  âêëþ÷àÿ ñèìâîë-îãðàíè÷èòåëü 0, òàêèì îáðàçîì, ìàêñèìóì 2047 çíà÷àùèõ
1451
  âêëþ÷àÿ ñèìâîë-îãðàíè÷èòåëü 0, òàêèì îáðàçîì, ìàêñèìóì 2047 çíà÷àùèõ
1453
  ñèìâîëîâ.
1452
  ñèìâîëîâ.
1454
Return to contents.
1453
Return to contents.
1455
 
1454
 
1456
 
1455
 
1457
 
1456
 
1458
  3.4 Ïîñòîÿííûå âûðàæåíèÿ.
1457
  3.4 Ïîñòîÿííûå âûðàæåíèÿ.
1459
 
1458
 
1460
 
1459
 
1461
      Ïîñòîÿííîå âûðàæåíèå - îäèíî÷íàÿ ÷èñëîâàÿ êîíñòàíòà èëè íåñêîëüêî
1460
      Ïîñòîÿííîå âûðàæåíèå - îäèíî÷íàÿ ÷èñëîâàÿ êîíñòàíòà èëè íåñêîëüêî
1462
  ÷èñëîâûõ êîíñòàíò, ñâÿçàííûõ ìåæäó ñîáîé îïåðàòîðàìè. ×èñëîâîå çíà÷åíèå
1461
  ÷èñëîâûõ êîíñòàíò, ñâÿçàííûõ ìåæäó ñîáîé îïåðàòîðàìè. ×èñëîâîå çíà÷åíèå
1463
  âûðàæåíèÿ âû÷èñëÿåòñÿ îäèí ðàç âî âðåìÿ êîìïèëÿöèè è äàëåå èñïîëüçóåòñÿ
1462
  âûðàæåíèÿ âû÷èñëÿåòñÿ îäèí ðàç âî âðåìÿ êîìïèëÿöèè è äàëåå èñïîëüçóåòñÿ
1464
  òîëüêî åãî ïîñòîÿííîå çíà÷åíèå.
1463
  òîëüêî åãî ïîñòîÿííîå çíà÷åíèå.
1465
 
1464
 
1466
      Ïîäîáíî âñåì âûðàæåíèÿì â C--, ïîñòîÿííûå âûðàæåíèÿ âñåãäà âû÷èñëÿþòñÿ
1465
      Ïîäîáíî âñåì âûðàæåíèÿì â C--, ïîñòîÿííûå âûðàæåíèÿ âñåãäà âû÷èñëÿþòñÿ
1467
  ñëåâà íàïðàâî, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè! Ýòî ñîâåðøåííî îòëè÷íî îò
1466
  ñëåâà íàïðàâî, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè! Ýòî ñîâåðøåííî îòëè÷íî îò
1468
  äðóãèõ ÿçûêîâ, è ïðè íàïèñàíèè âûðàæåíèé íàäî áûòü îñòîðîæíûì è ïîìíèòü,
1467
  äðóãèõ ÿçûêîâ, è ïðè íàïèñàíèè âûðàæåíèé íàäî áûòü îñòîðîæíûì è ïîìíèòü,
1469
  ÷òî 2+3*2=10 à íå 8.
1468
  ÷òî 2+3*2=10 à íå 8.
1470
 
1469
 
1471
      Íåêîòîðûå ïðèìåðû ïîñòîÿííûõ âûðàæåíèé:
1470
      Íåêîòîðûå ïðèìåðû ïîñòîÿííûõ âûðàæåíèé:
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.
1478
 
1477
 
1479
 
1478
 
1480
 
1479
 
1481
4. Âûðàæåíèÿ.
1480
4. Âûðàæåíèÿ.
1482
 
1481
 
1483
  4.1 Òèïû âûðàæåíèé.
1482
  4.1 Òèïû âûðàæåíèé.
1484
 
1483
 
1485
 
1484
 
1486
      Èìåþòñÿ òðè òèïà âûðàæåíèé â C--, íå ñ÷èòàÿ ïîñòîÿííûõ âûðàæåíèé. Ýòî
1485
      Èìåþòñÿ òðè òèïà âûðàæåíèé â C--, íå ñ÷èòàÿ ïîñòîÿííûõ âûðàæåíèé. Ýòî
1487
  âûðàæåíèÿ òèïà EAX/AX/AL, âûðàæåíèÿ òèïà íåEAX/AX/AL è óñëîâíûå âûðàæåíèÿ.
1486
  âûðàæåíèÿ òèïà EAX/AX/AL, âûðàæåíèÿ òèïà íåEAX/AX/AL è óñëîâíûå âûðàæåíèÿ.
1488
  Âñå C-- âûðàæåíèÿ âû÷èñëÿþòñÿ ñëåâà íàïðàâî, íåçàâèñèìî îò ñòàðøèíñòâà
1487
  Âñå C-- âûðàæåíèÿ âû÷èñëÿþòñÿ ñëåâà íàïðàâî, íåçàâèñèìî îò ñòàðøèíñòâà
1489
  âõîäÿùèõ â âûðàæåíèå ìàòåìàòè÷åñêèõ îïåðàöèé.
1488
  âõîäÿùèõ â âûðàæåíèå ìàòåìàòè÷åñêèõ îïåðàöèé.
1490
Return to contents.
1489
Return to contents.
1491
 
1490
 
1492
 
1491
 
1493
 
1492
 
1494
  4.2 Âûðàæåíèÿ òèïà EAX/AX/AL.
1493
  4.2 Âûðàæåíèÿ òèïà EAX/AX/AL.
1495
 
1494
 
1496
 
1495
 
1497
      Ýòîò òèï âûðàæåíèé ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà åãî ðåçóëüòàò ìîæåò áûòü
1496
      Ýòîò òèï âûðàæåíèé ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà åãî ðåçóëüòàò ìîæåò áûòü
1498
  ñîõðàíåí â ïåðåìåííîé â ïàìÿòè èëè â ðåãèñòðå EAX èëè AX èëè AL.
1497
  ñîõðàíåí â ïåðåìåííîé â ïàìÿòè èëè â ðåãèñòðå EAX èëè AX èëè AL.
1499
 
1498
 
1500
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà byte èëè char,
1499
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà byte èëè char,
1501
  èñïîëüçóåòñÿ íîòàöèÿ AL.
1500
  èñïîëüçóåòñÿ íîòàöèÿ AL.
1502
 
1501
 
1503
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà word èëè int,
1502
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà word èëè int,
1504
  èñïîëüçóåòñÿ íîòàöèÿ AX.
1503
  èñïîëüçóåòñÿ íîòàöèÿ AX.
1505
 
1504
 
1506
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà dword, long èëè
1505
      Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà dword, long èëè
1507
  float, èñïîëüçóåòñÿ íîòàöèÿ EAX.
1506
  float, èñïîëüçóåòñÿ íîòàöèÿ EAX.
1508
Return to contents.
1507
Return to contents.
1509
 
1508
 
1510
 
1509
 
1511
 
1510
 
1512
  4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
1511
  4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
1513
 
1512
 
1514
 
1513
 
1515
      Åñëè â ïðàâîé ÷àñòè âûðàæåíèÿ èñïîëüçóåòñÿ ïåðåìåííàÿ ÿâëÿþùàÿñÿ
1514
      Åñëè â ïðàâîé ÷àñòè âûðàæåíèÿ èñïîëüçóåòñÿ ïåðåìåííàÿ ÿâëÿþùàÿñÿ
1516
  îäíîâðåìåííî è ïðèåìíèêîì, òî òàêèå âûðàæåíèÿ äàþò ðàçëè÷íûå ðåçóëüòàòû â
1515
  îäíîâðåìåííî è ïðèåìíèêîì, òî òàêèå âûðàæåíèÿ äàþò ðàçëè÷íûå ðåçóëüòàòû â
1517
  çàâèñèìîñòè îò òîãî ÿâëÿåòñÿ ïðèåìíèê ðåãèñòðîì èëè ïåðåìåííîé ïàìÿòè. Ýòî
1516
  çàâèñèìîñòè îò òîãî ÿâëÿåòñÿ ïðèåìíèê ðåãèñòðîì èëè ïåðåìåííîé ïàìÿòè. Ýòî
1518
  ñâÿçàíî ñ òåì, ÷òî ïðè âû÷èñëåíèè âûðàæåíèÿ â ïåðåìåííóþ ïàìÿòè, âû÷èñëåíèå
1517
  ñâÿçàíî ñ òåì, ÷òî ïðè âû÷èñëåíèè âûðàæåíèÿ â ïåðåìåííóþ ïàìÿòè, âû÷èñëåíèå
1519
  ïðîèçâîäèòñÿ ñíà÷àëà â ðåãèñòð EAX/AX/AL, è ëèøü ïîñëå îêîí÷àíèÿ âû÷èñëåíèÿ
1518
  ïðîèçâîäèòñÿ ñíà÷àëà â ðåãèñòð EAX/AX/AL, è ëèøü ïîñëå îêîí÷àíèÿ âû÷èñëåíèÿ
1520
  ðåçóëüòàò áóäåò çàïèñàí â ïðèåìíèê. Åñëè æå ïðèåìíèêîì ÿâëÿåòñÿ ðåãèñòð, òî
1519
  ðåçóëüòàò áóäåò çàïèñàí â ïðèåìíèê. Åñëè æå ïðèåìíèêîì ÿâëÿåòñÿ ðåãèñòð, òî
1521
  åãî çíà÷åíèå áóäåò ìåíÿòüñÿ ïîñëå êàæäîé îïåðàöèè âû÷èñëåíèÿ. Ïðèìåð:
1520
  åãî çíà÷åíèå áóäåò ìåíÿòüñÿ ïîñëå êàæäîé îïåðàöèè âû÷èñëåíèÿ. Ïðèìåð:
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
1527
Return to contents.
1526
Return to contents.
1528
 
1527
 
1529
 
1528
 
1530
 
1529
 
1531
  4.4 Íå - EAX/AX/AL âûðàæåíèÿ.
1530
  4.4 Íå - EAX/AX/AL âûðàæåíèÿ.
1532
 
1531
 
1533
 
1532
 
1534
      Ýòîò òèï âûðàæåíèé ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà åãî ðåçóëüòàò äîëæåí
1533
      Ýòîò òèï âûðàæåíèé ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà åãî ðåçóëüòàò äîëæåí
1535
  áûòü ñîõðàíåí â ëþáîì äðóãîì ðåãèñòðå, îòëè÷íîì îò àêêóìóëÿòîðà EAX, AX
1534
  áûòü ñîõðàíåí â ëþáîì äðóãîì ðåãèñòðå, îòëè÷íîì îò àêêóìóëÿòîðà EAX, AX
1536
  èëè AL.  ïðîöåññå âû÷èñëåíèÿ âûðàæåíèÿ ýòîãî òèïà ìåíÿåòñÿ òîëüêî
1535
  èëè AL.  ïðîöåññå âû÷èñëåíèÿ âûðàæåíèÿ ýòîãî òèïà ìåíÿåòñÿ òîëüêî
1537
  ñîäåðæèìîå óêàçàííîãî ðåãèñòðà-ïîëó÷àòåëÿ, âñå äðóãèå ðåãèñòðû áóäóò
1536
  ñîäåðæèìîå óêàçàííîãî ðåãèñòðà-ïîëó÷àòåëÿ, âñå äðóãèå ðåãèñòðû áóäóò
1538
  ñîõðàíåíû. Åñëè ðåãèñòðîì-ïîëó÷àòåëåì ñëóæèò áàéòîâûé ðåãèñòð, à ïðè
1537
  ñîõðàíåíû. Åñëè ðåãèñòðîì-ïîëó÷àòåëåì ñëóæèò áàéòîâûé ðåãèñòð, à ïðè
1539
  âû÷èñëåíèè èñïîëüçóþòñÿ âåëè÷èíû ðàçìåðîì â ñëîâî, îäíîâðåìåííî ñ çàïèñüþ â
1538
  âû÷èñëåíèè èñïîëüçóþòñÿ âåëè÷èíû ðàçìåðîì â ñëîâî, îäíîâðåìåííî ñ çàïèñüþ â
1540
  ìëàäøèé áàéò ìîæåò áûòü ðàçðóøåíî ñîäåðæèìîå ñòàðøåãî áàéòà
1539
  ìëàäøèé áàéò ìîæåò áûòü ðàçðóøåíî ñîäåðæèìîå ñòàðøåãî áàéòà
1541
  ðåãèñòðà-ïîëó÷àòåëÿ.
1540
  ðåãèñòðà-ïîëó÷àòåëÿ.
1542
 
1541
 
1543
      Ýòî îáñòîÿòåëüñòâî íàêëàäûâàåò íåêîòîðûå îãðàíè÷åíèÿ íà îïåðàöèè è
1542
      Ýòî îáñòîÿòåëüñòâî íàêëàäûâàåò íåêîòîðûå îãðàíè÷åíèÿ íà îïåðàöèè è
1544
  îïåðàíäû, äîïóñòèìûå â âûðàæåíèÿõ òèïà íå EAX/AX/AL. Âíóòðè âûðàæåíèé
1543
  îïåðàíäû, äîïóñòèìûå â âûðàæåíèÿõ òèïà íå EAX/AX/AL. Âíóòðè âûðàæåíèé
1545
  áàéòîâîãî òèïà íå äîïóñêàåòñÿ:
1544
  áàéòîâîãî òèïà íå äîïóñêàåòñÿ:
1546
 
1545
 
1547
      - äåëàòü âûçîâû ÌÀÊÐÎÊÎÌÀÍÄ,
1546
      - äåëàòü âûçîâû ÌÀÊÐÎÊÎÌÀÍÄ,
1548
      - äåëàòü âûçîâû ÐÅÃÈÑÒÐÎÂÛÕ ïðîöåäóð
1547
      - äåëàòü âûçîâû ÐÅÃÈÑÒÐÎÂÛÕ ïðîöåäóð
1549
      - äåëàòü âûçîâû ÑÒÅÊÎÂÛÕ ïðîöåäóð
1548
      - äåëàòü âûçîâû ÑÒÅÊÎÂÛÕ ïðîöåäóð
1550
 
1549
 
1551
      Ðàíåå â íå-EAX/AX/AL âûðàæåíèÿõ áûëî ìîæíî èñïîëüçîâàòü ëèøü
1550
      Ðàíåå â íå-EAX/AX/AL âûðàæåíèÿõ áûëî ìîæíî èñïîëüçîâàòü ëèøü
1552
  îïåðàöèè: ñëîæåíèÿ, âû÷èòàíèÿ, XOR, OR, AND. Òåïåðü äëÿ 16 è 32 áèòíûõ
1551
  îïåðàöèè: ñëîæåíèÿ, âû÷èòàíèÿ, XOR, OR, AND. Òåïåðü äëÿ 16 è 32 áèòíûõ
1553
  ðåãèñòðîâ ïî÷òè âñå îãðàíè÷åíèÿ ñíÿòû. Íî åñòü åùå îãðàíè÷åíèÿ íà ðåãèñòðû.
1552
  ðåãèñòðîâ ïî÷òè âñå îãðàíè÷åíèÿ ñíÿòû. Íî åñòü åùå îãðàíè÷åíèÿ íà ðåãèñòðû.
1554
  Íàïðèìåð, åñëè â âûðàæåíèè èñïîëüçóåòñÿ ñäâèã íà çíà÷åíèå ïåðåìåííîé, à
1553
  Íàïðèìåð, åñëè â âûðàæåíèè èñïîëüçóåòñÿ ñäâèã íà çíà÷åíèå ïåðåìåííîé, à
1555
  ïðèåìíèêîì ÿâëÿþòñÿ ðåãèñòðû CX/ECX, òî òàêîå âûðàæåíèå êîìïèëÿòîð íå áóäåò
1554
  ïðèåìíèêîì ÿâëÿþòñÿ ðåãèñòðû CX/ECX, òî òàêîå âûðàæåíèå êîìïèëÿòîð íå áóäåò
1556
  êîìïèëèðîâàòü:
1555
  êîìïèëèðîâàòü:
1557
 
1556
 
1558
     CX = var * SI * 3 * var >> 3;  //âûçîâåò ñîîáùåíèå îá îøèáêå
1557
     CX = var * SI * 3 * var >> 3;  //âûçîâåò ñîîáùåíèå îá îøèáêå
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
  âûðàæåíèé.
1564
Return to contents.
1563
Return to contents.
1565
 
1564
 
1566
 
1565
 
1567
 
1566
 
1568
  4.5 Óñëîâíûå âûðàæåíèÿ.
1567
  4.5 Óñëîâíûå âûðàæåíèÿ.
1569
 
1568
 
1570
 
1569
 
1571
      Óñëîâíûå âûðàæåíèÿ - âûðàæåíèÿ, ðåçóëüòàòîì âû÷èñëåíèÿ êîòîðûõ ÿâëÿåòñÿ
1570
      Óñëîâíûå âûðàæåíèÿ - âûðàæåíèÿ, ðåçóëüòàòîì âû÷èñëåíèÿ êîòîðûõ ÿâëÿåòñÿ
1572
  ëîãè÷åñêîå çíà÷åíèå äà èëè íåò, èñïîëüçóåìîå â îïåðàòîðå if è öèêëàõ do {}
1571
  ëîãè÷åñêîå çíà÷åíèå äà èëè íåò, èñïîëüçóåìîå â îïåðàòîðå if è öèêëàõ do {}
1573
  while, while, for.
1572
  while, while, for.
1574
 
1573
 
1575
      Èìåþòñÿ äâà òèïà óñëîâíûõ âûðàæåíèé, ïðîñòûå è ñëîæíûå.
1574
      Èìåþòñÿ äâà òèïà óñëîâíûõ âûðàæåíèé, ïðîñòûå è ñëîæíûå.
1576
 
1575
 
1577
      Âîçìîæíî ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
1576
      Âîçìîæíî ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
1578
Return to contents.
1577
Return to contents.
1579
 
1578
 
1580
 
1579
 
1581
 
1580
 
1582
    4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
1581
    4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
1583
 
1582
 
1584
 
1583
 
1585
        Ïðîñòûå óñëîâíûå âûðàæåíèÿ - îäèíî÷íàÿ ëåêñåìà èëè âûðàæåíèå, êîòîðîå
1584
        Ïðîñòûå óñëîâíûå âûðàæåíèÿ - îäèíî÷íàÿ ëåêñåìà èëè âûðàæåíèå, êîòîðîå
1586
    ïðèìåò çíà÷åíèå äà, åñëè ðàñ÷åòíîå çíà÷åíèå îòëè÷íî îò íóëÿ, èëè çíà÷åíèå
1585
    ïðèìåò çíà÷åíèå äà, åñëè ðàñ÷åòíîå çíà÷åíèå îòëè÷íî îò íóëÿ, èëè çíà÷åíèå
1587
    íåò, åñëè ðàñ÷åòíîå çíà÷åíèå ðàâíî íóëþ.
1586
    íåò, åñëè ðàñ÷åòíîå çíà÷åíèå ðàâíî íóëþ.
1588
Return to contents.
1587
Return to contents.
1589
 
1588
 
1590
 
1589
 
1591
 
1590
 
1592
    4.5.2 Ñëîæíûå óñëîâíûå âûðàæåíèÿ.
1591
    4.5.2 Ñëîæíûå óñëîâíûå âûðàæåíèÿ.
1593
 
1592
 
1594
 
1593
 
1595
    Ñëîæíûå óñëîâíûå âûðàæåíèÿ èìåþò ñëåäóþùóþ ôîðìó:
1594
    Ñëîæíûå óñëîâíûå âûðàæåíèÿ èìåþò ñëåäóþùóþ ôîðìó:
1596
 
1595
 
1597
         (ëåâàÿ_÷àñòü îïåðàòîð_îòíîøåíèÿ ïðàâàÿ_÷àñòü)
1596
         (ëåâàÿ_÷àñòü îïåðàòîð_îòíîøåíèÿ ïðàâàÿ_÷àñòü)
1598
 
1597
 
1599
    Ãäå:
1598
    Ãäå:
1600
       ëåâàÿ_÷àñòü - ëþáîå âûðàæåíèå òèïà AL/AX/EAX èëè ïîñòîÿííîå âûðàæåíèå.
1599
       ëåâàÿ_÷àñòü - ëþáîå âûðàæåíèå òèïà AL/AX/EAX èëè ïîñòîÿííîå âûðàæåíèå.
1601
                     Òèï âûðàæåíèÿ îïðåäåëÿåòñÿ ïî òèïó ïåðâîé ëåêñåìû
1600
                     Òèï âûðàæåíèÿ îïðåäåëÿåòñÿ ïî òèïó ïåðâîé ëåêñåìû
1602
                     (ðåãèñòðà èëè ïåðåìåííîé); çíà÷åíèå òèïà ïî óìîë÷àíèþ -
1601
                     (ðåãèñòðà èëè ïåðåìåííîé); çíà÷åíèå òèïà ïî óìîë÷àíèþ -
1603
                     word äëÿ 16-áèòíûõ ïðîãðàìì è dword äëÿ 32-áèòíûõ. Åñëè
1602
                     word äëÿ 16-áèòíûõ ïðîãðàìì è dword äëÿ 32-áèòíûõ. Åñëè
1604
                     æåëàòåëåí äðóãîé òèï, ïåðåä âûðàæåíèåì ñòàâèòñÿ
1603
                     æåëàòåëåí äðóãîé òèï, ïåðåä âûðàæåíèåì ñòàâèòñÿ
1605
                     ñîîòâåòñòâóþùåå êëþ÷åâîå ñëîâî, îïðåäåëÿþùåå åãî òèï:
1604
                     ñîîòâåòñòâóþùåå êëþ÷åâîå ñëîâî, îïðåäåëÿþùåå åãî òèï:
1606
                     byte, char, int, long, dword èëè float
1605
                     byte, char, int, long, dword èëè float
1607
 
1606
 
1608
       îïåðàòîð_îòíîøåíèÿ - ëþáîé èç îïåðàòîðîâ îòíîøåíèÿ:
1607
       îïåðàòîð_îòíîøåíèÿ - ëþáîé èç îïåðàòîðîâ îòíîøåíèÿ:
1609
                     ==, !=, <>, <, >, <=, èëè >=.
1608
                     ==, !=, <>, <, >, <=, èëè >=.
1610
 
1609
 
1611
       ïðàâàÿ_÷àñòü - ëþáîé îäèíî÷íûé ðåãèñòð, îäèíî÷íàÿ ïåðåìåííàÿ èëè
1610
       ïðàâàÿ_÷àñòü - ëþáîé îäèíî÷íûé ðåãèñòð, îäèíî÷íàÿ ïåðåìåííàÿ èëè
1612
                     ïîñòîÿííîå âûðàæåíèå.
1611
                     ïîñòîÿííîå âûðàæåíèå.
1613
 
1612
 
1614
    Ïðèìåðû ïðàâèëüíûõ ñëîæíûõ óñëîâíûõ âûðàæåíèé:
1613
    Ïðèìåðû ïðàâèëüíûõ ñëîæíûõ óñëîâíûõ âûðàæåíèé:
1615
 
1614
 
1616
         (X + y > z)
1615
         (X + y > z)
1617
         (int CX*DX < = 12*3)
1616
         (int CX*DX < = 12*3)
1618
         (byte first*second+hold == cnumber)
1617
         (byte first*second+hold == cnumber)
1619
 
1618
 
1620
    Ïðèìåðû íåäîïóñòèìûõ ñëîæíûõ óñëîâíûõ âûðàæåíèé:
1619
    Ïðèìåðû íåäîïóñòèìûõ ñëîæíûõ óñëîâíûõ âûðàæåíèé:
1621
 
1620
 
1622
         (x+y >= x-y) // ïðàâàÿ ÷àñòü íå ÿâëÿåòñÿ îäèíî÷íîé ëåêñåìîé èëè
1621
         (x+y >= x-y) // ïðàâàÿ ÷àñòü íå ÿâëÿåòñÿ îäèíî÷íîé ëåêñåìîé èëè
1623
                         ïîñòîÿííûì âûðàæåíèåì.
1622
                         ïîñòîÿííûì âûðàæåíèåì.
1624
         (Z = y) // âìåñòî == îøèáî÷íî ïîñòàâëåí =
1623
         (Z = y) // âìåñòî == îøèáî÷íî ïîñòàâëåí =
1625
Return to contents.
1624
Return to contents.
1626
 
1625
 
1627
 
1626
 
1628
 
1627
 
1629
  4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
1628
  4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
1630
 
1629
 
1631
 
1630
 
1632
      Åñëè ïîñëå çíàêà ðàâåíñòâà íàïèñàòü òèï îòëè÷íûé îò òèïà âû÷èñëÿåìîé
1631
      Åñëè ïîñëå çíàêà ðàâåíñòâà íàïèñàòü òèï îòëè÷íûé îò òèïà âû÷èñëÿåìîé
1633
  ïåðåìåííîé, òî âñå ïåðåìåííûå ó÷àñòâóþùèå â ïðîöåññå âû÷èñëåíèÿ, áóäóò
1632
  ïåðåìåííîé, òî âñå ïåðåìåííûå ó÷àñòâóþùèå â ïðîöåññå âû÷èñëåíèÿ, áóäóò
1634
  ïðåîáðàçîâûâàòüñÿ ê ýòîìó íîâîìó òèïó, è ëèøü êîíå÷íûé ðåçóëüòàò áóäåò
1633
  ïðåîáðàçîâûâàòüñÿ ê ýòîìó íîâîìó òèïó, è ëèøü êîíå÷íûé ðåçóëüòàò áóäåò
1635
  ïðåîáðàçîâàí ê òèïó âû÷èñëÿåìîé ïåðåìåííîé. Ïðèìåð:
1634
  ïðåîáðàçîâàí ê òèïó âû÷èñëÿåìîé ïåðåìåííîé. Ïðèìåð:
1636
 
1635
 
1637
  int i, a;
1636
  int i, a;
1638
  long b;
1637
  long b;
1639
  char c;
1638
  char c;
1640
 
1639
 
1641
    i = a * b + c ;
1640
    i = a * b + c ;
1642
 
1641
 
1643
      Çíà÷åíèÿ ïåðåìåííûõ a, b, è c â ýòîì ïðèìåðå ïåðåä âû÷èñëåíèåì áóäóò
1642
      Çíà÷åíèÿ ïåðåìåííûõ a, b, è c â ýòîì ïðèìåðå ïåðåä âû÷èñëåíèåì áóäóò
1644
  ïðåîáðàçîâàíû ê òèïó int (òèïó ïåðåìåííîé i). Íî åñëè çàïèñàòü ýòî
1643
  ïðåîáðàçîâàíû ê òèïó int (òèïó ïåðåìåííîé i). Íî åñëè çàïèñàòü ýòî
1645
  âûðàæåíèå âîò òàê:
1644
  âûðàæåíèå âîò òàê:
1646
 
1645
 
1647
    i = long a * b + c ;
1646
    i = long a * b + c ;
1648
 
1647
 
1649
      òî  ïåðåìåííûå  a,  b,  è  c  â  ýòîì  ïðèìåðå  ïåðåä  âû÷èñëåíèåì áóäóò
1648
      òî  ïåðåìåííûå  a,  b,  è  c  â  ýòîì  ïðèìåðå  ïåðåä  âû÷èñëåíèåì áóäóò
1650
  ïðåîáðàçîâàíû ê òèïó  long, à êîíå÷íûé  ðåçóëüòàò áóäåò ïðåîáðàçîâàí  ê òèïó
1649
  ïðåîáðàçîâàíû ê òèïó  long, à êîíå÷íûé  ðåçóëüòàò áóäåò ïðåîáðàçîâàí  ê òèïó
1651
  ïåðåìåííîé i - int.
1650
  ïåðåìåííîé i - int.
1652
Return to contents.
1651
Return to contents.
1653
 
1652
 
1654
 
1653
 
1655
 
1654
 
1656
  4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
1655
  4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
1657
 
1656
 
1658
 
1657
 
1659
      Ïî óìîë÷àíèþ âñå âû÷èñëåíèÿ â ðåãèñòðû ïðîèçâîäÿòñÿ êàê ñ áåç çíàêîâûìè
1658
      Ïî óìîë÷àíèþ âñå âû÷èñëåíèÿ â ðåãèñòðû ïðîèçâîäÿòñÿ êàê ñ áåç çíàêîâûìè
1660
  âåëè÷èíàìè.
1659
  âåëè÷èíàìè.
1661
 
1660
 
1662
  Íàïðèìåð:
1661
  Íàïðèìåð:
1663
 
1662
 
1664
    int a,b,c;
1663
    int a,b,c;
1665
    AX = a * b / c ;
1664
    AX = a * b / c ;
1666
 
1665
 
1667
  Ïðè ýòîì êîìïèëÿòîð ãåíåðèðîâàë áåç çíàêîâûå èíñòðóêöèè div è mul, òàê êàê
1666
  Ïðè ýòîì êîìïèëÿòîð ãåíåðèðîâàë áåç çíàêîâûå èíñòðóêöèè div è mul, òàê êàê
1668
  ðåãèñòðû ñ÷èòàþòñÿ áåç çíàêîâûìè ïåðåìåííûìè. Åñëè íàïèñàòü âîò òàê:
1667
  ðåãèñòðû ñ÷èòàþòñÿ áåç çíàêîâûìè ïåðåìåííûìè. Åñëè íàïèñàòü âîò òàê:
1669
 
1668
 
1670
    AX = int a * b / c ;
1669
    AX = int a * b / c ;
1671
 
1670
 
1672
  òî êîìïèëÿòîð ñãåíåðèðóåò èíñòðóêöèè idiv è imul.
1671
  òî êîìïèëÿòîð ñãåíåðèðóåò èíñòðóêöèè idiv è imul.
1673
 
1672
 
1674
       Îáðàùàþ âàøå âíèìàíèå, ÷òî äëÿ ðåãèñòðà AL ìîæíî èñïîëüçîâàòü òîëüêî
1673
       Îáðàùàþ âàøå âíèìàíèå, ÷òî äëÿ ðåãèñòðà AL ìîæíî èñïîëüçîâàòü òîëüêî
1675
  ìîäèôèêàòîð char, äëÿ AX ñîîòâåòñòâåííî òîëüêî int, à äëÿ EAX - long. Äëÿ
1674
  ìîäèôèêàòîð char, äëÿ AX ñîîòâåòñòâåííî òîëüêî int, à äëÿ EAX - long. Äëÿ
1676
  îñòàëüíûõ ðåãèñòðîâ ïîäîáíîå äåëàòü íåëüçÿ.
1675
  îñòàëüíûõ ðåãèñòðîâ ïîäîáíîå äåëàòü íåëüçÿ.
1677
Return to contents.
1676
Return to contents.
1678
 
1677
 
1679
 
1678
 
1680
 
1679
 
1681
5. Èäåíòèôèêàòîðû.
1680
5. Èäåíòèôèêàòîðû.
1682
 
1681
 
1683
  5.1 Ôîðìàò èäåíòèôèêàòîðà.
1682
  5.1 Ôîðìàò èäåíòèôèêàòîðà.
1684
 
1683
 
1685
 
1684
 
1686
      Èäåíòèôèêàòîðû â C-- äîëæíû íà÷èíàòüñÿ èëè ñ ñèìâîëà ïîä÷åðêèâàíèÿ _
1685
      Èäåíòèôèêàòîðû â C-- äîëæíû íà÷èíàòüñÿ èëè ñ ñèìâîëà ïîä÷åðêèâàíèÿ _
1687
  èëè çàãëàâíûõ èëè ñòðî÷íûõ áóêâ. Ñëåäóþùèå ñèìâîëû ìîãóò áûòü ëþáîé
1686
  èëè çàãëàâíûõ èëè ñòðî÷íûõ áóêâ. Ñëåäóþùèå ñèìâîëû ìîãóò áûòü ëþáîé
1688
  êîìáèíàöèåé ñèìâîëîâ ïîä÷åðêèâàíèÿ, çàãëàâíûõ èëè ñòðî÷íûõ áóêâ èëè ÷èñåë
1687
  êîìáèíàöèåé ñèìâîëîâ ïîä÷åðêèâàíèÿ, çàãëàâíûõ èëè ñòðî÷íûõ áóêâ èëè ÷èñåë
1689
  (îò 0 äî 9). Îáùàÿ äëèíà èäåíòèôèêàòîðà íå ìîæåò ïðåâûøàòü 64 ñèìâîëà.
1688
  (îò 0 äî 9). Îáùàÿ äëèíà èäåíòèôèêàòîðà íå ìîæåò ïðåâûøàòü 64 ñèìâîëà.
1690
  Ñèìâîëû ñ êîäîì áîëüøå 0x7A (êîä ñèìâîëà z) íåäîïóñòèìû.
1689
  Ñèìâîëû ñ êîäîì áîëüøå 0x7A (êîä ñèìâîëà z) íåäîïóñòèìû.
1691
 
1690
 
1692
  Ïðèìåðû äîïóñòèìûõ èäåíòèôèêàòîðîâ:
1691
  Ïðèìåðû äîïóñòèìûõ èäåíòèôèêàòîðîâ:
1693
 
1692
 
1694
  _DOG
1693
  _DOG
1695
  Loony12
1694
  Loony12
1696
  HowdYBoys_AND_Girls
1695
  HowdYBoys_AND_Girls
1697
  WOW___
1696
  WOW___
1698
  X
1697
  X
1699
 
1698
 
1700
  Ïðèìåðû íåäîïóñòèìûõ èäåíòèôèêàòîðîâ:
1699
  Ïðèìåðû íåäîïóñòèìûõ èäåíòèôèêàòîðîâ:
1701
 
1700
 
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.
1708
 
1707
 
1709
 
1708
 
1710
 
1709
 
1711
  5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
1710
  5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
1712
 
1711
 
1713
 
1712
 
1714
      Ñïèñîê çàðåçåðâèðîâàííûõ â C-- èäåíòèôèêàòîðîâ, êîòîðûå íå ìîãóò
1713
      Ñïèñîê çàðåçåðâèðîâàííûõ â C-- èäåíòèôèêàòîðîâ, êîòîðûå íå ìîãóò
1715
  èñïîëüçîâàòüñÿ êàê îáùèå èäåíòèôèêàòîðû, ïîñêîëüêó îíè óæå áûëè îïðåäåëåíû
1714
  èñïîëüçîâàòüñÿ êàê îáùèå èäåíòèôèêàòîðû, ïîñêîëüêó îíè óæå áûëè îïðåäåëåíû
1716
  èëè çàðåçåðâèðîâàíû äëÿ äðóãèõ öåëåé:
1715
  èëè çàðåçåðâèðîâàíû äëÿ äðóãèõ öåëåé:
1717
 
1716
 
1718
  BREAK  CASE    CONTINUE  ELSE    EXTRACT  FALSE  FOR
1717
  BREAK  CASE    CONTINUE  ELSE    EXTRACT  FALSE  FOR
1719
  FROM   GOTO    IF        LOOPNZ  RETURN   SWITCH TRUE
1718
  FROM   GOTO    IF        LOOPNZ  RETURN   SWITCH TRUE
1720
  WHILE
1719
  WHILE
1721
 
1720
 
1722
  CARRYFLAG    MINUSFLAG  NOTCARRYFLAG  NOTOVERFLOW
1721
  CARRYFLAG    MINUSFLAG  NOTCARRYFLAG  NOTOVERFLOW
1723
  NOTZEROFLAG  OVERFLOW   PLUSFLAG      ZEROFLAG
1722
  NOTZEROFLAG  OVERFLOW   PLUSFLAG      ZEROFLAG
1724
 
1723
 
1725
  __CODEPTR__ __COMPILER__ __DATAPTR__ __DATESTR__ __DATE__    __DAY__
1724
  __CODEPTR__ __COMPILER__ __DATAPTR__ __DATESTR__ __DATE__    __DAY__
1726
  __HOUR__    __LINE__     __MINUTE__  __MONTH__   __POSTPTR__ __SECOND__
1725
  __HOUR__    __LINE__     __MINUTE__  __MONTH__   __POSTPTR__ __SECOND__
1727
  __TIME__    __VER1__     __VER2__    __WEEKDAY__ __YEAR__
1726
  __TIME__    __VER1__     __VER2__    __WEEKDAY__ __YEAR__
1728
 
1727
 
1729
  _export  asm     break   byte      case     cdecl   char       continue
1728
  _export  asm     break   byte      case     cdecl   char       continue
1730
  default  do      dword   else      enum     extern  far        fastcall
1729
  default  do      dword   else      enum     extern  far        fastcall
1731
  float    for     goto    if        inline   int     interrupt  long
1730
  float    for     goto    if        inline   int     interrupt  long
1732
  loop     loopnz  pascal  return    short    signed  sizeof     static
1731
  loop     loopnz  pascal  return    short    signed  sizeof     static
1733
  stdcall  struct  switch  union     unsigned void    while      word
1732
  stdcall  struct  switch  union     unsigned void    while      word
1734
 
1733
 
1735
  ESCHAR  ESBYTE  ESINT  ESWORD  ESLONG  ESDWORD  ESFLOAT
1734
  ESCHAR  ESBYTE  ESINT  ESWORD  ESLONG  ESDWORD  ESFLOAT
1736
  CSCHAR  CSBYTE  CSINT  CSWORD  CSLONG  CSDWORD  CSFLOAT
1735
  CSCHAR  CSBYTE  CSINT  CSWORD  CSLONG  CSDWORD  CSFLOAT
1737
  SSCHAR  SSBYTE  SSINT  SSWORD  SSLONG  SSDWORD  SSFLOAT
1736
  SSCHAR  SSBYTE  SSINT  SSWORD  SSLONG  SSDWORD  SSFLOAT
1738
  DSCHAR  DSBYTE  DSINT  DSWORD  DSLONG  DSDWORD  DSFLOAT
1737
  DSCHAR  DSBYTE  DSINT  DSWORD  DSLONG  DSDWORD  DSFLOAT
1739
  FSCHAR  FSBYTE  FSINT  FSWORD  FSLONG  FSDWORD  FSFLOAT
1738
  FSCHAR  FSBYTE  FSINT  FSWORD  FSLONG  FSDWORD  FSFLOAT
1740
  GSCHAR  GSBYTE  GSINT  GSWORD  GSLONG  GSDWORD  GSFLOAT
1739
  GSCHAR  GSBYTE  GSINT  GSWORD  GSLONG  GSDWORD  GSFLOAT
1741
 
1740
 
1742
  AX   CX   DX   BX   SP   BP   SI   DI
1741
  AX   CX   DX   BX   SP   BP   SI   DI
1743
  EAX  ECX  EDX  EBX  ESP  EBP  ESI  EDI
1742
  EAX  ECX  EDX  EBX  ESP  EBP  ESI  EDI
1744
  AL   CL   DL   BL   AH   CH   DH   BH
1743
  AL   CL   DL   BL   AH   CH   DH   BH
1745
  ES   CS   SS   DS   FS   GS
1744
  ES   CS   SS   DS   FS   GS
1746
 
1745
 
1747
  ST(0)  ST(1)  ST(2)  ST(3)  ST(4)  ST(5)  ST(6)  ST(7)  ST
1746
  ST(0)  ST(1)  ST(2)  ST(3)  ST(4)  ST(5)  ST(6)  ST(7)  ST
1748
  st(0)  st(1)  st(2)  st(3)  st(4)  st(5)  st(6)  st(7)  st
1747
  st(0)  st(1)  st(2)  st(3)  st(4)  st(5)  st(6)  st(7)  st
1749
 
1748
 
1750
      Ýòîò ñïèñîê ìîæåò áûòü ïîëó÷åí èç C-- òðàíñëÿòîðà â ëþáîå âðåìÿ,
1749
      Ýòîò ñïèñîê ìîæåò áûòü ïîëó÷åí èç C-- òðàíñëÿòîðà â ëþáîå âðåìÿ,
1751
  çàïóñêîì åãî ñ îïöèåé /WORDS èç êîìàíäíîé ñòðîêè.
1750
  çàïóñêîì åãî ñ îïöèåé /WORDS èç êîìàíäíîé ñòðîêè.
1752
 
1751
 
1753
      Åñëè Âû ïîëüçóåòåñü ïðè êîìïèëÿöèè îïöèåé êîìàíäíîé ñòðîêè /ia, êîòîðàÿ
1752
      Åñëè Âû ïîëüçóåòåñü ïðè êîìïèëÿöèè îïöèåé êîìàíäíîé ñòðîêè /ia, êîòîðàÿ
1754
  ïîçâîëÿåò èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè íå çàêëþ÷àÿ èõ â áëîêè asm è
1753
  ïîçâîëÿåò èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè íå çàêëþ÷àÿ èõ â áëîêè asm è
1755
  áåç ïðåôèêñà $, òî âñå èìåíà àññåìáëåðíûõ èíñòðóêöèé ñòàíîâÿòñÿ
1754
  áåç ïðåôèêñà $, òî âñå èìåíà àññåìáëåðíûõ èíñòðóêöèé ñòàíîâÿòñÿ
1756
  çàðåçåðâèðîâàííûìè ñëîâàìè. Ïðè÷åì èìåíà àññåìáëåðíûõ èíñòðóêöèé êîìïèëÿòîð
1755
  çàðåçåðâèðîâàííûìè ñëîâàìè. Ïðè÷åì èìåíà àññåìáëåðíûõ èíñòðóêöèé êîìïèëÿòîð
1757
  ðàçëè÷àåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè áóêâàìè.
1756
  ðàçëè÷àåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè áóêâàìè.
1758
 
1757
 
1759
     Ñïèñîê èìåí ïîääåðæèâàåìûõ êîìïèëÿòîðîì àññåìáëåðíûõ èíñòðóêöèè ìîæíî
1758
     Ñïèñîê èìåí ïîääåðæèâàåìûõ êîìïèëÿòîðîì àññåìáëåðíûõ èíñòðóêöèè ìîæíî
1760
  ïîëó÷èòü çàïóñòèâ êîìïèëÿòîð ñ îïöèåé /LAI.
1759
  ïîëó÷èòü çàïóñòèâ êîìïèëÿòîð ñ îïöèåé /LAI.
1761
 
1760
 
1762
     Êðîìå ýòîãî â àññåìáëåðíûõ èíñòðóêöèÿõ ñòàíîâÿòñÿ çàðåçåðâèðîâàííûìè
1761
     Êðîìå ýòîãî â àññåìáëåðíûõ èíñòðóêöèÿõ ñòàíîâÿòñÿ çàðåçåðâèðîâàííûìè
1763
  ñëåäóþùèå èäåíòèôèêàòîðû:
1762
  ñëåäóþùèå èäåíòèôèêàòîðû:
1764
 
1763
 
1765
  ax   cx   dx   bx   sp   bp   si   di
1764
  ax   cx   dx   bx   sp   bp   si   di
1766
  eax  ecx  edx  ebx  esp  ebp  esi  edi
1765
  eax  ecx  edx  ebx  esp  ebp  esi  edi
1767
  al   cl   dl   bl   ah   ch   dh   bh
1766
  al   cl   dl   bl   ah   ch   dh   bh
1768
  es   cs   ss   ds   fs   gs
1767
  es   cs   ss   ds   fs   gs
1769
 
1768
 
1770
  DR0   DR1   DR2   DR3   DR4   DR5   DR6   DR7
1769
  DR0   DR1   DR2   DR3   DR4   DR5   DR6   DR7
1771
  CR0   CR1   CR2   CR3   CR4   CR5   CR6   CR7
1770
  CR0   CR1   CR2   CR3   CR4   CR5   CR6   CR7
1772
  TR0   TR1   TR2   TR3   TR4   TR5   TR6   TR7
1771
  TR0   TR1   TR2   TR3   TR4   TR5   TR6   TR7
1773
  MM0   MM1   MM2   MM3   MM4   MM5   MM6   MM7
1772
  MM0   MM1   MM2   MM3   MM4   MM5   MM6   MM7
1774
  XMM0  XMM1  XMM2  XMM3  XMM4  XMM5  XMM6  XMM7
1773
  XMM0  XMM1  XMM2  XMM3  XMM4  XMM5  XMM6  XMM7
1775
 
1774
 
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.
1782
 
1781
 
1783
 
1782
 
1784
 
1783
 
1785
  5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
1784
  5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
1786
 
1785
 
1787
 
1786
 
1788
      Ïðè ñîçäàíèè áèáëèîòå÷íûõ ïðîöåäóð î÷åíü ÷àñòî ïðèõîäèòñÿ ïèñàòü
1787
      Ïðè ñîçäàíèè áèáëèîòå÷íûõ ïðîöåäóð î÷åíü ÷àñòî ïðèõîäèòñÿ ïèñàòü
1789
  âàðèàíòû ïðîöåäóðû äëÿ ðàáîòû â 16-áèòíîì è 32-áèòíîì ðåæèìàõ, êîòîðûå
1788
  âàðèàíòû ïðîöåäóðû äëÿ ðàáîòû â 16-áèòíîì è 32-áèòíîì ðåæèìàõ, êîòîðûå
1790
  îòëè÷àþòñÿ äðóã îò äðóãà ëèøü èñïîëüçîâàíèåì â íèõ ëèáî 16-áèòíûõ ëèáî
1789
  îòëè÷àþòñÿ äðóã îò äðóãà ëèøü èñïîëüçîâàíèåì â íèõ ëèáî 16-áèòíûõ ëèáî
1791
  32-áèòíûõ ðåãèñòðîâ ñîîòâåòñòâåííî. Íî ìîæíî ïèñàòü ëèøü îäíó ïðîöåäóðó,
1790
  32-áèòíûõ ðåãèñòðîâ ñîîòâåòñòâåííî. Íî ìîæíî ïèñàòü ëèøü îäíó ïðîöåäóðó,
1792
  èñïîëüçóÿ â íåé íîâûé ñèíòàêñèñ ðåãèñòðîâ. Åñëè êîìïèëÿòîð âñòðåòèò âîò
1791
  èñïîëüçóÿ â íåé íîâûé ñèíòàêñèñ ðåãèñòðîâ. Åñëè êîìïèëÿòîð âñòðåòèò âîò
1793
  òàêîé ñèíòàêñèñ:
1792
  òàêîé ñèíòàêñèñ:
1794
 
1793
 
1795
    (E)AX=0;
1794
    (E)AX=0;
1796
 
1795
 
1797
      òî êîìïèëÿòîð áóäåò èñïîëüçîâàòü ïðè êîìïèëÿöèè 16-áèòíîãî êîäà ðåãèñòð
1796
      òî êîìïèëÿòîð áóäåò èñïîëüçîâàòü ïðè êîìïèëÿöèè 16-áèòíîãî êîäà ðåãèñòð
1798
  AX, à ïðè êîìïèëÿöèè 32-áèòíîãî êîäà ðåãèñòð EAX.
1797
  AX, à ïðè êîìïèëÿöèè 32-áèòíîãî êîäà ðåãèñòð EAX.
1799
 
1798
 
1800
      Èñïîëüçîâàíèå àâòîìàòè÷åñêèõ ðåãèñòðîâ ïîçâîëèò óïðîñòèòü áèáëèîòå÷íûå
1799
      Èñïîëüçîâàíèå àâòîìàòè÷åñêèõ ðåãèñòðîâ ïîçâîëèò óïðîñòèòü áèáëèîòå÷íûå
1801
  ôàéëû è ñäåëàòü èõ áîëåå ïîíÿòíûìè.
1800
  ôàéëû è ñäåëàòü èõ áîëåå ïîíÿòíûìè.
1802
Return to contents.
1801
Return to contents.
1803
 
1802
 
1804
 
1803
 
1805
 
1804
 
1806
  5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
1805
  5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
1807
 
1806
 
1808
 
1807
 
1809
      Èäåíòèôèêàòîðû, îïðåäåëÿåìûå êîìïèëÿòîðîì â çàâèñèìîñòè îò ðåæèìà
1808
      Èäåíòèôèêàòîðû, îïðåäåëÿåìûå êîìïèëÿòîðîì â çàâèñèìîñòè îò ðåæèìà
1810
  êîìïèëÿöèè:
1809
  êîìïèëÿöèè:
1811
 
1810
 
1812
  __TLS__     èäåò êîìïèëÿöèÿ ïîä windows (w32, w32c, dll).
1811
  __TLS__     èäåò êîìïèëÿöèÿ ïîä windows (w32, w32c, dll).
1813
  __DLL__     èäåò êîìïèëÿöèÿ dll.
1812
  __DLL__     èäåò êîìïèëÿöèÿ dll.
1814
  __CONSOLE__ èäåò êîìïèëÿöèÿ êîíñîëüíîãî ïðèëîæåíèÿ windows
1813
  __CONSOLE__ èäåò êîìïèëÿöèÿ êîíñîëüíîãî ïðèëîæåíèÿ windows
1815
  __WIN32__   èäåò êîìïèëÿöèÿ GUI-øíîãî ïðèëîæåíèÿ
1814
  __WIN32__   èäåò êîìïèëÿöèÿ GUI-øíîãî ïðèëîæåíèÿ
1816
  __FLAT__    êîìïèëèðóåòñÿ 32-áèòíûé êîä.
1815
  __FLAT__    êîìïèëèðóåòñÿ 32-áèòíûé êîä.
1817
  __MSDOS__   êîìïèëèðóåòñÿ 16-áèòíûé êîä.
1816
  __MSDOS__   êîìïèëèðóåòñÿ 16-áèòíûé êîä.
1818
  __TINY__    èñïîëüçóåòñÿ ìîäåëü ïàìÿòè tiny â 16-áèòíîì ðåæèìå
1817
  __TINY__    èñïîëüçóåòñÿ ìîäåëü ïàìÿòè tiny â 16-áèòíîì ðåæèìå
1819
  __SMALL__   èñïîëüçóåòñÿ ìîäåëü ïàìÿòè small â 16-áèòíîì ðåæèìå
1818
  __SMALL__   èñïîëüçóåòñÿ ìîäåëü ïàìÿòè small â 16-áèòíîì ðåæèìå
1820
  __DOS32__   êîìïèëèðóåòñÿ 32-áèòíûé êîä ïîä DOS (d32)
1819
  __DOS32__   êîìïèëèðóåòñÿ 32-áèòíûé êîä ïîä DOS (d32)
1821
  __COM__     êîìïèëèðóåòñÿ com-ôàéë
1820
  __COM__     êîìïèëèðóåòñÿ com-ôàéë
1822
  __SYS__     êîìïèëèðóåòñÿ sys-ôàéë
1821
  __SYS__     êîìïèëèðóåòñÿ sys-ôàéë
1823
  __ROM__     êîìïèëèðóåòñÿ rom-ôàéë
1822
  __ROM__     êîìïèëèðóåòñÿ rom-ôàéë
1824
  __OBJ__     êîìïèëèðóåòñÿ obj-ôàéë
1823
  __OBJ__     êîìïèëèðóåòñÿ obj-ôàéë
1825
  __TEXE__    êîìïèëèðóåòñÿ exe-ôàéë ìîäåëè tiny
1824
  __TEXE__    êîìïèëèðóåòñÿ exe-ôàéë ìîäåëè tiny
1826
  __EXE__     êîìïèëèðóåòñÿ exe-ôàéë ìîäåëè small
1825
  __EXE__     êîìïèëèðóåòñÿ exe-ôàéë ìîäåëè small
1827
  __MEOS__    êîìïèëèðóåòñÿ èñïîëíÿåìûé ôàéë äëÿ MenuetOS
1826
  __MEOS__    êîìïèëèðóåòñÿ èñïîëíÿåìûé ôàéë äëÿ MenuetOS
1828
  codesize    êîìïèëÿöèÿ âåäåòñÿ ñ îïòèìèçàöèåé íà ðàçìåð êîäà
1827
  codesize    êîìïèëÿöèÿ âåäåòñÿ ñ îïòèìèçàöèåé íà ðàçìåð êîäà
1829
  speed       êîìïèëÿöèÿ âåäåòñÿ ñ îïòèìèçàöèåé íà áûñòðîäåéñòâèå êîäà
1828
  speed       êîìïèëÿöèÿ âåäåòñÿ ñ îïòèìèçàöèåé íà áûñòðîäåéñòâèå êîäà
1830
  cpu         îïðåäåëÿåò òèï ïðîöåññîðà äëÿ êîòîðîãî âåäåòñÿ êîìïèëÿöèÿ:
1829
  cpu         îïðåäåëÿåò òèï ïðîöåññîðà äëÿ êîòîðîãî âåäåòñÿ êîìïèëÿöèÿ:
1831
  	    0 - 8086
1830
            0 - 8086
1832
  	    1 - 80186
1831
            1 - 80186
1833
  	    2 - 80286
1832
            2 - 80286
1834
  	    3 - 80386
1833
            3 - 80386
1835
  	    4 - 80486
1834
            4 - 80486
1836
  	    5 - Pentium
1835
            5 - Pentium
1837
  	    6 - Pentium MMX
1836
            6 - Pentium MMX
1838
  	    7 - Pentium II
1837
            7 - Pentium II
1839
 
1838
 
1840
      Ýòè èäåíòèôèêàòîðû ìîãóò áûòü ïðîâåðåíû äèðåêòèâàìè #ifdef èëè #ifndef.
1839
      Ýòè èäåíòèôèêàòîðû ìîãóò áûòü ïðîâåðåíû äèðåêòèâàìè #ifdef èëè #ifndef.
1841
  Èäåíòèôèêàòîð cpu ìîæåò áûòü èñïîëüçîâàí ëèøü ñ îïåðàòîðàìè ïðîâåðêè
1840
  Èäåíòèôèêàòîð cpu ìîæåò áûòü èñïîëüçîâàí ëèøü ñ îïåðàòîðàìè ïðîâåðêè
1842
  óñëîâèé:
1841
  óñëîâèé:
1843
 
1842
 
1844
  #ifdef cpu > 3  //åñëè òèï ïðîöåññîðà áîëüøå 80386
1843
  #ifdef cpu > 3  //åñëè òèï ïðîöåññîðà áîëüøå 80386
1845
Return to contents.
1844
Return to contents.
1846
 
1845
 
1847
 
1846
 
1848
 
1847
 
1849
6. Ïåðåìåííûå.
1848
6. Ïåðåìåííûå.
1850
 
1849
 
1851
  6.1 Òèïû ïåðåìåííûõ.
1850
  6.1 Òèïû ïåðåìåííûõ.
1852
 
1851
 
1853
 
1852
 
1854
      Â C-- èìååòñÿ ñåìü òèïîâ ïåðåìåííûõ (èìåíîâàííûõ îáëàñòåé ïàìÿòè), ýòî:
1853
      Â C-- èìååòñÿ ñåìü òèïîâ ïåðåìåííûõ (èìåíîâàííûõ îáëàñòåé ïàìÿòè), ýòî:
1855
  byte, word, dword, char, int, long, float.
1854
  byte, word, dword, char, int, long, float.
1856
 
1855
 
1857
      Ñëåäóþùàÿ òàáëèöà  ïîêàçûâàåò ðàçìåð  è äèàïàçîí  ïðåäñòàâëÿåìûõ âåëè÷èí
1856
      Ñëåäóþùàÿ òàáëèöà  ïîêàçûâàåò ðàçìåð  è äèàïàçîí  ïðåäñòàâëÿåìûõ âåëè÷èí
1858
  êàæäîãî èç òèïîâ ïåðåìåííîé:
1857
  êàæäîãî èç òèïîâ ïåðåìåííîé:
1859
 
1858
 
1860
   NAME   | SIZE  |        VALUE RANGE          |        VALUE RANGE
1859
   NAME   | SIZE  |        VALUE RANGE          |        VALUE RANGE
1861
   òèï    |ðàçìåð |   äèàïàçîí ïðåäñòàâëåíèÿ    |   äèàïàçîí ïðåäñòàâëåíèÿ
1860
   òèï    |ðàçìåð |   äèàïàçîí ïðåäñòàâëåíèÿ    |   äèàïàçîí ïðåäñòàâëåíèÿ
1862
          |â áàéò.|    â äåñÿòè÷íîé ñèñòåìå     | â øåñòíàäöàòåðè÷íîé ñèñòåìå
1861
          |â áàéò.|    â äåñÿòè÷íîé ñèñòåìå     | â øåñòíàäöàòåðè÷íîé ñèñòåìå
1863
  ---------------------------------------------------------------------------
1862
  ---------------------------------------------------------------------------
1864
  byte    |   1   |           0 to 255          |        0x00 to 0xFF
1863
  byte    |   1   |           0 to 255          |        0x00 to 0xFF
1865
  word    |   2   |           0 to 65535        |      0x0000 to 0xFFFF
1864
  word    |   2   |           0 to 65535        |      0x0000 to 0xFFFF
1866
  dword   |   4   |           0 to 4294967295   |  0x00000000 to 0xFFFFFFFF
1865
  dword   |   4   |           0 to 4294967295   |  0x00000000 to 0xFFFFFFFF
1867
  char    |   1   |        -128 to 127          |        0x80 to 0x7F
1866
  char    |   1   |        -128 to 127          |        0x80 to 0x7F
1868
  int     |   2   |      -32768 to 32767        |      0x8000 to 0x7FFF
1867
  int     |   2   |      -32768 to 32767        |      0x8000 to 0x7FFF
1869
  long    |   4   | -2147483648 to 2147483647   |  0x80000000 to 0x7FFFFFFF
1868
  long    |   4   | -2147483648 to 2147483647   |  0x80000000 to 0x7FFFFFFF
1870
  float   |   4   |    -3,37E38 to +3,37E38     |  0xFF7FFFFF to 0x7FFFFFFF
1869
  float   |   4   |    -3,37E38 to +3,37E38     |  0xFF7FFFFF to 0x7FFFFFFF
1871
 
1870
 
1872
      Ïðèìå÷àíèå:  äëÿ ðàáîòû ñ òèïàìè float, dword è long èñïîëüçóþòñÿ
1871
      Ïðèìå÷àíèå:  äëÿ ðàáîòû ñ òèïàìè float, dword è long èñïîëüçóþòñÿ
1873
  32-ðàçðÿäíûå öåëî÷èñëåííûå êîìàíäû, ñëåäîâàòåëüíî, äëÿ èõ âûïîëíåíèÿ íóæíî
1872
  32-ðàçðÿäíûå öåëî÷èñëåííûå êîìàíäû, ñëåäîâàòåëüíî, äëÿ èõ âûïîëíåíèÿ íóæíî
1874
  èìåòü ïðîöåññîð íå õóæå 80386, ÷òî ñåé÷àñ íå ÿâëÿåòñÿ áîëüøîé ïðîáëåìîé.
1873
  èìåòü ïðîöåññîð íå õóæå 80386, ÷òî ñåé÷àñ íå ÿâëÿåòñÿ áîëüøîé ïðîáëåìîé.
1875
 
1874
 
1876
      Äëÿ ñîâìåñòèìîñòè ñî ñòàíäàðòîì, ïðèíÿòîì â ÿçûêå C, ââåäåíû
1875
      Äëÿ ñîâìåñòèìîñòè ñî ñòàíäàðòîì, ïðèíÿòîì â ÿçûêå C, ââåäåíû
1877
  íîâûå çàðåçåðâèðîâàííûå ñëîâà: short, signed, unsigned. Äëÿ òèïà int
1876
  íîâûå çàðåçåðâèðîâàííûå ñëîâà: short, signed, unsigned. Äëÿ òèïà int
1878
  â 32-áèòíîì ðåæèìå èçìåíåíà ðàçðÿäíîñòü. Âîò òàáëèöà âñåõ âàðèàíòîâ íîâûõ
1877
  â 32-áèòíîì ðåæèìå èçìåíåíà ðàçðÿäíîñòü. Âîò òàáëèöà âñåõ âàðèàíòîâ íîâûõ
1879
  òèïîâ äàííûõ:
1878
  òèïîâ äàííûõ:
1880
 
1879
 
1881
  ---------------------------------------------------------
1880
  ---------------------------------------------------------
1882
  |   ïîëíûé òèï     |äîïóñòèìûå ñîêðàùåíèÿ|ñòàðûå àíàëîãè|
1881
  |   ïîëíûé òèï     |äîïóñòèìûå ñîêðàùåíèÿ|ñòàðûå àíàëîãè|
1883
  ---------------------------------------------------------
1882
  ---------------------------------------------------------
1884
  |signed char       |char                 |  char        |
1883
  |signed char       |char                 |  char        |
1885
  |signed int        |signed, int          |  int/long    |
1884
  |signed int        |signed, int          |  int/long    |
1886
  |signed short int  |short, signed short  |  int         |
1885
  |signed short int  |short, signed short  |  int         |
1887
  |signed long int   |long, signed long    |  long        |
1886
  |signed long int   |long, signed long    |  long        |
1888
  |unsigned char     |---                  |  byte        |
1887
  |unsigned char     |---                  |  byte        |
1889
  |unsigned int      |unsigned             |  word/dword  |
1888
  |unsigned int      |unsigned             |  word/dword  |
1890
  |unsigned short int|unsigned short       |  word        |
1889
  |unsigned short int|unsigned short       |  word        |
1891
  |unsigned long int |unsigned long        |  dword       |
1890
  |unsigned long int |unsigned long        |  dword       |
1892
  ---------------------------------------------------------
1891
  ---------------------------------------------------------
1893
 
1892
 
1894
      Ñòàðûå òèïû byte, word è dword ïîääåðæèâàþòñÿ ïî ïðåæíåìó è èìåþò
1893
      Ñòàðûå òèïû byte, word è dword ïîääåðæèâàþòñÿ ïî ïðåæíåìó è èìåþò
1895
  ôóíêöèîíàëüíî ïðåæíåå çíà÷åíèå. Èçìåíåíèÿ êîñíóëèñü ëèøü òèïà int. Îí â
1894
  ôóíêöèîíàëüíî ïðåæíåå çíà÷åíèå. Èçìåíåíèÿ êîñíóëèñü ëèøü òèïà int. Îí â
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.
1902
 
1901
 
1903
 
1902
 
1904
 
1903
 
1905
  6.2 Îáúÿâëåíèå ïåðåìåííûõ.
1904
  6.2 Îáúÿâëåíèå ïåðåìåííûõ.
1906
 
1905
 
1907
 
1906
 
1908
      Ñèíòàêñèñ äëÿ îáúÿâëåíèÿ ïåðåìåííûõ ñëåäóþùèé:
1907
      Ñèíòàêñèñ äëÿ îáúÿâëåíèÿ ïåðåìåííûõ ñëåäóþùèé:
1909
 
1908
 
1910
  variable-type identifier;
1909
  variable-type identifier;
1911
 
1910
 
1912
  ãäå variable-type - char, byte, int, word, long, dword èëè float.
1911
  ãäå variable-type - char, byte, int, word, long, dword èëè float.
1913
 
1912
 
1914
      Îäíîâðåìåííî ìîãóò áûòü îáúÿâëåíû íåñêîëüêî èäåíòèôèêàòîðîâ îäíîãî òèïà:
1913
      Îäíîâðåìåííî ìîãóò áûòü îáúÿâëåíû íåñêîëüêî èäåíòèôèêàòîðîâ îäíîãî òèïà:
1915
 
1914
 
1916
  variable-type identifier1, identifier2, ... , identifierN;
1915
  variable-type identifier1, identifier2, ... , identifierN;
1917
 
1916
 
1918
      Îäíîìåðíûå ìàññèâû ìîãóò áûòü îáúÿâëåíû ñëåäóþùèì îáðàçîì:
1917
      Îäíîìåðíûå ìàññèâû ìîãóò áûòü îáúÿâëåíû ñëåäóþùèì îáðàçîì:
1919
 
1918
 
1920
  variable-type identifier[elements];
1919
  variable-type identifier[elements];
1921
 
1920
 
1922
  ãäå elements -  ïîñòîÿííîå âûðàæåíèå äëÿ  êîëè÷åñòâà ïåðåìåííûõ ýòîãî  òèïà,
1921
  ãäå elements -  ïîñòîÿííîå âûðàæåíèå äëÿ  êîëè÷åñòâà ïåðåìåííûõ ýòîãî  òèïà,
1923
  îáúåäèíåííûõ â ìàññèâ.
1922
  îáúåäèíåííûõ â ìàññèâ.
1924
 
1923
 
1925
      Èíèöèàëèçèðîâàííûå ìàññèâû ìîæíî îáúÿâëÿòü áåç óêàçàíèÿ ÷èñëà
1924
      Èíèöèàëèçèðîâàííûå ìàññèâû ìîæíî îáúÿâëÿòü áåç óêàçàíèÿ ÷èñëà
1926
  ýëåìåíòîâ. Ïðè ýòîì áóäåò ñîçäàí ìàññèâ ïî ôàêòè÷åñêîìó ÷èñëó ýëåìåíòîâ.
1925
  ýëåìåíòîâ. Ïðè ýòîì áóäåò ñîçäàí ìàññèâ ïî ôàêòè÷åñêîìó ÷èñëó ýëåìåíòîâ.
1927
 
1926
 
1928
  variable-type identifier[] = { const1, const2 };
1927
  variable-type identifier[] = { const1, const2 };
1929
 
1928
 
1930
      Ïåðåìåííûå ïðè îáúÿâëåíèè ìîãóò áûòü ïðîèíèöèàëèçèðîâàíû ñëåäóþùèì
1929
      Ïåðåìåííûå ïðè îáúÿâëåíèè ìîãóò áûòü ïðîèíèöèàëèçèðîâàíû ñëåäóþùèì
1931
  îáðàçîì:
1930
  îáðàçîì:
1932
 
1931
 
1933
  variable-type identifier = value;
1932
  variable-type identifier = value;
1934
 
1933
 
1935
      Íåêîòîðûå ïðèìåðû ãëîáàëüíûõ îáúÿâëåíèé:
1934
      Íåêîòîðûå ïðèìåðû ãëîáàëüíûõ îáúÿâëåíèé:
1936
  byte i,j;    /* îáúÿâëÿåò äâå ïåðåìåííûå òèïà byte ñ èìåíàìè i è j */
1935
  byte i,j;    /* îáúÿâëÿåò äâå ïåðåìåííûå òèïà byte ñ èìåíàìè i è j */
1937
  word see[10] /* îáúÿâëÿåò ìàññèâ ñ èìåíåì see, ñîñòîÿùèé èç 10
1936
  word see[10] /* îáúÿâëÿåò ìàññèâ ñ èìåíåì see, ñîñòîÿùèé èç 10
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.
1944
 
1943
 
1945
 
1944
 
1946
 
1945
 
1947
  6.3 Ãëîáàëüíûå ïåðåìåííûå.
1946
  6.3 Ãëîáàëüíûå ïåðåìåííûå.
1948
 
1947
 
1949
 
1948
 
1950
      Ãëîáàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå, îáëàñòü äåéñòâèÿ êîòîðûõ
1949
      Ãëîáàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå, îáëàñòü äåéñòâèÿ êîòîðûõ
1951
  ðàñïðîñòðàíÿåòñÿ íà âñþ ïðîãðàììó. Â C-- èñïîëüçîâàòü ãëîáàëüíûå ïåðåìåííûå
1950
  ðàñïðîñòðàíÿåòñÿ íà âñþ ïðîãðàììó. Â C-- èñïîëüçîâàòü ãëîáàëüíûå ïåðåìåííûå
1952
  ìîæíî â ïðîöåäóðàõ, ðàñïîëîæåííûõ íèæå ìåñòà åå îáúÿâëåíèÿ. Ò.å. åñëè Âû
1951
  ìîæíî â ïðîöåäóðàõ, ðàñïîëîæåííûõ íèæå ìåñòà åå îáúÿâëåíèÿ. Ò.å. åñëè Âû
1953
  ïèøèòå ïðîöåäóðó, â êîòîðîé èñïîëüçóåòå ïåðåìåííóþ var, à ñàìó ïåðåìåííóþ
1952
  ïèøèòå ïðîöåäóðó, â êîòîðîé èñïîëüçóåòå ïåðåìåííóþ var, à ñàìó ïåðåìåííóþ
1954
  îáúÿâëÿåòå íèæå òåêñòà ïðîöåäóðû, òî êîìïèëÿòîð âûäàñò îøèáêó. Ýòî ñâÿçàíî
1953
  îáúÿâëÿåòå íèæå òåêñòà ïðîöåäóðû, òî êîìïèëÿòîð âûäàñò îøèáêó. Ýòî ñâÿçàíî
1955
  ñ òåì, ÷òî êîìïèëÿòîð ìîæåò çíàòü òèï ïåðåìåííîé òîëüêî ïîñëå èõ
1954
  ñ òåì, ÷òî êîìïèëÿòîð ìîæåò çíàòü òèï ïåðåìåííîé òîëüêî ïîñëå èõ
1956
  îáúÿâëåíèÿ.  Íî äëÿ òàêèõ ïåðåìåííûõ ìîæíî èñïîëüçîâàòü âçÿòèå èõ àäðåñà,
1955
  îáúÿâëåíèÿ.  Íî äëÿ òàêèõ ïåðåìåííûõ ìîæíî èñïîëüçîâàòü âçÿòèå èõ àäðåñà,
1957
  òàê êàê àäðåñ ïåðåìåííîé íå çàâèñèò îò åãî òèïà. Ïðèìåð:
1956
  òàê êàê àäðåñ ïåðåìåííîé íå çàâèñèò îò åãî òèïà. Ïðèìåð:
1958
 
1957
 
1959
  void Proc(){
1958
  void Proc(){
1960
    gvar = 0; /* êîìïèëÿòîð âûäàñò ñîîáùåíèå îá îøèáêå, ò.ê. îí åùå íå çíàåò
1959
    gvar = 0; /* êîìïèëÿòîð âûäàñò ñîîáùåíèå îá îøèáêå, ò.ê. îí åùå íå çíàåò
1961
                 òèïà ïåðåìåííîé gvar */
1960
                 òèïà ïåðåìåííîé gvar */
1962
    AX = #gvar; /* íåñìîòðÿ íà òî, ÷òî êîìïèëÿòîð íå çíàåò è àäðåñà ýòîé
1961
    AX = #gvar; /* íåñìîòðÿ íà òî, ÷òî êîìïèëÿòîð íå çíàåò è àäðåñà ýòîé
1963
                   ïåðåìåííîé òàêîå âûðàæåíèå áóäåò îòêîìïèëèðîâàíî */
1962
                   ïåðåìåííîé òàêîå âûðàæåíèå áóäåò îòêîìïèëèðîâàíî */
1964
  }
1963
  }
1965
  int gvar;
1964
  int gvar;
1966
 
1965
 
1967
      Íî âñå æå ñèòóàöèÿ íå áåçíàäåæíà è íàì óäàñòñÿ äîáèòüñÿ òîãî, ÷åãî ìû
1966
      Íî âñå æå ñèòóàöèÿ íå áåçíàäåæíà è íàì óäàñòñÿ äîáèòüñÿ òîãî, ÷åãî ìû
1968
  çàäóìàëè. Â ýòîì íàì ïîìîæåò àëüòåðíàòèâíûé ñèíòàêñèñ îáðàùåíèÿ ê
1967
  çàäóìàëè. Â ýòîì íàì ïîìîæåò àëüòåðíàòèâíûé ñèíòàêñèñ îáðàùåíèÿ ê
1969
  ïåðåìåííûì:
1968
  ïåðåìåííûì:
1970
 
1969
 
1971
  void Proc(){
1970
  void Proc(){
1972
    DSINT[#gvar] = 0; /* êîìïèëÿòîð óñïåøíî îòêîìïèëèðóåò ýòî âûðàæåíèå ò.ê.
1971
    DSINT[#gvar] = 0; /* êîìïèëÿòîð óñïåøíî îòêîìïèëèðóåò ýòî âûðàæåíèå ò.ê.
1973
                         åìó òåïåðü èçâåñòåí òèï ïåðåìåííîé gvar */
1972
                         åìó òåïåðü èçâåñòåí òèï ïåðåìåííîé gvar */
1974
  }
1973
  }
1975
  int gvar;
1974
  int gvar;
1976
 
1975
 
1977
      Ïàìÿòü ïîä ãëîáàëüíûå ïåðåìåííûå âûäåëÿåòñÿ â ñåãìåíòå äàííûõ. Åñëè
1976
      Ïàìÿòü ïîä ãëîáàëüíûå ïåðåìåííûå âûäåëÿåòñÿ â ñåãìåíòå äàííûõ. Åñëè
1978
  ïåðåìåííàÿ ïðè îáúÿâëåíèè èíèöèàëèçèðóåòñÿ (ò.å. åé ïðèñâîåíî êàêîå-òî
1977
  ïåðåìåííàÿ ïðè îáúÿâëåíèè èíèöèàëèçèðóåòñÿ (ò.å. åé ïðèñâîåíî êàêîå-òî
1979
  çíà÷åíèå), òî ïåðåìåííàÿ áóäåò âêëþ÷åíà â êîä êîìïèëèðóåìîãî ôàéëà. Åñëè
1978
  çíà÷åíèå), òî ïåðåìåííàÿ áóäåò âêëþ÷åíà â êîä êîìïèëèðóåìîãî ôàéëà. Åñëè
1980
  ïåðåìåííàÿ íå èíèöèàëèçèðóåòñÿ, òî ìåñòî äëÿ ïåðåìåííîé áóäåò
1979
  ïåðåìåííàÿ íå èíèöèàëèçèðóåòñÿ, òî ìåñòî äëÿ ïåðåìåííîé áóäåò
1981
  çàðåçåðâèðîâàíî ñðàçó æå çà ïîñëåäíèì áàéòîì ñêîìïèëèðîâàííîé ïðîãðàììû.
1980
  çàðåçåðâèðîâàíî ñðàçó æå çà ïîñëåäíèì áàéòîì ñêîìïèëèðîâàííîé ïðîãðàììû.
1982
Return to contents.
1981
Return to contents.
1983
 
1982
 
1984
 
1983
 
1985
 
1984
 
1986
  6.4 Ëîêàëüíûå ïåðåìåííûå.
1985
  6.4 Ëîêàëüíûå ïåðåìåííûå.
1987
 
1986
 
1988
 
1987
 
1989
      Ëîêàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå îáëàñòü äåéñòâèÿ êîòîðûõ
1988
      Ëîêàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå îáëàñòü äåéñòâèÿ êîòîðûõ
1990
  ðàñïðîñòðàíÿåòñÿ ëèøü â ïðåäåëàõ îäíîé ïðîöåäóðû. Îáúÿâëÿòü ëîêàëüíûå
1989
  ðàñïðîñòðàíÿåòñÿ ëèøü â ïðåäåëàõ îäíîé ïðîöåäóðû. Îáúÿâëÿòü ëîêàëüíûå
1991
  ïåðåìåííûå, â îòëè÷èè îò ñîâðåìåííûõ âåðñèé C, ìîæíî ìåæäó èìåíåì ïðîöåäóðû
1990
  ïåðåìåííûå, â îòëè÷èè îò ñîâðåìåííûõ âåðñèé C, ìîæíî ìåæäó èìåíåì ïðîöåäóðû
1992
  è ïåðâîé îòêðûâàþùåéñÿ ôèãóðíîé ñêîáêîé. Ïðèìåð:
1991
  è ïåðâîé îòêðûâàþùåéñÿ ôèãóðíîé ñêîáêîé. Ïðèìåð:
1993
 
1992
 
1994
  void PROC ()
1993
  void PROC ()
1995
  int i;  //îáúÿâëåíà ëîêàëüíàÿ ïåðåìåííàÿ òèïà int ñ èìåíåì i
1994
  int i;  //îáúÿâëåíà ëîêàëüíàÿ ïåðåìåííàÿ òèïà int ñ èìåíåì i
1996
  {
1995
  {
1997
      for ( i=0; i<10; i++ ) WRITE(1);
1996
      for ( i=0; i<10; i++ ) WRITE(1);
1998
  }
1997
  }
1999
 
1998
 
2000
      Ïàìÿòü ïîä ëîêàëüíûå ïåðåìåííûå îòâîäèòñÿ â ñåãìåíòå ñòåêà.
1999
      Ïàìÿòü ïîä ëîêàëüíûå ïåðåìåííûå îòâîäèòñÿ â ñåãìåíòå ñòåêà.
2001
 
2000
 
2002
      Ê ëîêàëüíûì ïåðåìåííûì ìîæíî îòíåñòè è ïàðàìåòðû ñòåêîâûõ ïðîöåäóð. Ïîä
2001
      Ê ëîêàëüíûì ïåðåìåííûì ìîæíî îòíåñòè è ïàðàìåòðû ñòåêîâûõ ïðîöåäóð. Ïîä
2003
  íèõ òàêæå îòâîäèòñÿ ïàìÿòü â ñòåêå.
2002
  íèõ òàêæå îòâîäèòñÿ ïàìÿòü â ñòåêå.
2004
 
2003
 
2005
      Ìîæíî èíèöèàëèçèðîâàòü ëîêàëüíûå ïåðåìåííûå ïðè èõ îáúÿâëåíèè. Íî åñòü
2004
      Ìîæíî èíèöèàëèçèðîâàòü ëîêàëüíûå ïåðåìåííûå ïðè èõ îáúÿâëåíèè. Íî åñòü
2006
  íåêîòîðûå îãðàíè÷åíèÿ. Íåëüçÿ èíèöèàëèçèðîâàòü ìàññèâû è ìíîãîìåðíûå
2005
  íåêîòîðûå îãðàíè÷åíèÿ. Íåëüçÿ èíèöèàëèçèðîâàòü ìàññèâû è ìíîãîìåðíûå
2007
  ñòðóêòóðû. Èíèöèàëèçèðîâàòü ìîæíî îäíèì çíà÷åíèåì, ò.å íåëüçÿ ïðè
2006
  ñòðóêòóðû. Èíèöèàëèçèðîâàòü ìîæíî îäíèì çíà÷åíèåì, ò.å íåëüçÿ ïðè
2008
  èíèöèàëèçàöèè ëîêàëüíûõ ïåðåìåííûõ ïîëüçîâàòüñÿ ïåðå÷èñëåíèåì çàêëþ÷åííûì â
2007
  èíèöèàëèçàöèè ëîêàëüíûõ ïåðåìåííûõ ïîëüçîâàòüñÿ ïåðå÷èñëåíèåì çàêëþ÷åííûì â
2009
  ôèãóðíûå ñêîáêè è îïåðàòîðàìè FROM è EXTRACT.
2008
  ôèãóðíûå ñêîáêè è îïåðàòîðàìè FROM è EXTRACT.
2010
 
2009
 
2011
      Èìåíà ëîêàëüíûõ ïåðåìåííûõ ìîãóò ñîâïàäàòü ñ èìåíàìè ãëîáàëüíûõ
2010
      Èìåíà ëîêàëüíûõ ïåðåìåííûõ ìîãóò ñîâïàäàòü ñ èìåíàìè ãëîáàëüíûõ
2012
  ïåðåìåííûõ èëè ïðîöåäóð, íî òîãäà Âû íå ñìîæåòå îáðàòèòüñÿ ê ãëîáàëüíîé
2011
  ïåðåìåííûõ èëè ïðîöåäóð, íî òîãäà Âû íå ñìîæåòå îáðàòèòüñÿ ê ãëîáàëüíîé
2013
  ïåðåìåííîé èëè âûçâàòü îäíîèìåííóþ ïðîöåäóðó.
2012
  ïåðåìåííîé èëè âûçâàòü îäíîèìåííóþ ïðîöåäóðó.
2014
 
2013
 
2015
      Ëîêàëüíûå ïåðåìåííûå ìîæíî îáúÿâëÿòü è â íà÷àëå áëîêà ïðîöåäóðû. Íî
2014
      Ëîêàëüíûå ïåðåìåííûå ìîæíî îáúÿâëÿòü è â íà÷àëå áëîêà ïðîöåäóðû. Íî
2016
  òîëüêî äî íà÷àëà òåëà ïðîöåäóðû. Ïðèìåð:
2015
  òîëüêî äî íà÷àëà òåëà ïðîöåäóðû. Ïðèìåð:
2017
 
2016
 
2018
  void proc(){
2017
  void proc(){
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.
2025
 
2024
 
2026
 
2025
 
2027
 
2026
 
2028
  6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
2027
  6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
2029
 
2028
 
2030
 
2029
 
2031
      Íàðÿäó ñ óæå èçâåñòíûìè Âàì äèíàìè÷åñêèìè ïðîöåäóðàìè â C-- åñòü
2030
      Íàðÿäó ñ óæå èçâåñòíûìè Âàì äèíàìè÷åñêèìè ïðîöåäóðàìè â C-- åñòü
2032
  âîçìîæíîñòü èñïîëüçîâàòü äèíàìè÷åñêè è ïåðåìåííûå è ñòðóêòóðû. Äèíàìè÷åñêèå
2031
  âîçìîæíîñòü èñïîëüçîâàòü äèíàìè÷åñêè è ïåðåìåííûå è ñòðóêòóðû. Äèíàìè÷åñêèå
2033
  ïåðåìåííûå è ñòðóêòóðû îáîçíà÷àþòñÿ òàêæå êàê è äèíàìè÷åñêèå ïðîöåäóðû -
2032
  ïåðåìåííûå è ñòðóêòóðû îáîçíà÷àþòñÿ òàêæå êàê è äèíàìè÷åñêèå ïðîöåäóðû -
2034
  ñèìâîëîì äâîåòî÷èÿ ïåðåä íà÷àëîì èõ îáúÿâëåíèÿ. È òàêæå êàê è äèíàìè÷åñêàÿ
2033
  ñèìâîëîì äâîåòî÷èÿ ïåðåä íà÷àëîì èõ îáúÿâëåíèÿ. È òàêæå êàê è äèíàìè÷åñêàÿ
2035
  ïðîöåäóðà, äèíàìè÷åñêàÿ ïåðåìåííàÿ èëè ñòðóêòóðà áóäåò âñòàâëåíà â êîä,
2034
  ïðîöåäóðà, äèíàìè÷åñêàÿ ïåðåìåííàÿ èëè ñòðóêòóðà áóäåò âñòàâëåíà â êîä,
2036
  ëèøü â òîì ñëó÷àå, åñëè îíà áóäåò èñïîëüçîâàíà â ïðîãðàììå.
2035
  ëèøü â òîì ñëó÷àå, åñëè îíà áóäåò èñïîëüçîâàíà â ïðîãðàììå.
2037
 
2036
 
2038
      Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû íàéäóò ïðèìåíåíèå â áèáëèîòåêàõ.
2037
      Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû íàéäóò ïðèìåíåíèå â áèáëèîòåêàõ.
2039
  Èñïîëüçîâàòü èõ íåïîñðåäñòâåííî â ïðîãðàììàõ íåò ñìûñëà.
2038
  Èñïîëüçîâàòü èõ íåïîñðåäñòâåííî â ïðîãðàììàõ íåò ñìûñëà.
2040
 
2039
 
2041
      Ó äèíàìè÷åñêèõ ïåðåìåííûõ, ñòðóêòóð òàêæå êàê è ó ïðîöåäóð, åñòü îäèí
2040
      Ó äèíàìè÷åñêèõ ïåðåìåííûõ, ñòðóêòóð òàêæå êàê è ó ïðîöåäóð, åñòü îäèí
2042
  íåäîñòàòîê - Âû íå ñìîæåòå çíàòü, â êàêîì ìåñòå îòêîìïèëèðîâàííîãî êîäà îíè
2041
  íåäîñòàòîê - Âû íå ñìîæåòå çíàòü, â êàêîì ìåñòå îòêîìïèëèðîâàííîãî êîäà îíè
2043
  áóäóò ðàñïîëîæåíû, è â êàêîì ïîðÿäêå. Íî íåîáõîäèìîñòü ýòî çíàòü áûâàåò
2042
  áóäóò ðàñïîëîæåíû, è â êàêîì ïîðÿäêå. Íî íåîáõîäèìîñòü ýòî çíàòü áûâàåò
2044
  î÷åíü ðåäêî.
2043
  î÷åíü ðåäêî.
2045
 
2044
 
2046
      Äèíàìè÷åñêèå èíèöèàëèçèðîâàííûå ïåðåìåííûå è ñòðóêòóðû â ôàéëå áóäóò
2045
      Äèíàìè÷åñêèå èíèöèàëèçèðîâàííûå ïåðåìåííûå è ñòðóêòóðû â ôàéëå áóäóò
2047
  ðàñïîëîæåíû â åãî ñàìîì êîíöå, ïîñëå äèíàìè÷åñêèõ ïðîöåäóð. Ýòó èõ
2046
  ðàñïîëîæåíû â åãî ñàìîì êîíöå, ïîñëå äèíàìè÷åñêèõ ïðîöåäóð. Ýòó èõ
2048
  îñîáåííîñòü ìîæíî èñïîëüçîâàòü, åñëè Âàì áóäåò íåîáõîäèìî, ÷òîáû äàííûå íå
2047
  îñîáåííîñòü ìîæíî èñïîëüçîâàòü, åñëè Âàì áóäåò íåîáõîäèìî, ÷òîáû äàííûå íå
2049
  áûëè ðàçáðîñàíû ñðåäè êîäà, à áûëè ñãðóïïèðîâàíû â îäíîì ìåñòå.
2048
  áûëè ðàçáðîñàíû ñðåäè êîäà, à áûëè ñãðóïïèðîâàíû â îäíîì ìåñòå.
2050
Return to contents.
2049
Return to contents.
2051
 
2050
 
2052
 
2051
 
2053
 
2052
 
2054
  6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
2053
  6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
2055
 
2054
 
2056
 
2055
 
2057
      Åñëè Âàì íåîáõîäèìî ïðèñâîèòü íåñêîëüêèì ïåðåìåííûì îäèíàêîâûå çíà÷åíèÿ:
2056
      Åñëè Âàì íåîáõîäèìî ïðèñâîèòü íåñêîëüêèì ïåðåìåííûì îäèíàêîâûå çíà÷åíèÿ:
2058
 
2057
 
2059
    var1=0;
2058
    var1=0;
2060
    var2=0;
2059
    var2=0;
2061
    var3=0;
2060
    var3=0;
2062
 
2061
 
2063
      òî òåïåðü ýòî ìîæíî çàïèñàòü áîëåå êîðîòêî:
2062
      òî òåïåðü ýòî ìîæíî çàïèñàòü áîëåå êîðîòêî:
2064
 
2063
 
2065
    var1=var2=var3=0;
2064
    var1=var2=var3=0;
2066
 
2065
 
2067
      Ïðè èñïîëüçîâàíèè òàêîé çàïèñè ãåíåðèðóåòñÿ áîëåå êîìïàêòíûé è áîëåå
2066
      Ïðè èñïîëüçîâàíèè òàêîé çàïèñè ãåíåðèðóåòñÿ áîëåå êîìïàêòíûé è áîëåå
2068
  áûñòðûé êîä.
2067
  áûñòðûé êîä.
2069
Return to contents.
2068
Return to contents.
2070
 
2069
 
2071
 
2070
 
2072
 
2071
 
2073
  6.7 Ïåðåìåííûå òèïà float.
2072
  6.7 Ïåðåìåííûå òèïà float.
2074
 
2073
 
2075
    6.7.1 Ôîðìàò ïåðåìåííûõ òèïà float.
2074
    6.7.1 Ôîðìàò ïåðåìåííûõ òèïà float.
2076
 
2075
 
2077
 
2076
 
2078
        Äëÿ ïðåäñòàâëåíèÿ çíà÷åíèé ñ ïëàâàþùåé òî÷êîé â ÿçûê C-- ââåäåí òèï
2077
        Äëÿ ïðåäñòàâëåíèÿ çíà÷åíèé ñ ïëàâàþùåé òî÷êîé â ÿçûê C-- ââåäåí òèï
2079
    float. Ýòîìó òèïó ñîîòâåòñòâóåò äåéñòâèòåëüíîå ÷èñëî îäèíàðíîé òî÷íîñòè
2078
    float. Ýòîìó òèïó ñîîòâåòñòâóåò äåéñòâèòåëüíîå ÷èñëî îäèíàðíîé òî÷íîñòè
2080
    FPU.
2079
    FPU.
2081
 
2080
 
2082
        Ôîðìàò ïðåäñòàâëåíèÿ äàííûõ ñ ïëàâàþùåé òî÷êîé âêëþ÷àåò òðè ïîëÿ:
2081
        Ôîðìàò ïðåäñòàâëåíèÿ äàííûõ ñ ïëàâàþùåé òî÷êîé âêëþ÷àåò òðè ïîëÿ:
2083
    çíàêà, ìàíòèññû è ïîðÿäêà. Çíàê îïðåäåëÿåòñÿ ñòàðøèì çíà÷àùèì ðàçðÿäîì.
2082
    çíàêà, ìàíòèññû è ïîðÿäêà. Çíàê îïðåäåëÿåòñÿ ñòàðøèì çíà÷àùèì ðàçðÿäîì.
2084
    Ïîëå ìàíòèññû ñîäåðæèò çíà÷àùèå áèòû ÷èñëà, à ïîëå ïîðÿäêà ñîäåðæèò
2083
    Ïîëå ìàíòèññû ñîäåðæèò çíà÷àùèå áèòû ÷èñëà, à ïîëå ïîðÿäêà ñîäåðæèò
2085
    ñòåïåíü 2 è îïðåäåëÿåò ìàñøòàáèðóþùèé ìíîæèòåëü äëÿ ìàíòèññû.
2084
    ñòåïåíü 2 è îïðåäåëÿåò ìàñøòàáèðóþùèé ìíîæèòåëü äëÿ ìàíòèññû.
2086
 
2085
 
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.
2093
 
2092
 
2094
 
2093
 
2095
 
2094
 
2096
    6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
2095
    6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
2097
 
2096
 
2098
 
2097
 
2099
        Êîìïèëÿòîð îòëè÷àåò âåùåñòâåííîå ÷èñëî îò öåëîãî ïî íàëè÷èþ â íåì
2098
        Êîìïèëÿòîð îòëè÷àåò âåùåñòâåííîå ÷èñëî îò öåëîãî ïî íàëè÷èþ â íåì
2100
    òî÷êè. Íà÷èíàòüñÿ âåùåñòâåííîå ÷èñëî äîëæíî ëèáî öèôðîé îò 0 äî 9, ëèáî
2099
    òî÷êè. Íà÷èíàòüñÿ âåùåñòâåííîå ÷èñëî äîëæíî ëèáî öèôðîé îò 0 äî 9, ëèáî
2101
    çíàêîì ìèíóñ. Íåîáÿçàòåëüíîé ÷àñòüþ âåùåñòâåííîãî ÷èñëà ÿâëÿåòñÿ
2100
    çíàêîì ìèíóñ. Íåîáÿçàòåëüíîé ÷àñòüþ âåùåñòâåííîãî ÷èñëà ÿâëÿåòñÿ
2102
    ïîêàçàòåëü ñòåïåíè. Ïîêàçàòåëü ñòåïåíè îòäåëÿåòñÿ îò ÷èñëà ñèìâîëîì e èëè
2101
    ïîêàçàòåëü ñòåïåíè. Ïîêàçàòåëü ñòåïåíè îòäåëÿåòñÿ îò ÷èñëà ñèìâîëîì e èëè
2103
    E. Ïðîáåëû íåäîïóñòèìû. Âîò ïðèìåðû äîïóñòèìîãî ñèíòàêñèñà:
2102
    E. Ïðîáåëû íåäîïóñòèìû. Âîò ïðèìåðû äîïóñòèìîãî ñèíòàêñèñà:
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
2109
Return to contents.
2108
Return to contents.
2110
 
2109
 
2111
 
2110
 
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 è
2118
    -1.17E-38. Çàïèñûâàòü âåùåñòâåííîå ÷èñëî îäèíàðíîé òî÷íîñòè áîëåå ÷åì 8
2117
    -1.17E-38. Çàïèñûâàòü âåùåñòâåííîå ÷èñëî îäèíàðíîé òî÷íîñòè áîëåå ÷åì 8
2119
    öèôðàìè íå èìååò ñìûñëà. Ïîêàçàòåëü ñòåïåíè ìîæåò ïðèíèìàòü çíà÷åíèÿ îò
2118
    öèôðàìè íå èìååò ñìûñëà. Ïîêàçàòåëü ñòåïåíè ìîæåò ïðèíèìàòü çíà÷åíèÿ îò
2120
    +38 äî -38.
2119
    +38 äî -38.
2121
Return to contents.
2120
Return to contents.
2122
 
2121
 
2123
 
2122
 
2124
 
2123
 
2125
    6.7.4 Ìàòåìàòè÷åñêèå îïåðàöèè.
2124
    6.7.4 Ìàòåìàòè÷åñêèå îïåðàöèè.
2126
 
2125
 
2127
 
2126
 
2128
        Êîìïèëÿòîð ïîääåðæèâàåò 4 îñíîâíûõ äåéñòâèÿ íàä ïåðåìåííûìè òèïà
2127
        Êîìïèëÿòîð ïîääåðæèâàåò 4 îñíîâíûõ äåéñòâèÿ íàä ïåðåìåííûìè òèïà
2129
    float: ñëîæåíèå, âû÷èòàíèå, óìíîæåíèå è äåëåíèå. Ïîääåðæèâàåòñÿ òàêæå
2128
    float: ñëîæåíèå, âû÷èòàíèå, óìíîæåíèå è äåëåíèå. Ïîääåðæèâàåòñÿ òàêæå
2130
    èíêðåìåíò (var++ - óâåëè÷åíèå íà 1), äåêðåìåíò (var-- - óìåíüøåíèå íà 1),
2129
    èíêðåìåíò (var++ - óâåëè÷åíèå íà 1), äåêðåìåíò (var-- - óìåíüøåíèå íà 1),
2131
    ñìåíà çíàêà (-var) è îáìåí çíà÷åíèÿìè (var1 >< var2). Îñòàëüíûå
2130
    ñìåíà çíàêà (-var) è îáìåí çíà÷åíèÿìè (var1 >< var2). Îñòàëüíûå
2132
    ìàòåìàòè÷åñêèå îïåðàöèè áóäóò ðåàëèçîâàíû ëèáî óæå ðåàëèçîâàíû âî âíåøíèõ
2131
    ìàòåìàòè÷åñêèå îïåðàöèè áóäóò ðåàëèçîâàíû ëèáî óæå ðåàëèçîâàíû âî âíåøíèõ
2133
    áèáëèîòåêàõ. Ïðè âû÷èñëåíèè çíà÷åíèÿ ïåðåìåííîé float ìîæíî èñïîëüçîâàòü
2132
    áèáëèîòåêàõ. Ïðè âû÷èñëåíèè çíà÷åíèÿ ïåðåìåííîé float ìîæíî èñïîëüçîâàòü
2134
    è ïåðåìåííûå äðóãèõ òèïîâ, îíè áóäóò àâòîìàòè÷åñêè ïðåîáðàçîâàíû â òèï
2133
    è ïåðåìåííûå äðóãèõ òèïîâ, îíè áóäóò àâòîìàòè÷åñêè ïðåîáðàçîâàíû â òèï
2135
    float.
2134
    float.
2136
 
2135
 
2137
        ÂÍÈÌÀÍÈÅ! Ñîñòàâíûå ìàòåìàòè÷åñêèå  îïåðàöèè âûïîëíÿþòñÿ â òîì
2136
        ÂÍÈÌÀÍÈÅ! Ñîñòàâíûå ìàòåìàòè÷åñêèå  îïåðàöèè âûïîëíÿþòñÿ â òîì
2138
    ïîðÿäêå, â êîòîðîì îíè çàïèñàíû, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè.
2137
    ïîðÿäêå, â êîòîðîì îíè çàïèñàíû, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè.
2139
Return to contents.
2138
Return to contents.
2140
 
2139
 
2141
 
2140
 
2142
 
2141
 
2143
    6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.
2142
    6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.
2144
 
2143
 
2145
 
2144
 
2146
        Ïðè ìàòåìàòè÷åñêèõ îïåðàöèÿõ êîíå÷íûì èòîãîì êîòîðûõ ÿâëÿåòñÿ
2145
        Ïðè ìàòåìàòè÷åñêèõ îïåðàöèÿõ êîíå÷íûì èòîãîì êîòîðûõ ÿâëÿåòñÿ
2147
    ïåðåìåííàÿ òèïà float, âñå îïåðàíäû äðóãèõ òèïîâ ïåðåä âû÷èñëåíèåì áóäóò
2146
    ïåðåìåííàÿ òèïà float, âñå îïåðàíäû äðóãèõ òèïîâ ïåðåä âû÷èñëåíèåì áóäóò
2148
    ïðåîáðàçîâàíû â òèï float. Ïðè ïðèñâàèâàíèè ïåðåìåííîé òèïà float çíà÷åíèÿ
2147
    ïðåîáðàçîâàíû â òèï float. Ïðè ïðèñâàèâàíèè ïåðåìåííîé òèïà float çíà÷åíèÿ
2149
    ïåðåìåííîé äðóãîãî òèïà îíî òàêæå áóäåò ïðåîáðàçîâàíî â òèï float.
2148
    ïåðåìåííîé äðóãîãî òèïà îíî òàêæå áóäåò ïðåîáðàçîâàíî â òèï float.
2150
 
2149
 
2151
        Åñëè ïðè öåëî÷èñëåííûõ âû÷èñëåíèÿõ îäíèì èç îïåðàíäîâ áóäåò ïåðåìåííàÿ
2150
        Åñëè ïðè öåëî÷èñëåííûõ âû÷èñëåíèÿõ îäíèì èç îïåðàíäîâ áóäåò ïåðåìåííàÿ
2152
    òèïà float, òî èç íåãî áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è ïðèìåò
2151
    òèïà float, òî èç íåãî áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è ïðèìåò
2153
    ó÷àñòèå â âû÷èñëåíèÿõ. Ïðè ïðèñâàèâàíèè öåëî÷èñëåííîé ïåðåìåííîé çíà÷åíèÿ
2152
    ó÷àñòèå â âû÷èñëåíèÿõ. Ïðè ïðèñâàèâàíèè öåëî÷èñëåííîé ïåðåìåííîé çíà÷åíèÿ
2154
    ïåðåìåííîé òèïà float, èç íåå òàêæå áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è
2153
    ïåðåìåííîé òèïà float, èç íåå òàêæå áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è
2155
    áóäåò ïðèñâîåíà öåëî÷èñëåííîé ïåðåìåííîé.
2154
    áóäåò ïðèñâîåíà öåëî÷èñëåííîé ïåðåìåííîé.
2156
Return to contents.
2155
Return to contents.
2157
 
2156
 
2158
 
2157
 
2159
 
2158
 
2160
    6.7.6 Îïåðàöèè ñðàâíåíèÿ.
2159
    6.7.6 Îïåðàöèè ñðàâíåíèÿ.
2161
 
2160
 
2162
 
2161
 
2163
        Åñëè ïðè îïåðàöèè ñðàâíåíèÿ ëåâûì îïåðàíäîì ÿâëÿåòñÿ ïåðåìåííàÿ èëè
2162
        Åñëè ïðè îïåðàöèè ñðàâíåíèÿ ëåâûì îïåðàíäîì ÿâëÿåòñÿ ïåðåìåííàÿ èëè
2164
    âûðàæåíèå òèïà float, à ïðàâûì ÿâëÿåòñÿ öåëî÷èñëåííîå çíà÷åíèå, òî
2163
    âûðàæåíèå òèïà float, à ïðàâûì ÿâëÿåòñÿ öåëî÷èñëåííîå çíà÷åíèå, òî
2165
    öåëî÷èñëåííîå çíà÷åíèå áóäåò ïðåîáðàçîâàíî â âåùåñòâåííûé òèï. Åñëè æå
2164
    öåëî÷èñëåííîå çíà÷åíèå áóäåò ïðåîáðàçîâàíî â âåùåñòâåííûé òèï. Åñëè æå
2166
    ëåâûì îïåðàíäîì ÿâëÿåòñÿ öåëî÷èñëåííîå âûðàæåíèå èëè ïåðåìåííàÿ, à ïðàâûì
2165
    ëåâûì îïåðàíäîì ÿâëÿåòñÿ öåëî÷èñëåííîå âûðàæåíèå èëè ïåðåìåííàÿ, à ïðàâûì
2167
    îïåðàíäîì çíà÷åíèå òèïà float, òî èç ïðàâîãî îïåðàíäà áóäåò âûäåëåíà öåëàÿ
2166
    îïåðàíäîì çíà÷åíèå òèïà float, òî èç ïðàâîãî îïåðàíäà áóäåò âûäåëåíà öåëàÿ
2168
    ÷àñòü, êîòîðàÿ è ïðèìåò ó÷àñòèå â ñðàâíåíèè.
2167
    ÷àñòü, êîòîðàÿ è ïðèìåò ó÷àñòèå â ñðàâíåíèè.
2169
Return to contents.
2168
Return to contents.
2170
 
2169
 
2171
 
2170
 
2172
 
2171
 
2173
    6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
2172
    6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
2174
 
2173
 
2175
 
2174
 
2176
        Â ðåãèñòðàõ ìîãóò ñîäåðæàòüñÿ çíàêîâûå, áåç çíàêîâûå è âåùåñòâåííûå
2175
        Â ðåãèñòðàõ ìîãóò ñîäåðæàòüñÿ çíàêîâûå, áåç çíàêîâûå è âåùåñòâåííûå
2177
    äàííûå. Ïî óìîë÷àíèþ ñ÷èòàåòñÿ, ÷òî â ðåãèñòðå íàõîäèòñÿ áåç çíàêîâîå öåëîå
2176
    äàííûå. Ïî óìîë÷àíèþ ñ÷èòàåòñÿ, ÷òî â ðåãèñòðå íàõîäèòñÿ áåç çíàêîâîå öåëîå
2178
    ÷èñëî. Ïðè ñðàâíåíèè ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì ìîæíî
2177
    ÷èñëî. Ïðè ñðàâíåíèè ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì ìîæíî
2179
    óêàçûâàòü òèï äàííûõ ñîäåðæàùèõñÿ â ðåãèñòðå.  Äëÿ ýòîé öåëè ìîæíî
2178
    óêàçûâàòü òèï äàííûõ ñîäåðæàùèõñÿ â ðåãèñòðå.  Äëÿ ýòîé öåëè ìîæíî
2180
    èñïîëüçîâàòü ìîäèôèêàòîðû: signed, unsigned, float. Ïðèìåðû:
2179
    èñïîëüçîâàòü ìîäèôèêàòîðû: signed, unsigned, float. Ïðèìåðû:
2181
 
2180
 
2182
    float f=1.0;
2181
    float f=1.0;
2183
 
2182
 
2184
    void PROC()
2183
    void PROC()
2185
    {
2184
    {
2186
      IF( f < signed ECX)	//â ðåãèñòðå ECX íàõîäèòñÿ çíàêîâîå ÷èñëî
2185
      IF( f < signed ECX)       //â ðåãèñòðå ECX íàõîäèòñÿ çíàêîâîå ÷èñëî
2187
      IF( unsigned EBX > f) //â ðåãèñòðå EBX íàõîäèòñÿ áåç çíàêîâîå ÷èñëî
2186
      IF( unsigned EBX > f) //â ðåãèñòðå EBX íàõîäèòñÿ áåç çíàêîâîå ÷èñëî
2188
      IF( f == float EAX )  //â EAX íàõîäèòñÿ ÷èñëî ôîðìàòà float
2187
      IF( f == float EAX )  //â EAX íàõîäèòñÿ ÷èñëî ôîðìàòà float
2189
    }
2188
    }
2190
 
2189
 
2191
        ÂÍÈÌÀÍÈÅ!  Ïðè îïåðàöèè ñðàâíåíèÿ ñ ó÷àñòèåì ïåðåìåíîé òèïà float,
2190
        ÂÍÈÌÀÍÈÅ!  Ïðè îïåðàöèè ñðàâíåíèÿ ñ ó÷àñòèåì ïåðåìåíîé òèïà float,
2192
    ñîäåðæèìîå ðåãèñòðà AX áóäåò ðàçðóøåíî.
2191
    ñîäåðæèìîå ðåãèñòðà AX áóäåò ðàçðóøåíî.
2193
Return to contents.
2192
Return to contents.
2194
 
2193
 
2195
 
2194
 
2196
 
2195
 
2197
  6.8 Óêàçàòåëè.
2196
  6.8 Óêàçàòåëè.
2198
 
2197
 
2199
 
2198
 
2200
       C-- ñåé÷àñ óêàçàòåëè ðåàëèçîâàíû íå â ïîëíîì îáúåìå. Ïîýòîìó ìíîãèå
2199
       C-- ñåé÷àñ óêàçàòåëè ðåàëèçîâàíû íå â ïîëíîì îáúåìå. Ïîýòîìó ìíîãèå
2201
  âåùè, êîòîðûå âîçìîæíû â îáû÷íûõ ÿçûêàõ C, çäåñü áóäóò íåäîñòóïíû.
2200
  âåùè, êîòîðûå âîçìîæíû â îáû÷íûõ ÿçûêàõ C, çäåñü áóäóò íåäîñòóïíû.
2202
 
2201
 
2203
      Ïðèìåð ïðèìåíåíèÿ óêàçàòåëåé â C--:
2202
      Ïðèìåð ïðèìåíåíèÿ óêàçàòåëåé â C--:
2204
 
2203
 
2205
  char *string[4]={"string1", "string2", "string3", 0}; //ìàññèâ óêàçàòåëåé
2204
  char *string[4]={"string1", "string2", "string3", 0}; //ìàññèâ óêàçàòåëåé
2206
  char *str="string4";
2205
  char *str="string4";
2207
 
2206
 
2208
  main()
2207
  main()
2209
  int i;
2208
  int i;
2210
  char *tstr;
2209
  char *tstr;
2211
  {
2210
  {
2212
	FOR(i=0; string[i]!=0; i++){
2211
        FOR(i=0; string[i]!=0; i++){
2213
		WRITESTR(string[i]);
2212
                WRITESTR(string[i]);
2214
		WRITELN();
2213
                WRITELN();
2215
	}
2214
        }
2216
	FOR(tstr=str;byte *tstr!=0; tstr++){
2215
        FOR(tstr=str;byte *tstr!=0; tstr++){
2217
		WRITE(byte *tstr);
2216
                WRITE(byte *tstr);
2218
	}
2217
        }
2219
  }
2218
  }
2220
 
2219
 
2221
      Óêàçàòåëè ìîæíî èñïîëüçîâàòü ïðè ïåðåäà÷å ïàðàìåòðîâ ïðîöåäóðàì, à â
2220
      Óêàçàòåëè ìîæíî èñïîëüçîâàòü ïðè ïåðåäà÷å ïàðàìåòðîâ ïðîöåäóðàì, à â
2222
  ñàìèõ ïðîöåäóðàõ â êà÷åñòâå êàê ëîêàëüíûõ, òàê è ïàðàìåòðè÷åñêèõ
2221
  ñàìèõ ïðîöåäóðàõ â êà÷åñòâå êàê ëîêàëüíûõ, òàê è ïàðàìåòðè÷åñêèõ
2223
  ïåðåìåííûõ. Óêàçàòåëè ìîæíî òàêæå èñïîëüçîâàòü â ñòðóêòóðàõ. Ìîæíî
2222
  ïåðåìåííûõ. Óêàçàòåëè ìîæíî òàêæå èñïîëüçîâàòü â ñòðóêòóðàõ. Ìîæíî
2224
  èñïîëüçîâàòü óêàçàòåëè íà óêàçàòåëè. Ââåäåíà ïîääåðæêà óêàçàòåëåé íà
2223
  èñïîëüçîâàòü óêàçàòåëè íà óêàçàòåëè. Ââåäåíà ïîääåðæêà óêàçàòåëåé íà
2225
  ïðîöåäóðû:
2224
  ïðîöåäóðû:
2226
 
2225
 
2227
  void (*proc)();  //îáúÿâëåíèå óêàçàòåëÿ íà ïðîöåäóðó
2226
  void (*proc)();  //îáúÿâëåíèå óêàçàòåëÿ íà ïðîöåäóðó
2228
 
2227
 
2229
      Ïî óìîë÷àíèþ óêàçàòåëè íà ïðîöåäóðó ÿâëÿþòñÿ óêàçàòåëÿìè íà ïðîöåäóðó â
2228
      Ïî óìîë÷àíèþ óêàçàòåëè íà ïðîöåäóðó ÿâëÿþòñÿ óêàçàòåëÿìè íà ïðîöåäóðó â
2230
  ñòèëå pascal, íåçàâèñèìî îò ðåãèñòðà, â êîòîðîì íàïèñàíî èìÿ ïðîöåäóðû è
2229
  ñòèëå pascal, íåçàâèñèìî îò ðåãèñòðà, â êîòîðîì íàïèñàíî èìÿ ïðîöåäóðû è
2231
  ðåæèìà êîìïèëÿöèè. Åñëè Âàì íåîáõîäèìî, ÷òîáû áûë èñïîëüçîâàí äðóãîé òèï
2230
  ðåæèìà êîìïèëÿöèè. Åñëè Âàì íåîáõîäèìî, ÷òîáû áûë èñïîëüçîâàí äðóãîé òèï
2232
  âûçîâà, òî åãî íåîáõîäèìî óêàçàòü ïðè îáúÿâëåíèè óêàçàòåëÿ íà ïðîöåäóðó.
2231
  âûçîâà, òî åãî íåîáõîäèìî óêàçàòü ïðè îáúÿâëåíèè óêàçàòåëÿ íà ïðîöåäóðó.
2233
 
2232
 
2234
      Ïðè èíèöèàëèçàöèè óêàçàòåëåé êîìïèëÿòîð íå êîíòðîëèðóåò òî, ÷åì
2233
      Ïðè èíèöèàëèçàöèè óêàçàòåëåé êîìïèëÿòîð íå êîíòðîëèðóåò òî, ÷åì
2235
  èíèöèàëèçèðóåòñÿ óêàçàòåëü. Ò.å. Âû ìîæåòå óêàçàòåëþ íà char ïðèñâîèòü
2234
  èíèöèàëèçèðóåòñÿ óêàçàòåëü. Ò.å. Âû ìîæåòå óêàçàòåëþ íà char ïðèñâîèòü
2236
  óêàçàòåëü íà int èëè óêàçàòåëþ íà ïðîöåäóðó ïðèñâîèòü àäðåñ ïåðåìåííîé.
2235
  óêàçàòåëü íà int èëè óêàçàòåëþ íà ïðîöåäóðó ïðèñâîèòü àäðåñ ïåðåìåííîé.
2237
  Ýòî ìîæåò âûçâàòü îøèáêó â ðàáîòå ïðîãðàììû.
2236
  Ýòî ìîæåò âûçâàòü îøèáêó â ðàáîòå ïðîãðàììû.
2238
Return to contents.
2237
Return to contents.
2239
 
2238
 
2240
 
2239
 
2241
 
2240
 
2242
7. Àäðåñàöèÿ.
2241
7. Àäðåñàöèÿ.
2243
 
2242
 
2244
  7.1 Îòíîñèòåëüíàÿ àäðåñàöèÿ.
2243
  7.1 Îòíîñèòåëüíàÿ àäðåñàöèÿ.
2245
 
2244
 
2246
 
2245
 
2247
      Èçíà÷àëüíî èíäåêñíûé äîñòóï ê ýëåìåíòàì â ìàññèâàõ ëþáîãî òèïà â
2246
      Èçíà÷àëüíî èíäåêñíûé äîñòóï ê ýëåìåíòàì â ìàññèâàõ ëþáîãî òèïà â
2248
  êîìïèëÿòîðå îñóùåñòâëÿëñÿ ïîáàéòíî, íåçàâèñèìî îò îáúÿâëåííîãî òèïà äàííûõ.
2247
  êîìïèëÿòîðå îñóùåñòâëÿëñÿ ïîáàéòíî, íåçàâèñèìî îò îáúÿâëåííîãî òèïà äàííûõ.
2249
  Èíäåêñû îãðàíè÷åíû ôîðìàòîì ïîëÿ RM ïðîöåññîðà 8086, òàêèì îáðàçîì,
2248
  Èíäåêñû îãðàíè÷åíû ôîðìàòîì ïîëÿ RM ïðîöåññîðà 8086, òàêèì îáðàçîì,
2250
  äîñòóïíû òîëüêî ñëåäóþùèå ôîðìàòû èíäåêñîâ (ãäå èíäåêñ - çíà÷åíèå
2249
  äîñòóïíû òîëüêî ñëåäóþùèå ôîðìàòû èíäåêñîâ (ãäå èíäåêñ - çíà÷åíèå
2251
  16-ðàçðÿäíîé êîíñòàíòû èëè ïîñòîÿííîãî âûðàæåíèÿ):
2250
  16-ðàçðÿäíîé êîíñòàíòû èëè ïîñòîÿííîãî âûðàæåíèÿ):
2252
 
2251
 
2253
        variable[index]
2252
        variable[index]
2254
        variable[index+BX+SI]
2253
        variable[index+BX+SI]
2255
        variable[index+BX+DI]
2254
        variable[index+BX+DI]
2256
        variable[index+BP+SI]
2255
        variable[index+BP+SI]
2257
        variable[index+BP+DI]
2256
        variable[index+BP+DI]
2258
        variable[index+SI]
2257
        variable[index+SI]
2259
        variable[index+DI]
2258
        variable[index+DI]
2260
        variable[index+BP]
2259
        variable[index+BP]
2261
        variable[index+BX]
2260
        variable[index+BX]
2262
 
2261
 
2263
      Íà÷èíàÿ ñ âåðñèè 0.210, ïîÿâèëàñü âîçìîæíîñòü èñïîëüçîâàòü â êà÷åñòâå
2262
      Íà÷èíàÿ ñ âåðñèè 0.210, ïîÿâèëàñü âîçìîæíîñòü èñïîëüçîâàòü â êà÷åñòâå
2264
  èíäåêñà ïåðåìåííûõ òèïà char byte int word long dword. Ïðè ýòîì
2263
  èíäåêñà ïåðåìåííûõ òèïà char byte int word long dword. Ïðè ýòîì
2265
  äîñòóï ê ýëåìåíòàì ìàññèâà îñóùåñòâëÿåòñÿ â çàâèñèìîñòè îò îáúÿâëåííîãî òèïà
2264
  äîñòóï ê ýëåìåíòàì ìàññèâà îñóùåñòâëÿåòñÿ â çàâèñèìîñòè îò îáúÿâëåííîãî òèïà
2266
  ìàññèâà.
2265
  ìàññèâà.
2267
 
2266
 
2268
      Òàêæå íà÷èíàÿ ñ âåðñèè 0.210 ïîÿâèëàñü âîçìîæíîñòü èñïîëüçîâàòü â
2267
      Òàêæå íà÷èíàÿ ñ âåðñèè 0.210 ïîÿâèëàñü âîçìîæíîñòü èñïîëüçîâàòü â
2269
  êà÷åñòâå èíäåêñíûõ è áàçîâûõ ðåãèñòðîâ ïðè îòíîñèòåëüíîé àäðåñàöèè ëþáûå
2268
  êà÷åñòâå èíäåêñíûõ è áàçîâûõ ðåãèñòðîâ ïðè îòíîñèòåëüíîé àäðåñàöèè ëþáûå
2270
  32-áèòíûå ðåãèñòðû.
2269
  32-áèòíûå ðåãèñòðû.
2271
 
2270
 
2272
      Åñëè Âû äëÿ àäðåñàöèè ê ýëåìåíòàì ìàññèâà áóäåòå èñïîëüçîâàòü ðåãèñòðû è
2271
      Åñëè Âû äëÿ àäðåñàöèè ê ýëåìåíòàì ìàññèâà áóäåòå èñïîëüçîâàòü ðåãèñòðû è
2273
  ÷èñëîâûå êîíñòàíòû, èç êîòîðûõ ìîæíî ïîëó÷èòü ïîëå RM äëÿ èíñòðóêöèé 8086
2272
  ÷èñëîâûå êîíñòàíòû, èç êîòîðûõ ìîæíî ïîëó÷èòü ïîëå RM äëÿ èíñòðóêöèé 8086
2274
  ïðîöåññîðà èëè êîìáèíàöèþ ïîëåé RM BASE è SIB äëÿ 80386 ïðîöåññîðà, òî
2273
  ïðîöåññîðà èëè êîìáèíàöèþ ïîëåé RM BASE è SIB äëÿ 80386 ïðîöåññîðà, òî
2275
  êîìïèëÿòîð áóäåò èñïîëüçîâàòü ýòè ðåãèñòðû äëÿ ãåíåðàöèè èíñòðóêöèè ñ ýòèìè
2274
  êîìïèëÿòîð áóäåò èñïîëüçîâàòü ýòè ðåãèñòðû äëÿ ãåíåðàöèè èíñòðóêöèè ñ ýòèìè
2276
  ïîëÿìè.  ðåçóëüòàòå Âû ïîëó÷èòå îòíîñèòåëüíóþ ïîáàéòíóþ àäðåñàöèþ ê
2275
  ïîëÿìè.  ðåçóëüòàòå Âû ïîëó÷èòå îòíîñèòåëüíóþ ïîáàéòíóþ àäðåñàöèþ ê
2277
  ýëåìåíòàì ìàññèâà.
2276
  ýëåìåíòàì ìàññèâà.
2278
 
2277
 
2279
      Åñëè æå èç ýòèõ ðåãèñòðîâ íåâîçìîæíî ïîëó÷èòü ïîëÿ RM, BASE, SIB,
2278
      Åñëè æå èç ýòèõ ðåãèñòðîâ íåâîçìîæíî ïîëó÷èòü ïîëÿ RM, BASE, SIB,
2280
  èëè äëÿ àäðåñàöèè áóäåò èñïîëüçîâàíà ïåðåìåííàÿ, òî êîìïèëÿòîð ñíà÷àëà
2279
  èëè äëÿ àäðåñàöèè áóäåò èñïîëüçîâàíà ïåðåìåííàÿ, òî êîìïèëÿòîð ñíà÷àëà
2281
  âû÷èñëèò ýòî âûðàæåíèå â ðåãèñòð (E)SI èëè äðóãîé, ïîäõîäÿùèé ðåãèñòð, à
2280
  âû÷èñëèò ýòî âûðàæåíèå â ðåãèñòð (E)SI èëè äðóãîé, ïîäõîäÿùèé ðåãèñòð, à
2282
  çàòåì óìíîæèò ñîäåðæèìîå ýòîãî ðåãèñòðà íà ðàçðÿäíîñòü Âàøåãî ìàññèâà. Òàêèì
2281
  çàòåì óìíîæèò ñîäåðæèìîå ýòîãî ðåãèñòðà íà ðàçðÿäíîñòü Âàøåãî ìàññèâà. Òàêèì
2283
  îáðàçîì, â ýòîì ñëó÷àå âû áóäåòå èìåòü ïîýëåìåíòíóþ àäðåñàöèþ â ìàññèâå.
2282
  îáðàçîì, â ýòîì ñëó÷àå âû áóäåòå èìåòü ïîýëåìåíòíóþ àäðåñàöèþ â ìàññèâå.
2284
  Ïðèìåð:
2283
  Ïðèìåð:
2285
 
2284
 
2286
    AX = var [ 5 ];
2285
    AX = var [ 5 ];
2287
    AX = var [ BX + 5 ];
2286
    AX = var [ BX + 5 ];
2288
    AX = var [ BX + CX ];
2287
    AX = var [ BX + CX ];
2289
    AX = var [ i ];
2288
    AX = var [ i ];
2290
 
2289
 
2291
      Êîìïèëÿòîð ñãåíåðèðóåò ñëåäóþùèé êîä:
2290
      Êîìïèëÿòîð ñãåíåðèðóåò ñëåäóþùèé êîä:
2292
  test.c-- 7: AX=var[5];
2291
  test.c-- 7: AX=var[5];
2293
  0100 A12501                   mov     ax,[125h]
2292
  0100 A12501                   mov     ax,[125h]
2294
 
2293
 
2295
  test.c-- 8: AX=var[BX+5];
2294
  test.c-- 8: AX=var[BX+5];
2296
  0103 8B872501                 mov     ax,[bx+125h]
2295
  0103 8B872501                 mov     ax,[bx+125h]
2297
 
2296
 
2298
  test.c-- 9: AX=var[BX+CX];
2297
  test.c-- 9: AX=var[BX+CX];
2299
  0107 89DE                     mov     si,bx
2298
  0107 89DE                     mov     si,bx
2300
  0109 01CE                     add     si,cx
2299
  0109 01CE                     add     si,cx
2301
  010B 01F6                     add     si,si
2300
  010B 01F6                     add     si,si
2302
  010D 8B842001                 mov     ax,[si+120h]
2301
  010D 8B842001                 mov     ax,[si+120h]
2303
 
2302
 
2304
  test.c-- 10: AX=var[i];
2303
  test.c-- 10: AX=var[i];
2305
  0111 8B362201                 mov     si,[122h]
2304
  0111 8B362201                 mov     si,[122h]
2306
  0115 01F6                     add     si,si
2305
  0115 01F6                     add     si,si
2307
  0117 8B842001                 mov     ax,[si+120h]
2306
  0117 8B842001                 mov     ax,[si+120h]
2308
 
2307
 
2309
      Êàê Âû âèäèòå, ïåðâûå äâà âûðàæåíèÿ áûëè ïðåîáðàçîâàíû â îäíó
2308
      Êàê Âû âèäèòå, ïåðâûå äâà âûðàæåíèÿ áûëè ïðåîáðàçîâàíû â îäíó
2310
  àññåìáëåðíóþ èíñòðóêöèþ, è ïîëó÷èëàñü ïîáàéòíàÿ àäðåñàöèÿ.  äâóõ ñëåäóþùèõ
2309
  àññåìáëåðíóþ èíñòðóêöèþ, è ïîëó÷èëàñü ïîáàéòíàÿ àäðåñàöèÿ.  äâóõ ñëåäóþùèõ
2311
  âûðàæåíèÿõ ïîëó÷èòü îäíó àññåìáëåðíóþ èíñòðóêöèþ íå óäàëîñü è êîìïèëÿòîð
2310
  âûðàæåíèÿõ ïîëó÷èòü îäíó àññåìáëåðíóþ èíñòðóêöèþ íå óäàëîñü è êîìïèëÿòîð
2312
  ïðèìåíèë äëÿ ýòèõ âûðàæåíèé ïîýëåìåíòíóþ àäðåñàöèþ.
2311
  ïðèìåíèë äëÿ ýòèõ âûðàæåíèé ïîýëåìåíòíóþ àäðåñàöèþ.
2313
 
2312
 
2314
      Òàêîé äâîéñòâåííûé ïîäõîä ðåàëèçîâàí ñ öåëüþ ñîõðàíåíèÿ ñîâìåñòèìîñòè
2313
      Òàêîé äâîéñòâåííûé ïîäõîä ðåàëèçîâàí ñ öåëüþ ñîõðàíåíèÿ ñîâìåñòèìîñòè
2315
  íîâûõ âîçìîæíîñòåé ñ ïðåäûäóùèìè.
2314
  íîâûõ âîçìîæíîñòåé ñ ïðåäûäóùèìè.
2316
 
2315
 
2317
      Íåñìîòðÿ íà êàæóùóþñÿ äëÿ íåèñêóøåííîãî ïîëüçîâàòåëÿ ïóòàíèöó, ýòîò
2316
      Íåñìîòðÿ íà êàæóùóþñÿ äëÿ íåèñêóøåííîãî ïîëüçîâàòåëÿ ïóòàíèöó, ýòîò
2318
  ìåõàíèçì ëåãêî ïîíÿòü è çàïîìíèòü ïî ñëåäóþùåìó ïðîñòîìó ïðàâèëó: åñëè Âû
2317
  ìåõàíèçì ëåãêî ïîíÿòü è çàïîìíèòü ïî ñëåäóþùåìó ïðîñòîìó ïðàâèëó: åñëè Âû
2319
  èñïîëüçóåòå â êà÷åñòâå èíäåêñà òîëüêî öèôðîâîå çíà÷åíèå èëè ðåãèñòð BX, SI,
2318
  èñïîëüçóåòå â êà÷åñòâå èíäåêñà òîëüêî öèôðîâîå çíà÷åíèå èëè ðåãèñòð BX, SI,
2320
  DI, BP èëè ëþáîé 32-áèòíûé ðåãèñòð, òî êîìïèëÿòîð ñãåíåðèðóåò êîä ñ
2319
  DI, BP èëè ëþáîé 32-áèòíûé ðåãèñòð, òî êîìïèëÿòîð ñãåíåðèðóåò êîä ñ
2321
  ïîáàéòíîé àäðåñàöèåé. Åñëè æå â êà÷åñòâå èíäåêñà áóäåò èñïîëüçîâàíà
2320
  ïîáàéòíîé àäðåñàöèåé. Åñëè æå â êà÷åñòâå èíäåêñà áóäåò èñïîëüçîâàíà
2322
  ïåðåìåííàÿ, òî êîìïèëÿòîð ñãåíåðèðóåò êîä ñ ïîýëåìåíòíîé àäðåñàöèåé. Åñëè
2321
  ïåðåìåííàÿ, òî êîìïèëÿòîð ñãåíåðèðóåò êîä ñ ïîýëåìåíòíîé àäðåñàöèåé. Åñëè
2323
  æå Âû õîðîøî çíàêîìû ñ àññåìáëåðîì, òî Âàì íå ñîñòàâèò áîëüøîãî òðóäà
2322
  æå Âû õîðîøî çíàêîìû ñ àññåìáëåðîì, òî Âàì íå ñîñòàâèò áîëüøîãî òðóäà
2324
  ïîíÿòü â êàêèõ ñëó÷àÿõ Âû ïîëó÷èòå ïîáàéòíóþ, à â êàêèõ ïîýëåìåíòíóþ
2323
  ïîíÿòü â êàêèõ ñëó÷àÿõ Âû ïîëó÷èòå ïîáàéòíóþ, à â êàêèõ ïîýëåìåíòíóþ
2325
  àäðåñàöèþ.
2324
  àäðåñàöèþ.
2326
 
2325
 
2327
      Èíîãäà òðåáóåòñÿ èìåòü ïîáàéòíûé äîñòóï ê ýëåìåíòàì ìàññèâà èñïîëüçóÿ â
2326
      Èíîãäà òðåáóåòñÿ èìåòü ïîáàéòíûé äîñòóï ê ýëåìåíòàì ìàññèâà èñïîëüçóÿ â
2328
  êà÷åñòâå èíäåêñà ïåðåìåííóþ. Íàïðèìåð
2327
  êà÷åñòâå èíäåêñà ïåðåìåííóþ. Íàïðèìåð
2329
 
2328
 
2330
    AX=var[i];
2329
    AX=var[i];
2331
 
2330
 
2332
      Äëÿ ýòîãî âûðàæåíèÿ áóäåò ñãåíåðèðîâàíà ïîýëåìåíòíàÿ àäðåñàöèÿ, à íàì
2331
      Äëÿ ýòîãî âûðàæåíèÿ áóäåò ñãåíåðèðîâàíà ïîýëåìåíòíàÿ àäðåñàöèÿ, à íàì
2333
  íóæíà ïîáàéòîâàÿ. Äëÿ ýòîãî ìîæíî íàïèñàòü òàê:
2332
  íóæíà ïîáàéòîâàÿ. Äëÿ ýòîãî ìîæíî íàïèñàòü òàê:
2334
 
2333
 
2335
    SI=i;
2334
    SI=i;
2336
    AX=var[SI];
2335
    AX=var[SI];
2337
 
2336
 
2338
      Íî ìîæíî ýòî çàïèñàòü êîðî÷å:
2337
      Íî ìîæíî ýòî çàïèñàòü êîðî÷å:
2339
 
2338
 
2340
    AX=DSWORD[#var+i];
2339
    AX=DSWORD[#var+i];
2341
 
2340
 
2342
       îáîèõ ýòèõ ñëó÷àÿõ Âû ïîëó÷èòå ïîáàéòíóþ àäðåñàöèþ ê ýëåìåíòàì ìàññèâà
2341
       îáîèõ ýòèõ ñëó÷àÿõ Âû ïîëó÷èòå ïîáàéòíóþ àäðåñàöèþ ê ýëåìåíòàì ìàññèâà
2343
  var. Â ïåðâîì âàðèàíòå Âû ñìîæåòå êîíòðîëèðîâàòü êàêîé ðåãèñòð áóäåò
2342
  var. Â ïåðâîì âàðèàíòå Âû ñìîæåòå êîíòðîëèðîâàòü êàêîé ðåãèñòð áóäåò
2344
  èñïîëüçîâàí â êà÷åñòâå èíäåêñà, à âî âòîðîì âàðèàíòå êîìïèëÿòîð áóäåò ñàì
2343
  èñïîëüçîâàí â êà÷åñòâå èíäåêñà, à âî âòîðîì âàðèàíòå êîìïèëÿòîð áóäåò ñàì
2345
  âûáèðàòü ðåãèñòð äëÿ èñïîëüçîâàíèÿ â êà÷åñòâå èíäåêñà.
2344
  âûáèðàòü ðåãèñòð äëÿ èñïîëüçîâàíèÿ â êà÷åñòâå èíäåêñà.
2346
 
2345
 
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.
2353
 
2352
 
2354
 
2353
 
2355
 
2354
 
2356
  7.2 Àáñîëþòíàÿ àäðåñàöèÿ.
2355
  7.2 Àáñîëþòíàÿ àäðåñàöèÿ.
2357
 
2356
 
2358
 
2357
 
2359
      Àáñîëþòíàÿ àäðåñàöèÿ òàêæå âîçìîæíà.  Äåéñòâóþò òå æå ñàìûå îãðàíè÷åíèÿ
2358
      Àáñîëþòíàÿ àäðåñàöèÿ òàêæå âîçìîæíà.  Äåéñòâóþò òå æå ñàìûå îãðàíè÷åíèÿ
2360
  íà èíäåêñû, ÷òî è ïðè îòíîñèòåëüíîé àäðåñàöèè.
2359
  íà èíäåêñû, ÷òî è ïðè îòíîñèòåëüíîé àäðåñàöèè.
2361
 
2360
 
2362
      Âû÷èñëåííûé èíäåêñ áóäåò àáñîëþòåí â ñåãìåíòå, ðåãèñòð êîòîðîãî óêàçàí.
2361
      Âû÷èñëåííûé èíäåêñ áóäåò àáñîëþòåí â ñåãìåíòå, ðåãèñòð êîòîðîãî óêàçàí.
2363
  Ìîæíî óêàçûâàòü ëþáîé èç ðåãèñòðîâ DS, CS, SS è ES. Íà ïðîöåññîðàõ 80386 è
2362
  Ìîæíî óêàçûâàòü ëþáîé èç ðåãèñòðîâ DS, CS, SS è ES. Íà ïðîöåññîðàõ 80386 è
2364
  áîëåå íîâûõ ìîæíî óêàçûâàòü òàêæå ðåãèñòðû FS è GS.
2363
  áîëåå íîâûõ ìîæíî óêàçûâàòü òàêæå ðåãèñòðû FS è GS.
2365
 
2364
 
2366
      Ñèíòàêñèñ - òî÷íî òàêîé æå, êàê è â îòíîñèòåëüíîé àäðåñàöèè, çà
2365
      Ñèíòàêñèñ - òî÷íî òàêîé æå, êàê è â îòíîñèòåëüíîé àäðåñàöèè, çà
2367
  èñêëþ÷åíèåì òîãî, ÷òî óêàçûâàåòñÿ íå ïåðåìåííàÿ, à ñåãìåíò è òèï äàííûõ.
2366
  èñêëþ÷åíèåì òîãî, ÷òî óêàçûâàåòñÿ íå ïåðåìåííàÿ, à ñåãìåíò è òèï äàííûõ.
2368
  Ìîãóò ïðèìåíÿòüñÿ ñëåäóþùèå óêàçàòåëè:
2367
  Ìîãóò ïðèìåíÿòüñÿ ñëåäóþùèå óêàçàòåëè:
2369
 
2368
 
2370
             // àäðåñàöèÿ â ñåãìåíòå äàííûõ
2369
             // àäðåñàöèÿ â ñåãìåíòå äàííûõ
2371
         DSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå DS
2370
         DSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå DS
2372
         DSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå DS
2371
         DSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå DS
2373
         DSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå DS
2372
         DSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå DS
2374
         DSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå DS
2373
         DSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå DS
2375
         DSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå DS
2374
         DSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå DS
2376
         DSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå DS
2375
         DSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå DS
2377
         DSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå DS
2376
         DSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå DS
2378
 
2377
 
2379
             // àäðåñàöèÿ â ñåãìåíòå êîäà
2378
             // àäðåñàöèÿ â ñåãìåíòå êîäà
2380
         CSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå CS
2379
         CSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå CS
2381
         CSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå CS
2380
         CSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå CS
2382
         CSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå CS
2381
         CSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå CS
2383
         CSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå CS
2382
         CSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå CS
2384
         CSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå CS
2383
         CSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå CS
2385
         CSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå CS
2384
         CSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå CS
2386
         CSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå CS
2385
         CSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå CS
2387
 
2386
 
2388
             // àäðåñàöèÿ â ñåãìåíòå ñòåêà
2387
             // àäðåñàöèÿ â ñåãìåíòå ñòåêà
2389
         SSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå SS
2388
         SSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå SS
2390
         SSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå SS
2389
         SSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå SS
2391
         SSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå SS
2390
         SSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå SS
2392
         SSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå SS
2391
         SSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå SS
2393
         SSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå SS
2392
         SSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå SS
2394
         SSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå SS
2393
         SSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå SS
2395
         SSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå SS
2394
         SSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå SS
2396
 
2395
 
2397
             // àäðåñàöèÿ â äîïîëíèòåëüíîì ñåãìåíòå äàííûõ
2396
             // àäðåñàöèÿ â äîïîëíèòåëüíîì ñåãìåíòå äàííûõ
2398
         ESBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå ES
2397
         ESBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå ES
2399
         ESWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå ES
2398
         ESWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå ES
2400
         ESCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå ES
2399
         ESCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå ES
2401
         ESINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå ES
2400
         ESINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå ES
2402
         ESDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå ES
2401
         ESDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå ES
2403
         ESLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå ES
2402
         ESLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå ES
2404
         ESFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå ES
2403
         ESFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå ES
2405
 
2404
 
2406
             // àäðåñàöèÿ â äîïîëíèòåëüíîì ñåãìåíòå 2 (80386) +
2405
             // àäðåñàöèÿ â äîïîëíèòåëüíîì ñåãìåíòå 2 (80386) +
2407
         FSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå FS
2406
         FSBYTE  [ñìåùåíèå] // àäðåñóåò áàéò â ñåãìåíòå FS
2408
         FSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå FS
2407
         FSWORD  [ñìåùåíèå] // àäðåñóåò ñëîâî â ñåãìåíòå FS
2409
         FSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå FS
2408
         FSCHAR  [ñìåùåíèå] // àäðåñóåò char â ñåãìåíòå FS
2410
         FSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå FS
2409
         FSINT   [ñìåùåíèå] // àäðåñóåò int â ñåãìåíòå FS
2411
         FSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå FS
2410
         FSDWORD [ñìåùåíèå] // àäðåñóåò dword â ñåãìåíòå FS
2412
         FSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå FS
2411
         FSLONG  [ñìåùåíèå] // àäðåñóåò long â ñåãìåíòå FS
2413
         FSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå FS
2412
         FSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå FS
2414
 
2413
 
2415
             // àäðåñàöèÿ â äîïîëíèòåëüíîì ñåãìåíòå 3 (80386) +
2414
             // àäðåñàöèÿ â äîïîëíèòåëüíîì ñåãìåíòå 3 (80386) +
2416
         GSBYTE  [ñìåùåíèå] // àäðåñóþò áàéò â ñåãìåíòå GS
2415
         GSBYTE  [ñìåùåíèå] // àäðåñóþò áàéò â ñåãìåíòå GS
2417
         GSWORD  [ñìåùåíèå] // àäðåñóþò ñëîâî â ñåãìåíòå GS
2416
         GSWORD  [ñìåùåíèå] // àäðåñóþò ñëîâî â ñåãìåíòå GS
2418
         GSCHAR  [ñìåùåíèå] // àäðåñóþò char â ñåãìåíòå GS
2417
         GSCHAR  [ñìåùåíèå] // àäðåñóþò char â ñåãìåíòå GS
2419
         GSINT   [ñìåùåíèå] // àäðåñóþò int â ñåãìåíòå GS
2418
         GSINT   [ñìåùåíèå] // àäðåñóþò int â ñåãìåíòå GS
2420
         GSDWORD [ñìåùåíèå] // àäðåñóþò dword â ñåãìåíòå GS
2419
         GSDWORD [ñìåùåíèå] // àäðåñóþò dword â ñåãìåíòå GS
2421
         GSLONG  [ñìåùåíèå] // àäðåñóþò long â ñåãìåíòå GS
2420
         GSLONG  [ñìåùåíèå] // àäðåñóþò long â ñåãìåíòå GS
2422
         GSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå GS
2421
         GSFLOAT [ñìåùåíèå] // àäðåñóåò float â ñåãìåíòå GS
2423
 
2422
 
2424
  Ïðèìåðû:
2423
  Ïðèìåðû:
2425
     Çàãðóçèòü â AL áàéò èç ÿ÷åéêè ñ øåñòíàäöàòåðè÷íûì àäðåñîì 0000:0417
2424
     Çàãðóçèòü â AL áàéò èç ÿ÷åéêè ñ øåñòíàäöàòåðè÷íûì àäðåñîì 0000:0417
2426
                 ES = 0x0000;
2425
                 ES = 0x0000;
2427
                 AL = ESBYTE [0x417];
2426
                 AL = ESBYTE [0x417];
2428
 
2427
 
2429
     Ïåðåìåñòèòü ñëîâî èç ÿ÷åéêè ñ øåñòíàäöàòåðè÷íûì àäðåñîì 2233:4455
2428
     Ïåðåìåñòèòü ñëîâî èç ÿ÷åéêè ñ øåñòíàäöàòåðè÷íûì àäðåñîì 2233:4455
2430
     â ÿ÷åéêó ñ øåñòíàäöàòåðè÷íûì àäðåñîì A000:0002
2429
     â ÿ÷åéêó ñ øåñòíàäöàòåðè÷íûì àäðåñîì A000:0002
2431
                 $PUSH DS
2430
                 $PUSH DS
2432
                 DS = 0x2233;
2431
                 DS = 0x2233;
2433
                 ES = 0xA000;
2432
                 ES = 0xA000;
2434
                 ESWORD [0x0002] = DSWORD [0x4455];
2433
                 ESWORD [0x0002] = DSWORD [0x4455];
2435
                 $POP DS
2434
                 $POP DS
2436
 
2435
 
2437
     Ñîõðàíèòü âû÷èñëåííîå çíà÷åíèå âûðàæåíèÿ X + 2, èìåþùåå
2436
     Ñîõðàíèòü âû÷èñëåííîå çíà÷åíèå âûðàæåíèÿ X + 2, èìåþùåå
2438
     òèï int â ÿ÷åéêå ñ øåñòíàäöàòåðè÷íûì àäðåñîì FFFF:1234
2437
     òèï int â ÿ÷åéêå ñ øåñòíàäöàòåðè÷íûì àäðåñîì FFFF:1234
2439
                 ES = 0xFFFF;
2438
                 ES = 0xFFFF;
2440
                 ESINT [0x1234] = X + 2;
2439
                 ESINT [0x1234] = X + 2;
2441
 
2440
 
2442
     Ñîõðàíèòü BX â ñåãìåíòå ñòåêà ïî ñìåùåíèþ 42:
2441
     Ñîõðàíèòü BX â ñåãìåíòå ñòåêà ïî ñìåùåíèþ 42:
2443
                 SSWORD [42] = BX;
2442
                 SSWORD [42] = BX;
2444
Return to contents.
2443
Return to contents.
2445
 
2444
 
2446
 
2445
 
2447
 
2446
 
2448
8. Ðàáîòà ñ áëîêàìè äàííûõ.
2447
8. Ðàáîòà ñ áëîêàìè äàííûõ.
2449
 
2448
 
2450
  8.1 Ñòðóêòóðû.
2449
  8.1 Ñòðóêòóðû.
2451
 
2450
 
2452
    8.1.1 ×òî òàêîå ñòðóêòóðû.
2451
    8.1.1 ×òî òàêîå ñòðóêòóðû.
2453
 
2452
 
2454
 
2453
 
2455
        Ñòðóêòóðà ïîçâîëÿåò îáúåäèíèòü â îäíîì îáúåêòå ñîâîêóïíîñòü çíà÷åíèé,
2454
        Ñòðóêòóðà ïîçâîëÿåò îáúåäèíèòü â îäíîì îáúåêòå ñîâîêóïíîñòü çíà÷åíèé,
2456
    êîòîðûå ìîãóò èìåòü ðàçëè÷íûå òèïû.
2455
    êîòîðûå ìîãóò èìåòü ðàçëè÷íûå òèïû.
2457
Return to contents.
2456
Return to contents.
2458
 
2457
 
2459
 
2458
 
2460
 
2459
 
2461
    8.1.2 Ñèíòàêñèñ.
2460
    8.1.2 Ñèíòàêñèñ.
2462
 
2461
 
2463
 
2462
 
2464
    struct [<òåã>] { <ñïèñîê-îáúÿâëåíèé-ýëåìåíòîâ> }
2463
    struct [<òåã>] { <ñïèñîê-îáúÿâëåíèé-ýëåìåíòîâ> }
2465
      <îïèñàòåëü>[,<îïèñàòåëü>...];
2464
      <îïèñàòåëü>[,<îïèñàòåëü>...];
2466
    struct <òåã> <îïèñàòåëü> [,<îïèñàòåëü>];
2465
    struct <òåã> <îïèñàòåëü> [,<îïèñàòåëü>];
2467
 
2466
 
2468
        Îáúÿâëåíèå ñòðóêòóðû íà÷èíàåòñÿ ñ êëþ÷åâîãî ñëîâà struct è èìååò äâå
2467
        Îáúÿâëåíèå ñòðóêòóðû íà÷èíàåòñÿ ñ êëþ÷åâîãî ñëîâà struct è èìååò äâå
2469
    ôîðìû çàïèñè.
2468
    ôîðìû çàïèñè.
2470
 
2469
 
2471
        Â ïåðâîé ôîðìå òèïû è èìåíà ýëåìåíòîâ ñòðóêòóðû ñïåöèôèöèðóþòñÿ â
2470
        Â ïåðâîé ôîðìå òèïû è èìåíà ýëåìåíòîâ ñòðóêòóðû ñïåöèôèöèðóþòñÿ â
2472
    ñïèñêå-îáúÿâëåíèé-ýëåìåíòîâ. Íåîáÿçàòåëüíûé â äàííîì ñëó÷àå òåã - ýòî
2471
    ñïèñêå-îáúÿâëåíèé-ýëåìåíòîâ. Íåîáÿçàòåëüíûé â äàííîì ñëó÷àå òåã - ýòî
2473
    èäåíòèôèêàòîð, êîòîðûé èìåíóåò ñòðóêòóðíûé òèï, îïðåäåëåííûé äàííûì
2472
    èäåíòèôèêàòîð, êîòîðûé èìåíóåò ñòðóêòóðíûé òèï, îïðåäåëåííûé äàííûì
2474
    ñïèñêîì îáúÿâëåíèé ýëåìåíòîâ. îïèñàòåëü ñïåöèôèöèðóåò ëèáî ïåðåìåííóþ
2473
    ñïèñêîì îáúÿâëåíèé ýëåìåíòîâ. îïèñàòåëü ñïåöèôèöèðóåò ëèáî ïåðåìåííóþ
2475
    ñòðóêòóðíîãî òèïà, ëèáî ìàññèâ ñòðóêòóð äàííîãî òèïà.
2474
    ñòðóêòóðíîãî òèïà, ëèáî ìàññèâ ñòðóêòóð äàííîãî òèïà.
2476
 
2475
 
2477
        Âòîðàÿ ñèíòàêñè÷åñêàÿ ôîðìà îáúÿâëåíèÿ èñïîëüçóåò òåã ñòðóêòóðû äëÿ
2476
        Âòîðàÿ ñèíòàêñè÷åñêàÿ ôîðìà îáúÿâëåíèÿ èñïîëüçóåò òåã ñòðóêòóðû äëÿ
2478
    ññûëêè íà ñòðóêòóðíûé òèï, îïðåäåëåííûé ãäå-òî â äðóãîì ìåñòå ïðîãðàììû.
2477
    ññûëêè íà ñòðóêòóðíûé òèï, îïðåäåëåííûé ãäå-òî â äðóãîì ìåñòå ïðîãðàììû.
2479
 
2478
 
2480
        Ñïèñîê îáúÿâëåíèé ýëåìåíòîâ ïðåäñòàâëÿåò ñîáîé ïîñëåäîâàòåëüíîñòü èç
2479
        Ñïèñîê îáúÿâëåíèé ýëåìåíòîâ ïðåäñòàâëÿåò ñîáîé ïîñëåäîâàòåëüíîñòü èç
2481
    îäíîé èëè áîëåå îáúÿâëåíèé ïåðåìåííûõ. Êàæäàÿ ïåðåìåííàÿ, îáúÿâëåííàÿ â
2480
    îäíîé èëè áîëåå îáúÿâëåíèé ïåðåìåííûõ. Êàæäàÿ ïåðåìåííàÿ, îáúÿâëåííàÿ â
2482
    ýòîì ñïèñêå, íàçûâàåòñÿ ýëåìåíòîì ñòðóêòóðû.
2481
    ýòîì ñïèñêå, íàçûâàåòñÿ ýëåìåíòîì ñòðóêòóðû.
2483
 
2482
 
2484
        Ýëåìåíòû ñòðóêòóðû çàïîìèíàþòñÿ â ïàìÿòè ïîñëåäîâàòåëüíî â òîì
2483
        Ýëåìåíòû ñòðóêòóðû çàïîìèíàþòñÿ â ïàìÿòè ïîñëåäîâàòåëüíî â òîì
2485
    ïîðÿäêå, â êîòîðîì îíè îáúÿâëÿþòñÿ. Âûðàâíèâàíèå ýëåìåíòîâ âíóòðè
2484
    ïîðÿäêå, â êîòîðîì îíè îáúÿâëÿþòñÿ. Âûðàâíèâàíèå ýëåìåíòîâ âíóòðè
2486
    ñòðóêòóðû ïî óìîë÷àíèþ íå ïðîèçâîäèòñÿ. Íî ñóùåñòâóåò îïöèÿ, âêëþ÷åíèå
2485
    ñòðóêòóðû ïî óìîë÷àíèþ íå ïðîèçâîäèòñÿ. Íî ñóùåñòâóåò îïöèÿ, âêëþ÷åíèå
2487
    êîòîðîé â êîìàíäíóþ ñòðîêó ïîçâîëÿåò èìåòü âûðàâíèâàíèå è âíóòðè
2486
    êîòîðîé â êîìàíäíóþ ñòðîêó ïîçâîëÿåò èìåòü âûðàâíèâàíèå è âíóòðè
2488
    ñòðóêòóðû. Ñàìà ñòðóêòóðà âûðàâíèâàåòñÿ íà ÷åòíûé àäðåñ åñëè âêëþ÷åíî
2487
    ñòðóêòóðû. Ñàìà ñòðóêòóðà âûðàâíèâàåòñÿ íà ÷åòíûé àäðåñ åñëè âêëþ÷åíî
2489
    âûðàâíèâàíèå.
2488
    âûðàâíèâàíèå.
2490
 
2489
 
2491
      Ïðèìåðû îáúÿâëåíèé ñòðóêòóð:
2490
      Ïðèìåðû îáúÿâëåíèé ñòðóêòóð:
2492
 
2491
 
2493
    struct test
2492
    struct test
2494
    {
2493
    {
2495
      int a;
2494
      int a;
2496
      char b[8];
2495
      char b[8];
2497
      long c;
2496
      long c;
2498
    } rr, ff[4];
2497
    } rr, ff[4];
2499
 
2498
 
2500
        Â ýòîì ïðèìåðå îáúÿâëåíû ñòðóêòóðà ñ èìåíåì rr è ìàññèâ èç 4 ñòðóêòóð
2499
        Â ýòîì ïðèìåðå îáúÿâëåíû ñòðóêòóðà ñ èìåíåì rr è ìàññèâ èç 4 ñòðóêòóð
2501
    ñ èìåíåì ff. Âñåìó íàáîðó ïåðåìåííûõ ïðèñâîåíî íàçâàíèå (òåã) test. Ýòîò
2500
    ñ èìåíåì ff. Âñåìó íàáîðó ïåðåìåííûõ ïðèñâîåíî íàçâàíèå (òåã) test. Ýòîò
2502
    òåã ìîæíî èñïîëüçîâàòü äëÿ îáúÿâëåíèÿ äðóãèõ ñòðóêòóð. Íàïðèìåð:
2501
    òåã ìîæíî èñïîëüçîâàòü äëÿ îáúÿâëåíèÿ äðóãèõ ñòðóêòóð. Íàïðèìåð:
2503
 
2502
 
2504
   struct test dd;
2503
   struct test dd;
2505
 
2504
 
2506
        Çäåñü îáúÿâëåíà ñòðóêòóðà ñ èìåíåì dd, èìåþùàÿ íàáîð ýëåìåíòîâ
2505
        Çäåñü îáúÿâëåíà ñòðóêòóðà ñ èìåíåì dd, èìåþùàÿ íàáîð ýëåìåíòîâ
2507
    îïèñàííûõ â òåãå test.
2506
    îïèñàííûõ â òåãå test.
2508
 
2507
 
2509
        Ïðè îáúÿâëåíèè ñòðóêòóð ñ ðàíåå îáúÿâëåííûì òåãîì êëþ÷åâîå ñëîâî
2508
        Ïðè îáúÿâëåíèè ñòðóêòóð ñ ðàíåå îáúÿâëåííûì òåãîì êëþ÷åâîå ñëîâî
2510
   struct ìîæíî íå ïèñàòü. Ò.å ìîæíî íàïèñàòü âîò òàê:
2509
   struct ìîæíî íå ïèñàòü. Ò.å ìîæíî íàïèñàòü âîò òàê:
2511
 
2510
 
2512
      test dd;
2511
      test dd;
2513
Return to contents.
2512
Return to contents.
2514
 
2513
 
2515
 
2514
 
2516
 
2515
 
2517
    8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
2516
    8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
2518
 
2517
 
2519
 
2518
 
2520
        Ïîñëå îáúÿâëåíèÿ ñòðóêòóðû åå ýëåìåíòû ìîãóò ïðèíèìàòü ïðîèçâîëüíûå
2519
        Ïîñëå îáúÿâëåíèÿ ñòðóêòóðû åå ýëåìåíòû ìîãóò ïðèíèìàòü ïðîèçâîëüíûå
2521
    çíà÷åíèÿ. ×òî áû ýòîãî íå áûëî íàäî ñòðóêòóðû ïðîèíèöèàëèçèðîâàòü.
2520
    çíà÷åíèÿ. ×òî áû ýòîãî íå áûëî íàäî ñòðóêòóðû ïðîèíèöèàëèçèðîâàòü.
2522
    Èíèöèàëèçèðîâàòü ñòðóêòóðû ïðè èõ îáúÿâëåíèè ìîæíî òîëüêî ãëîáàëüíûå. C--
2521
    Èíèöèàëèçèðîâàòü ñòðóêòóðû ïðè èõ îáúÿâëåíèè ìîæíî òîëüêî ãëîáàëüíûå. C--
2523
    ïîääåðæèâàåò íåñêîëüêî ñïîñîáîâ èíèöèàëèçàöèè ñòðóêòóð ïðè èõ îáúÿâëåíèè:
2522
    ïîääåðæèâàåò íåñêîëüêî ñïîñîáîâ èíèöèàëèçàöèè ñòðóêòóð ïðè èõ îáúÿâëåíèè:
2524
 
2523
 
2525
      1. Îäíèì çíà÷åíèåì:
2524
      1. Îäíèì çíà÷åíèåì:
2526
 
2525
 
2527
       struct test dd=2;
2526
       struct test dd=2;
2528
 
2527
 
2529
     ýòîì ïðèìåðå âñåì ýëåìåíòàì ñòðóêòóðû dd ïðèñâàèâàåòñÿ çíà÷åíèå 2.
2528
     ýòîì ïðèìåðå âñåì ýëåìåíòàì ñòðóêòóðû dd ïðèñâàèâàåòñÿ çíà÷åíèå 2.
2530
 
2529
 
2531
      2. Ìàññèâîì çíà÷åíèé:
2530
      2. Ìàññèâîì çíà÷åíèé:
2532
 
2531
 
2533
       struct test dd={1,2,,6};
2532
       struct test dd={1,2,,6};
2534
 
2533
 
2535
     ýòîì ïðèìåðå ïåðâîìó ýëåìåíòó ñòðóêòóðû dd ïðèñâàèâàåòñÿ çíà÷åíèå 1,
2534
     ýòîì ïðèìåðå ïåðâîìó ýëåìåíòó ñòðóêòóðû dd ïðèñâàèâàåòñÿ çíà÷åíèå 1,
2536
    âòîðîìó - 2, ÷åòâåðòîìó - 6. Ïðîïóùåííûì è íå äîèíèöèàëèçèðîâàííûì
2535
    âòîðîìó - 2, ÷åòâåðòîìó - 6. Ïðîïóùåííûì è íå äîèíèöèàëèçèðîâàííûì
2537
    çíà÷åíèÿì áóäåò ïðèñâîåíî 0 çíà÷åíèå.
2536
    çíà÷åíèÿì áóäåò ïðèñâîåíî 0 çíà÷åíèå.
2538
 
2537
 
2539
      3. Êîìàíäîé FROM:
2538
      3. Êîìàíäîé FROM:
2540
 
2539
 
2541
       struct test dd=FROM "file.dat";
2540
       struct test dd=FROM "file.dat";
2542
 
2541
 
2543
    Â ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
2542
    Â ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
2544
    çàãðóæåíî ñîäåðæèìîå ôàéëà . Åñëè ðàçìåð ôàéëà áîëüøå ÷åì ðàçìåð
2543
    çàãðóæåíî ñîäåðæèìîå ôàéëà . Åñëè ðàçìåð ôàéëà áîëüøå ÷åì ðàçìåð
2545
    ñòðóêòóðû, òî ëèøíèå áàéòû áóäóò çàãðóæåíû â êîä ïðîãðàììû, íî îíè íå
2544
    ñòðóêòóðû, òî ëèøíèå áàéòû áóäóò çàãðóæåíû â êîä ïðîãðàììû, íî îíè íå
2546
    áóäóò âîñòðåáîâàíû. Åñëè ðàçìåð ôàéëà ìåíüøå ÷åì ðàçìåð ñòðóêòóðû, òî
2545
    áóäóò âîñòðåáîâàíû. Åñëè ðàçìåð ôàéëà ìåíüøå ÷åì ðàçìåð ñòðóêòóðû, òî
2547
    íåäîñòàþùèå áàéòû ñòðóêòóðû áóäóò çàïîëíåíû íóëÿìè.
2546
    íåäîñòàþùèå áàéòû ñòðóêòóðû áóäóò çàïîëíåíû íóëÿìè.
2548
 
2547
 
2549
      4. Êîìàíäîé EXTRACT:
2548
      4. Êîìàíäîé EXTRACT:
2550
 
2549
 
2551
       struct test dd=EXTRACT "file.dat", 24, 10;
2550
       struct test dd=EXTRACT "file.dat", 24, 10;
2552
 
2551
 
2553
    Â ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
2552
    Â ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
2554
    çàãðóæåí ôðàãìåíò èç ôàéëà file.dat äëèíîé 10 áàéò ñî ñìåùåíèÿ 24.
2553
    çàãðóæåí ôðàãìåíò èç ôàéëà file.dat äëèíîé 10 áàéò ñî ñìåùåíèÿ 24.
2555
    Íåäîñòàþùèå áàéòû áóäóò çàïîëíåíû íóëÿìè.
2554
    Íåäîñòàþùèå áàéòû áóäóò çàïîëíåíû íóëÿìè.
2556
Return to contents.
2555
Return to contents.
2557
 
2556
 
2558
 
2557
 
2559
 
2558
 
2560
    8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
2559
    8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
2561
 
2560
 
2562
 
2561
 
2563
        Ïðè âûïîëíåíèè ïðîãðàììû, êðîìå ïðèñâîåíèÿ êàæäîìó ýëåìåíòó ñòðóêòóðû
2562
        Ïðè âûïîëíåíèè ïðîãðàììû, êðîìå ïðèñâîåíèÿ êàæäîìó ýëåìåíòó ñòðóêòóðû
2564
    çíà÷åíèÿ, ìîæíî ïðîèíèöèàëèçèðîâàòü âñþ ñòðóêòóðó ïðèñâîåíèåì åé ÷èñëà èëè
2563
    çíà÷åíèÿ, ìîæíî ïðîèíèöèàëèçèðîâàòü âñþ ñòðóêòóðó ïðèñâîåíèåì åé ÷èñëà èëè
2565
    ïåðåìåííîé. Ïðèìåðû:
2564
    ïåðåìåííîé. Ïðèìåðû:
2566
 
2565
 
2567
    void proc()
2566
    void proc()
2568
    struct test aa[5],rr;
2567
    struct test aa[5],rr;
2569
    int i;
2568
    int i;
2570
    {
2569
    {
2571
      aa[0]=0x12345678;
2570
      aa[0]=0x12345678;
2572
      aa[i]=int 0x12345678;
2571
      aa[i]=int 0x12345678;
2573
      aa=long 0x12345678;
2572
      aa=long 0x12345678;
2574
      rr=i;
2573
      rr=i;
2575
 
2574
 
2576
    Â ïåðâîì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ ïåðâîé ñòðóêòóðîé ìàññèâà èç 5
2575
    Â ïåðâîì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ ïåðâîé ñòðóêòóðîé ìàññèâà èç 5
2577
    ñòðóêòóð, áóäåò çàïîëíåíà áàéòîì 0x78 (ïî óìîë÷àíèþ).
2576
    ñòðóêòóð, áóäåò çàïîëíåíà áàéòîì 0x78 (ïî óìîë÷àíèþ).
2578
 
2577
 
2579
    Âî âòîðîì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ (i+1)-âîé ñòðóêòóðîé ìàññèâà èç 5
2578
    Âî âòîðîì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ (i+1)-âîé ñòðóêòóðîé ìàññèâà èç 5
2580
    ñòðóêòóð, áóäåò çàïîëíåíà ñëîâîì 0x5678.
2579
    ñòðóêòóð, áóäåò çàïîëíåíà ñëîâîì 0x5678.
2581
 
2580
 
2582
    Â òðåòüåì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ âñåì ìàññèâîì èç 5 ñòðóêòóð, áóäåò
2581
    Â òðåòüåì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ âñåì ìàññèâîì èç 5 ñòðóêòóð, áóäåò
2583
    çàïîëíåíà äëèííûì ñëîâîì 0x12345678.
2582
    çàïîëíåíà äëèííûì ñëîâîì 0x12345678.
2584
 
2583
 
2585
     ÷åòâåðòîì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ ñòðóêòóðîé rr, áóäåò çàïîëíåíà
2584
     ÷åòâåðòîì ïðèìåðå ïàìÿòü, çàíèìàåìàÿ ñòðóêòóðîé rr, áóäåò çàïîëíåíà
2586
    ñîäåðæèìûì ïåðåìåííîé i.
2585
    ñîäåðæèìûì ïåðåìåííîé i.
2587
 
2586
 
2588
        Ìîæíî òàêæå êîïèðîâàòü ñîäåðæèìîå îäíîé ñòðóêòóðû â äðóãóþ. Íàïðèìåð:
2587
        Ìîæíî òàêæå êîïèðîâàòü ñîäåðæèìîå îäíîé ñòðóêòóðû â äðóãóþ. Íàïðèìåð:
2589
 
2588
 
2590
      rr=aa[2];
2589
      rr=aa[2];
2591
 
2590
 
2592
    Áóäåò ñêîïèðîâàíî ñîäåðæèìîå òðåòüåé ñòðóêòóðû ìàññèâà ñòðóêòóð aa â
2591
    Áóäåò ñêîïèðîâàíî ñîäåðæèìîå òðåòüåé ñòðóêòóðû ìàññèâà ñòðóêòóð aa â
2593
    ñòðóêòóðó rr.
2592
    ñòðóêòóðó rr.
2594
Return to contents.
2593
Return to contents.
2595
 
2594
 
2596
 
2595
 
2597
 
2596
 
2598
    8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
2597
    8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
2599
 
2598
 
2600
 
2599
 
2601
        Ñ ýëåìåíòàìè ñòðóêòóð ìîæíî âûïîëíÿòü âñå òå îïåðàöèè, êîòîðûå
2600
        Ñ ýëåìåíòàìè ñòðóêòóð ìîæíî âûïîëíÿòü âñå òå îïåðàöèè, êîòîðûå
2602
    äîñòóïíû äëÿ ïåðåìåííûõ ñîîòâåòñòâóþùåãî òèïà. Íàïðèìåð:  Îáúÿâëåíà
2601
    äîñòóïíû äëÿ ïåðåìåííûõ ñîîòâåòñòâóþùåãî òèïà. Íàïðèìåð:  Îáúÿâëåíà
2603
    ñòðóêòóðà:
2602
    ñòðóêòóðà:
2604
 
2603
 
2605
    struct test
2604
    struct test
2606
    {
2605
    {
2607
      int a;
2606
      int a;
2608
      char b[8];
2607
      char b[8];
2609
      long c;
2608
      long c;
2610
    } rr[3];
2609
    } rr[3];
2611
    Ïðèìåð äîïóñòèìîãî ñèíòàêñèñà:
2610
    Ïðèìåð äîïóñòèìîãî ñèíòàêñèñà:
2612
        rr.a = rr.b[i] * rr[1].c + i ;
2611
        rr.a = rr.b[i] * rr[1].c + i ;
2613
 
2612
 
2614
    Ïðèìå÷àíèå:
2613
    Ïðèìå÷àíèå:
2615
        Ïðè îïåðàöèÿõ ñ ýëåìåíòàìè ìàññèâà ñòðóêòóð è ñ èíäåêñèðîâàííûìè
2614
        Ïðè îïåðàöèÿõ ñ ýëåìåíòàìè ìàññèâà ñòðóêòóð è ñ èíäåêñèðîâàííûìè
2616
    ýëåìåíòàìè, â êîòîðûõ â êà÷åñòâå èíäåêñà èëè íîìåðà ñòðóêòóðû èñïîëüçóåòñÿ
2615
    ýëåìåíòàìè, â êîòîðûõ â êà÷åñòâå èíäåêñà èëè íîìåðà ñòðóêòóðû èñïîëüçóåòñÿ
2617
    ïåðåìåííàÿ, êîìïèëÿòîð ìîæåò èñïîëüçîâàòü ðåãèñòðû SI è DI, à â íåêîòîðûõ
2616
    ïåðåìåííàÿ, êîìïèëÿòîð ìîæåò èñïîëüçîâàòü ðåãèñòðû SI è DI, à â íåêîòîðûõ
2618
    ñèòóàöèÿõ (íàïðèìåð:  rr[i].b[j] >< rr[i+1].b[j+2] ) áóäåò çàäåéñòâîâàí è
2617
    ñèòóàöèÿõ (íàïðèìåð:  rr[i].b[j] >< rr[i+1].b[j+2] ) áóäåò çàäåéñòâîâàí è
2619
    ðåãèñòð DX.
2618
    ðåãèñòð DX.
2620
 
2619
 
2621
        Äëÿ îòäåëüíûõ ýëåìåíòîâ ñòðóêòóðû, ìîæíî ïîëó÷àòü èõ àäðåñ, ðàçìåð
2620
        Äëÿ îòäåëüíûõ ýëåìåíòîâ ñòðóêòóðû, ìîæíî ïîëó÷àòü èõ àäðåñ, ðàçìåð
2622
    è ñìåùåíèå â òåãå ñòðóêòóðû. Âîò ïðèìåð:
2621
    è ñìåùåíèå â òåãå ñòðóêòóðû. Âîò ïðèìåð:
2623
 
2622
 
2624
    struct AA       //îáúÿâëåíèå òåãà ñòðóêòóðû
2623
    struct AA       //îáúÿâëåíèå òåãà ñòðóêòóðû
2625
    {
2624
    {
2626
      word a[3];    // ïåðâûé ýëåìåíò ñòðóêòóðû
2625
      word a[3];    // ïåðâûé ýëåìåíò ñòðóêòóðû
2627
      char b;       // âòîðîé ýëåìåíò ñòðóêòóðû
2626
      char b;       // âòîðîé ýëåìåíò ñòðóêòóðû
2628
      long c;       // òðåòèé ýëåìåíò ñòðóêòóðû
2627
      long c;       // òðåòèé ýëåìåíò ñòðóêòóðû
2629
    };
2628
    };
2630
 
2629
 
2631
    struct BB	//òåã âòîðîé ñòðóêòóðû
2630
    struct BB   //òåã âòîðîé ñòðóêòóðû
2632
    {
2631
    {
2633
      word aa;	// ïåðâûé ýëåìåíò
2632
      word aa;  // ïåðâûé ýëåìåíò
2634
      AA bb;	// âòîðîé ýëåìåíò - âëîæåííàÿ ñòðóêòóðà
2633
      AA bb;    // âòîðîé ýëåìåíò - âëîæåííàÿ ñòðóêòóðà
2635
    }ss;		// îáúÿâëÿåì ñòðóêòóðó ñ òåãîì BB
2634
    }ss;                // îáúÿâëÿåì ñòðóêòóðó ñ òåãîì BB
2636
 
2635
 
2637
    void proc()
2636
    void proc()
2638
    {
2637
    {
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.
2645
 
2644
 
2646
 
2645
 
2647
 
2646
 
2648
    8.1.6 Âëîæåííûå ñòðóêòóðû.
2647
    8.1.6 Âëîæåííûå ñòðóêòóðû.
2649
 
2648
 
2650
 
2649
 
2651
        Ïðè îáúÿâëåíèè òåãîâ ñòðóêòóð ìîæíî èñïîëüçîâàòü òåãè äðóãèõ,
2650
        Ïðè îáúÿâëåíèè òåãîâ ñòðóêòóð ìîæíî èñïîëüçîâàòü òåãè äðóãèõ,
2652
    îáúÿâëåííûõ ðàíåå ñòðóêòóð. Ïðèìåð âëîæåííûõ ñòðóêòóð:
2651
    îáúÿâëåííûõ ðàíåå ñòðóêòóð. Ïðèìåð âëîæåííûõ ñòðóêòóð:
2653
 
2652
 
2654
    struct RGB
2653
    struct RGB
2655
    {
2654
    {
2656
      byte Red;
2655
      byte Red;
2657
      byte Green;
2656
      byte Green;
2658
      byte Blue;
2657
      byte Blue;
2659
      byte Reserved;
2658
      byte Reserved;
2660
    };
2659
    };
2661
 
2660
 
2662
    struct BMPINFO
2661
    struct BMPINFO
2663
    {
2662
    {
2664
      struct BMPHEADER header; //îïèñàíèå ýòîé ñòðóêòóðû ïðîïóùåíî
2663
      struct BMPHEADER header; //îïèñàíèå ýòîé ñòðóêòóðû ïðîïóùåíî
2665
      struct RGB color[256];
2664
      struct RGB color[256];
2666
    }info;
2665
    }info;
2667
 
2666
 
2668
        Ïðåäïîëîæèì Âàì íóæíî ïîëó÷èòü ñîäåðæèìîå ïåðåìåííîé Red äåñÿòîãî
2667
        Ïðåäïîëîæèì Âàì íóæíî ïîëó÷èòü ñîäåðæèìîå ïåðåìåííîé Red äåñÿòîãî
2669
    ýëåìåíòà color. Ýòî ìîæíî áóäåò çàïèñàòü òàê:
2668
    ýëåìåíòà color. Ýòî ìîæíî áóäåò çàïèñàòü òàê:
2670
 
2669
 
2671
      AL=info.color[10].Red;
2670
      AL=info.color[10].Red;
2672
 
2671
 
2673
        Íî ñóùåñòâóåò îäíî îãðàíè÷åíèå èñïîëüçîâàíèÿ âëîæåííûõ ñòðóêòóð â C--.
2672
        Íî ñóùåñòâóåò îäíî îãðàíè÷åíèå èñïîëüçîâàíèÿ âëîæåííûõ ñòðóêòóð â C--.
2674
    Ýòî íåâîçìîæíîñòü èñïîëüçîâàíèÿ ïåðåìåííîé â êà÷åñòâå èíäåêñà áîëåå îäíîãî
2673
    Ýòî íåâîçìîæíîñòü èñïîëüçîâàíèÿ ïåðåìåííîé â êà÷åñòâå èíäåêñà áîëåå îäíîãî
2675
    ðàçà ïðè îáðàùåíèè ê ìíîãîýêçåìïëÿðíûì ñòðóêòóðàì. Ïîÿñíèì ýòî íà ïðèìåðå:
2674
    ðàçà ïðè îáðàùåíèè ê ìíîãîýêçåìïëÿðíûì ñòðóêòóðàì. Ïîÿñíèì ýòî íà ïðèìåðå:
2676
 
2675
 
2677
    struct ABC
2676
    struct ABC
2678
    {
2677
    {
2679
      int a;
2678
      int a;
2680
      int b;
2679
      int b;
2681
      int c;
2680
      int c;
2682
    };
2681
    };
2683
 
2682
 
2684
    struct
2683
    struct
2685
    {
2684
    {
2686
      struct ABC first[4];  //4 ýêçåìïëÿðà ñòðóêòóðû ABC
2685
      struct ABC first[4];  //4 ýêçåìïëÿðà ñòðóêòóðû ABC
2687
      int d;
2686
      int d;
2688
    }second[4];
2687
    }second[4];
2689
 
2688
 
2690
    int i,j;
2689
    int i,j;
2691
 
2690
 
2692
    void proc()
2691
    void proc()
2693
    {
2692
    {
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.
2700
 
2699
 
2701
 
2700
 
2702
 
2701
 
2703
    8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
2702
    8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
2704
 
2703
 
2705
 
2704
 
2706
        Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè ÿâëÿåòñÿ àëüòåðíàòèâîé
2705
        Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè ÿâëÿåòñÿ àëüòåðíàòèâîé
2707
    óêàçàòåëÿì íà ñòðóêòóðû.
2706
    óêàçàòåëÿì íà ñòðóêòóðû.
2708
 
2707
 
2709
        Àëüòåðíàòèâíûé ñïîñîá èñïîëüçîâàíèÿ óêàçàòåëåé íà ñòðóêòóðû ïîçâîëèò
2708
        Àëüòåðíàòèâíûé ñïîñîá èñïîëüçîâàíèÿ óêàçàòåëåé íà ñòðóêòóðû ïîçâîëèò
2710
    Âàì ñàìèì âûáðàòü ðåãèñòð, â êîòîðîì áóäåò õðàíèòñÿ àäðåñ ñòðóêòóðû è
2709
    Âàì ñàìèì âûáðàòü ðåãèñòð, â êîòîðîì áóäåò õðàíèòñÿ àäðåñ ñòðóêòóðû è
2711
    ñàìèì ñëåäèòü çà åãî ñîõðàííîñòüþ è ïî ìåðå íåîáõîäèìîñòè âîññòàíàâëèâàòü
2710
    ñàìèì ñëåäèòü çà åãî ñîõðàííîñòüþ è ïî ìåðå íåîáõîäèìîñòè âîññòàíàâëèâàòü
2712
    åãî ñîäåðæèìîå.
2711
    åãî ñîäåðæèìîå.
2713
 
2712
 
2714
        Îáúÿñíèòü, êàê èñïîëüçîâàòü îòîáðàæåíèå òåãà ñòðóêòóðû íà ïàìÿòü,
2713
        Îáúÿñíèòü, êàê èñïîëüçîâàòü îòîáðàæåíèå òåãà ñòðóêòóðû íà ïàìÿòü,
2715
    íàâåðíîå, áóäåò ïðîùå íà ïðèìåðå:
2714
    íàâåðíîå, áóäåò ïðîùå íà ïðèìåðå:
2716
 
2715
 
2717
    struct AA       //îáúÿâëåíèå òåãà ñòðóêòóðû
2716
    struct AA       //îáúÿâëåíèå òåãà ñòðóêòóðû
2718
    {
2717
    {
2719
      word a[3];    // ïåðâûé ýëåìåíò ñòðóêòóðû
2718
      word a[3];    // ïåðâûé ýëåìåíò ñòðóêòóðû
2720
      char b;       // âòîðîé ýëåìåíò ñòðóêòóðû
2719
      char b;       // âòîðîé ýëåìåíò ñòðóêòóðû
2721
      long c;       // òðåòèé ýëåìåíò ñòðóêòóðû
2720
      long c;       // òðåòèé ýëåìåíò ñòðóêòóðû
2722
    };
2721
    };
2723
 
2722
 
2724
    byte buf[256];  //áëîê ïàìÿòè, íà êîòîðûé áóäåò îòîáðàæåí òåã ñòðóêòóðû
2723
    byte buf[256];  //áëîê ïàìÿòè, íà êîòîðûé áóäåò îòîáðàæåí òåã ñòðóêòóðû
2725
 
2724
 
2726
    void proc1()
2725
    void proc1()
2727
    {
2726
    {
2728
     ...
2727
     ...
2729
     proc2 ( #buf );  // âûçîâ ïðîöåäóðû ñ ïåðåäà÷åé åé â êà÷åñòâå ïàðàìåòðà
2728
     proc2 ( #buf );  // âûçîâ ïðîöåäóðû ñ ïåðåäà÷åé åé â êà÷åñòâå ïàðàìåòðà
2730
                      // àäðåñà áëîêà ïàìÿòè
2729
                      // àäðåñà áëîêà ïàìÿòè
2731
     ...
2730
     ...
2732
    }
2731
    }
2733
 
2732
 
2734
    long proc2 (unsigned int pointer_to_mem)
2733
    long proc2 (unsigned int pointer_to_mem)
2735
    {
2734
    {
2736
    int i;
2735
    int i;
2737
      BX=pointer_to_mem;  // â BX çàãðóçèì àäðåñ áëîêà ïàìÿòè
2736
      BX=pointer_to_mem;  // â BX çàãðóçèì àäðåñ áëîêà ïàìÿòè
2738
      FOR(i=0; i<3; i++){ // â ìàññèâ ýëåìåíòà a çàïèñàòü -1
2737
      FOR(i=0; i<3; i++){ // â ìàññèâ ýëåìåíòà a çàïèñàòü -1
2739
        BX.AA.a[i]=-1;
2738
        BX.AA.a[i]=-1;
2740
      }
2739
      }
2741
      BX.AA.b=0;
2740
      BX.AA.b=0;
2742
      ES:BX.AA.c=EAX;
2741
      ES:BX.AA.c=EAX;
2743
      return BX.AA.c;  // âåðíóòü ñîäåðæèìîå ýëåìåíòà c
2742
      return BX.AA.c;  // âåðíóòü ñîäåðæèìîå ýëåìåíòà c
2744
    }
2743
    }
2745
 
2744
 
2746
        Â 16-áèòíîì ðåæèìå äëÿ õðàíåíèÿ àäðåñà ñòðóêòóðû ìîæíî èñïîëüçîâàòü
2745
        Â 16-áèòíîì ðåæèìå äëÿ õðàíåíèÿ àäðåñà ñòðóêòóðû ìîæíî èñïîëüçîâàòü
2747
    ðåãèñòðû: BX,DI,SI,BP. Íî ëó÷øå äëÿ ýòîãî èñïîëüçîâàòü ðåãèñòð BX.
2746
    ðåãèñòðû: BX,DI,SI,BP. Íî ëó÷øå äëÿ ýòîãî èñïîëüçîâàòü ðåãèñòð BX.
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.
2754
 
2753
 
2755
 
2754
 
2756
 
2755
 
2757
    8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.
2756
    8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.
2758
 
2757
 
2759
 
2758
 
2760
        Áèòîâûå ïîëÿ ñòðóêòóð èñïîëüçóþòñÿ äëÿ ýêîíîìèè ïàìÿòè, ïîñêîëüêó
2759
        Áèòîâûå ïîëÿ ñòðóêòóð èñïîëüçóþòñÿ äëÿ ýêîíîìèè ïàìÿòè, ïîñêîëüêó
2761
    ïîçâîëÿþò ïëîòíî óïàêîâàòü çíà÷åíèÿ, è äëÿ îðãàíèçàöèè óäîáíîãî äîñòóïà ê
2760
    ïîçâîëÿþò ïëîòíî óïàêîâàòü çíà÷åíèÿ, è äëÿ îðãàíèçàöèè óäîáíîãî äîñòóïà ê
2762
    ðåãèñòðàì âíåøíèõ óñòðîéñòâ, â êîòîðûõ ðàçëè÷íûå áèòû ìîãóò èìåòü
2761
    ðåãèñòðàì âíåøíèõ óñòðîéñòâ, â êîòîðûõ ðàçëè÷íûå áèòû ìîãóò èìåòü
2763
    ñàìîñòîÿòåëüíîå ôóíêöèîíàëüíîå íàçíà÷åíèå.
2762
    ñàìîñòîÿòåëüíîå ôóíêöèîíàëüíîå íàçíà÷åíèå.
2764
 
2763
 
2765
        Îáúÿâëåíèå áèòîâîãî ïîëÿ èìååò ñëåäóþùèé ñèíòàêñèñ:
2764
        Îáúÿâëåíèå áèòîâîãî ïîëÿ èìååò ñëåäóþùèé ñèíòàêñèñ:
2766
 
2765
 
2767
    <òèï> [<èäåíòèôèêàòîð>]:<êîíñòàíòà>;
2766
    <òèï> [<èäåíòèôèêàòîð>]:<êîíñòàíòà>;
2768
 
2767
 
2769
    èëè íà ïðèìåðå:
2768
    èëè íà ïðèìåðå:
2770
 
2769
 
2771
    int var:5;  //îáúÿâëåíèå áèòîâîãî ïîëÿ ðàçìåðîì 5 áèò ñ èìåíåì var
2770
    int var:5;  //îáúÿâëåíèå áèòîâîãî ïîëÿ ðàçìåðîì 5 áèò ñ èìåíåì var
2772
 
2771
 
2773
        Áèòîâîå ïîëå ñîñòîèò èç íåêîòîðîãî ÷èñëà áèòîâ, êîòîðîå çàäàåòñÿ
2772
        Áèòîâîå ïîëå ñîñòîèò èç íåêîòîðîãî ÷èñëà áèòîâ, êîòîðîå çàäàåòñÿ
2774
    ÷èñëîâûì âûðàæåíèåì êîíñòàíòà. Åãî çíà÷åíèå äîëæíî áûòü öåëûì
2773
    ÷èñëîâûì âûðàæåíèåì êîíñòàíòà. Åãî çíà÷åíèå äîëæíî áûòü öåëûì
2775
    ïîëîæèòåëüíûì ÷èñëîì è åãî çíà÷åíèå íå äîëæíî ïðåâûøàòü ÷èñëà ðàçðÿäîâ,
2774
    ïîëîæèòåëüíûì ÷èñëîì è åãî çíà÷åíèå íå äîëæíî ïðåâûøàòü ÷èñëà ðàçðÿäîâ,
2776
    ñîîòâåòñòâóþùèå òèïó îïðåäåëÿåìîãî áèòîâîãî ïîëÿ. Â C-- áèòîâûå ïîëÿ
2775
    ñîîòâåòñòâóþùèå òèïó îïðåäåëÿåìîãî áèòîâîãî ïîëÿ. Â C-- áèòîâûå ïîëÿ
2777
    ìîãóò ñîäåðæàòü òîëüêî áåç çíàêîâûå çíà÷åíèÿ. Íåëüçÿ èñïîëüçîâàòü ìàññèâû
2776
    ìîãóò ñîäåðæàòü òîëüêî áåç çíàêîâûå çíà÷åíèÿ. Íåëüçÿ èñïîëüçîâàòü ìàññèâû
2778
    áèòîâûõ ïîëåé, óêàçàòåëè íà áèòîâûå ïîëÿ.
2777
    áèòîâûõ ïîëåé, óêàçàòåëè íà áèòîâûå ïîëÿ.
2779
 
2778
 
2780
        èäåíòèôèêàòîð èìåíóåò áèòîâîå ïîëå. Åãî íàëè÷èå íåîáÿçàòåëüíî.
2779
        èäåíòèôèêàòîð èìåíóåò áèòîâîå ïîëå. Åãî íàëè÷èå íåîáÿçàòåëüíî.
2781
    Íåèìåíîâàííîå áèòîâîå ïîëå îçíà÷àåò ïðîïóñê ñîîòâåòñòâóþùåãî ÷èñëà áèòîâ
2780
    Íåèìåíîâàííîå áèòîâîå ïîëå îçíà÷àåò ïðîïóñê ñîîòâåòñòâóþùåãî ÷èñëà áèòîâ
2782
    ïåðåä ðàçìåùåíèåì ñëåäóþùåãî ýëåìåíòà ñòðóêòóðû. Íåèìåíîâàííîå áèòîâîå
2781
    ïåðåä ðàçìåùåíèåì ñëåäóþùåãî ýëåìåíòà ñòðóêòóðû. Íåèìåíîâàííîå áèòîâîå
2783
    ïîëå, äëÿ êîòîðîãî óêàçàí íóëåâîé ðàçìåð, èìååò ñïåöèàëüíîå íàçíà÷åíèå:
2782
    ïîëå, äëÿ êîòîðîãî óêàçàí íóëåâîé ðàçìåð, èìååò ñïåöèàëüíîå íàçíà÷åíèå:
2784
    îíî ãàðàíòèðóåò, ÷òî ïàìÿòü äëÿ ñëåäóþùåãî áèòîâîãî ïîëÿ áóäåò íà÷èíàòüñÿ
2783
    îíî ãàðàíòèðóåò, ÷òî ïàìÿòü äëÿ ñëåäóþùåãî áèòîâîãî ïîëÿ áóäåò íà÷èíàòüñÿ
2785
    íà ãðàíèöå òîãî òèïà, êîòîðûé çàäàí äëÿ íåèìåíîâàííîãî áèòîâîãî ïîëÿ.
2784
    íà ãðàíèöå òîãî òèïà, êîòîðûé çàäàí äëÿ íåèìåíîâàííîãî áèòîâîãî ïîëÿ.
2786
    Ò.å.  áóäåò ïðîèçâåäåíî âûðàâíèâàíèå áèòîâîãî ïîëÿ íà 8/16/32 áèòà.
2785
    Ò.å.  áóäåò ïðîèçâåäåíî âûðàâíèâàíèå áèòîâîãî ïîëÿ íà 8/16/32 áèòà.
2787
 
2786
 
2788
        Â C-- âñå áèòîâûå ïîëÿ óïàêîâûâàþòñÿ îäíî çà äðóãèì íåçàâèñèìî îò
2787
        Â C-- âñå áèòîâûå ïîëÿ óïàêîâûâàþòñÿ îäíî çà äðóãèì íåçàâèñèìî îò
2789
    ãðàíèö òèïà èäåíòèôèêàòîðîâ. Åñëè ïîñëåäóþùåå ïîëå íå ÿâëÿåòñÿ áèòîâûì
2788
    ãðàíèö òèïà èäåíòèôèêàòîðîâ. Åñëè ïîñëåäóþùåå ïîëå íå ÿâëÿåòñÿ áèòîâûì
2790
    ïîëåì, òî îñòàâøèåñÿ äî ãðàíèöû áàéòà áèòû íå áóäóò èñïîëüçîâàíû.
2789
    ïîëåì, òî îñòàâøèåñÿ äî ãðàíèöû áàéòà áèòû íå áóäóò èñïîëüçîâàíû.
2791
    Ìàêñèìàëüíûé ðàçìåð áèòîâîãî ïîëÿ ðàâåí 32 áèòà äëÿ òèïà dword/long, 16
2790
    Ìàêñèìàëüíûé ðàçìåð áèòîâîãî ïîëÿ ðàâåí 32 áèòà äëÿ òèïà dword/long, 16
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.
2798
 
2797
 
2799
 
2798
 
2800
 
2799
 
2801
  8.2 Îáúåäèíåíèÿ.
2800
  8.2 Îáúåäèíåíèÿ.
2802
 
2801
 
2803
 
2802
 
2804
      Îáúåäèíåíèÿ ïîçâîëÿþò â ðàçíûå ìîìåíòû âðåìåíè õðàíèòü â îäíîì îáúåêòå
2803
      Îáúåäèíåíèÿ ïîçâîëÿþò â ðàçíûå ìîìåíòû âðåìåíè õðàíèòü â îäíîì îáúåêòå
2805
  çíà÷åíèÿ ðàçëè÷íîãî òèïà.
2804
  çíà÷åíèÿ ðàçëè÷íîãî òèïà.
2806
 
2805
 
2807
      Ïàìÿòü, êîòîðàÿ âûäåëÿåòñÿ ïîä îáúåäèíåíèå, îïðåäåëÿåòñÿ ðàçìåðîì
2806
      Ïàìÿòü, êîòîðàÿ âûäåëÿåòñÿ ïîä îáúåäèíåíèå, îïðåäåëÿåòñÿ ðàçìåðîì
2808
  íàèáîëåå äëèííîãî èç ýëåìåíòîâ îáúåäèíåíèÿ. Âñå ýëåìåíòû îáúåäèíåíèÿ
2807
  íàèáîëåå äëèííîãî èç ýëåìåíòîâ îáúåäèíåíèÿ. Âñå ýëåìåíòû îáúåäèíåíèÿ
2809
  ðàçìåùàþòñÿ â îäíîé è òîé æå îáëàñòè ïàìÿòè ñ îäíîãî è òîãî æå àäðåñà.
2808
  ðàçìåùàþòñÿ â îäíîé è òîé æå îáëàñòè ïàìÿòè ñ îäíîãî è òîãî æå àäðåñà.
2810
  Çíà÷åíèå òåêóùåãî ýëåìåíòà îáúåäèíåíèÿ òåðÿåòñÿ, êîãäà äðóãîìó ýëåìåíòó
2809
  Çíà÷åíèå òåêóùåãî ýëåìåíòà îáúåäèíåíèÿ òåðÿåòñÿ, êîãäà äðóãîìó ýëåìåíòó
2811
  îáúåäèíåíèÿ ïðèñâàèâàåòñÿ çíà÷åíèå.
2810
  îáúåäèíåíèÿ ïðèñâàèâàåòñÿ çíà÷åíèå.
2812
 
2811
 
2813
      Â C-- ðåàëèçîâàíû òàê íàçûâàåìûå àíîíèìíûå îáúåäèíåíèÿ. Ò.å.
2812
      Â C-- ðåàëèçîâàíû òàê íàçûâàåìûå àíîíèìíûå îáúåäèíåíèÿ. Ò.å.
2814
  îáúåäèíåíèÿì íå ïðèñâàèâàåòñÿ èìÿ, à îáðàùåíèå ê ýëåìåíòàì îáúåäèíåíèÿ
2813
  îáúåäèíåíèÿì íå ïðèñâàèâàåòñÿ èìÿ, à îáðàùåíèå ê ýëåìåíòàì îáúåäèíåíèÿ
2815
  ïðîèñõîäèò êàê ê îáû÷íîé ïåðåìåííîé. Ïðèìåð:
2814
  ïðîèñõîäèò êàê ê îáû÷íîé ïåðåìåííîé. Ïðèìåð:
2816
 
2815
 
2817
  union
2816
  union
2818
  {
2817
  {
2819
    dword regEAX;
2818
    dword regEAX;
2820
    word  regAX;
2819
    word  regAX;
2821
    byte  regAL;
2820
    byte  regAL;
2822
  };  // îáúÿâèëè, ÷òî 3 ïåðåìåííûå ðàñïîëîæåíû ïî îäíîìó è òîìó æå
2821
  };  // îáúÿâèëè, ÷òî 3 ïåðåìåííûå ðàñïîëîæåíû ïî îäíîìó è òîìó æå
2823
      // ôèçè÷åñêîìó àäðåñó
2822
      // ôèçè÷åñêîìó àäðåñó
2824
 
2823
 
2825
  void test()
2824
  void test()
2826
  {
2825
  {
2827
  	regEAX = 0x2C;
2826
        regEAX = 0x2C;
2828
  	BL = regAL;	//â ðåãèñòðå BL îêàæåòñÿ çíà÷åíèå 0x2C
2827
        BL = regAL;     //â ðåãèñòðå BL îêàæåòñÿ çíà÷åíèå 0x2C
2829
  }
2828
  }
2830
 
2829
 
2831
      Îáúåäèíÿòü ìîæíî ïåðåìåííûå ðàçëè÷íûõ òèïîâ, ìàññèâû, ñòðîêîâûå
2830
      Îáúåäèíÿòü ìîæíî ïåðåìåííûå ðàçëè÷íûõ òèïîâ, ìàññèâû, ñòðîêîâûå
2832
  ïåðåìåííûå è ñòðóêòóðû. Îáúåäèíåíèÿ ìîãóò áûòü ãëîáàëüíûìè è ëîêàëüíûìè, à
2831
  ïåðåìåííûå è ñòðóêòóðû. Îáúåäèíåíèÿ ìîãóò áûòü ãëîáàëüíûìè è ëîêàëüíûìè, à
2833
  òàêæå ðàñïîëàãàòüñÿ âíóòðè ñòðóêòóð (ïîêà â îáúåäèíåíèÿõ âíóòðè ñòðóêòóð
2832
  òàêæå ðàñïîëàãàòüñÿ âíóòðè ñòðóêòóð (ïîêà â îáúåäèíåíèÿõ âíóòðè ñòðóêòóð
2834
  íåëüçÿ èñïîëüçîâàòü ñòðóêòóðû). Ãëîáàëüíûå îáúåäèíåíèÿ ìîãóò áûòü
2833
  íåëüçÿ èñïîëüçîâàòü ñòðóêòóðû). Ãëîáàëüíûå îáúåäèíåíèÿ ìîãóò áûòü
2835
  èíèöèàëèçèðîâàííûìè è íåèíèöèàëèçèðîâàííûìè. ×òîáû ïîëó÷èòü
2834
  èíèöèàëèçèðîâàííûìè è íåèíèöèàëèçèðîâàííûìè. ×òîáû ïîëó÷èòü
2836
  èíèöèàëèçèðîâàííîå îáúåäèíåíèå äîñòàòî÷íî ïðîèíèöèàëèçèðîâàòü ëèøü ïåðâûé
2835
  èíèöèàëèçèðîâàííîå îáúåäèíåíèå äîñòàòî÷íî ïðîèíèöèàëèçèðîâàòü ëèøü ïåðâûé
2837
  ýëåìåíò îáúåäèíåíèÿ. Åñëè æå ïåðâûé ýëåìåíò îáúåäèíåíèÿ íå èíèöèàëèçèðîâàí,
2836
  ýëåìåíò îáúåäèíåíèÿ. Åñëè æå ïåðâûé ýëåìåíò îáúåäèíåíèÿ íå èíèöèàëèçèðîâàí,
2838
  à ñëåäóþùèå ýëåìåíòû èíèöèàëèçèðîâàíû, òî ýòî âûçîâåò ñîîáùåíèå êîìïèëÿòîðà
2837
  à ñëåäóþùèå ýëåìåíòû èíèöèàëèçèðîâàíû, òî ýòî âûçîâåò ñîîáùåíèå êîìïèëÿòîðà
2839
  îá îøèáêå.
2838
  îá îøèáêå.
2840
Return to contents.
2839
Return to contents.
2841
 
2840
 
2842
 
2841
 
2843
 
2842
 
2844
  8.3 Êîìàíäû 'FROM' è 'EXTRACT'.
2843
  8.3 Êîìàíäû 'FROM' è 'EXTRACT'.
2845
 
2844
 
2846
 
2845
 
2847
       C-- åñòü î÷åíü îðèãèíàëüíûå êîìàíäû, êîòîðûõ íåò â äðóãèõ ÿçûêàõ. Ýòî
2846
       C-- åñòü î÷åíü îðèãèíàëüíûå êîìàíäû, êîòîðûõ íåò â äðóãèõ ÿçûêàõ. Ýòî
2848
  FROM è EXTRACT.
2847
  FROM è EXTRACT.
2849
 
2848
 
2850
      Êîìàíäà FROM èìååò ñèíòàêñèñ:
2849
      Êîìàíäà FROM èìååò ñèíòàêñèñ:
2851
 
2850
 
2852
  <òèï_ïåðåìåííîé> <èìÿ_ïåðåìåííîé> = FROM <èìÿ_ôàéëà>;
2851
  <òèï_ïåðåìåííîé> <èìÿ_ïåðåìåííîé> = FROM <èìÿ_ôàéëà>;
2853
 
2852
 
2854
      Âñòðåòèâ ýòó êîìàíäó ïðè êîìïèëÿöèè, êîìïèëÿòîð çàãðóçèò â âûõîäíîé
2853
      Âñòðåòèâ ýòó êîìàíäó ïðè êîìïèëÿöèè, êîìïèëÿòîð çàãðóçèò â âûõîäíîé
2855
  ôàéë ñîäåðæèìîå ôàéëà èìÿ_ôàéëà, à èìÿ_ïåðåìåííîé áóäåò èäåíòèôèêàòîðîì
2854
  ôàéë ñîäåðæèìîå ôàéëà èìÿ_ôàéëà, à èìÿ_ïåðåìåííîé áóäåò èäåíòèôèêàòîðîì
2856
  íà÷àëà çàãðóæåííîãî êîäà. Âîò ïðèìåð èñïîëüçîâàíèÿ ýòîé êîìàíäû èç ôàéëà
2855
  íà÷àëà çàãðóæåííîãî êîäà. Âîò ïðèìåð èñïîëüçîâàíèÿ ýòîé êîìàíäû èç ôàéëà
2857
  tinydraw.c--:
2856
  tinydraw.c--:
2858
 
2857
 
2859
  byte palette[PALSIZE] = FROM "TINYDRAW.PAL";  // buffer for palette
2858
  byte palette[PALSIZE] = FROM "TINYDRAW.PAL";  // buffer for palette
2860
 
2859
 
2861
     Êîìàíäà EXTRACT èìååò ñèíòàêñèñ:
2860
     Êîìàíäà EXTRACT èìååò ñèíòàêñèñ:
2862
 
2861
 
2863
  <òèï_ïåðåìåííîé> <èìÿ_ïåðåìåííîé> = EXTRACT <èìÿ_ôàéëà>, <íà÷àëî>, <äëèíà>;
2862
  <òèï_ïåðåìåííîé> <èìÿ_ïåðåìåííîé> = EXTRACT <èìÿ_ôàéëà>, <íà÷àëî>, <äëèíà>;
2864
 
2863
 
2865
      Âñòðåòèâ ýòó êîìàíäó ïðè êîìïèëÿöèè, êîìïèëÿòîð çàãðóçèò â âûõîäíîé
2864
      Âñòðåòèâ ýòó êîìàíäó ïðè êîìïèëÿöèè, êîìïèëÿòîð çàãðóçèò â âûõîäíîé
2866
  ôàéë èç ôàéëà èìÿ_ôàéëà ÷èñëî áàéò ðàâíîå äëèíà ñî ñìåùåíèÿ íà÷àëî, à
2865
  ôàéë èç ôàéëà èìÿ_ôàéëà ÷èñëî áàéò ðàâíîå äëèíà ñî ñìåùåíèÿ íà÷àëî, à
2867
  èìÿ_ïåðåìåííîé áóäåò èäåíòèôèêàòîðîì íà÷àëà çàãðóæåííîãî êîäà. Âîò ïðèìåð
2866
  èìÿ_ïåðåìåííîé áóäåò èäåíòèôèêàòîðîì íà÷àëà çàãðóæåííîãî êîäà. Âîò ïðèìåð
2868
  èñïîëüçîâàíèÿ ýòîé êîìàíäû:
2867
  èñïîëüçîâàíèÿ ýòîé êîìàíäû:
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;
2872
Return to contents.
2871
Return to contents.
2873
 
2872
 
2874
 
2873
 
2875
 
2874
 
2876
9. Îïåðàòîðû.
2875
9. Îïåðàòîðû.
2877
 
2876
 
2878
  9.1 Óñëîâíûå èíñòðóêöèè.
2877
  9.1 Óñëîâíûå èíñòðóêöèè.
2879
 
2878
 
2880
 
2879
 
2881
      Óñëîâíûå èíñòðóêöèè, ïðè ïîìîùè êîòîðûõ îñóùåñòâëÿåòñÿ âåòâëåíèå, òàêèå
2880
      Óñëîâíûå èíñòðóêöèè, ïðè ïîìîùè êîòîðûõ îñóùåñòâëÿåòñÿ âåòâëåíèå, òàêèå
2882
  æå êàê â C.
2881
  æå êàê â C.
2883
 
2882
 
2884
      C-- èìååò äâå èíñòðóêöèè âåòâëåíèÿ. if è IF.
2883
      C-- èìååò äâå èíñòðóêöèè âåòâëåíèÿ. if è IF.
2885
 
2884
 
2886
      if äåëàåò áëèçêèé óñëîâíûé ïåðåõîä, à IF äåëàåò êîðîòêèé
2885
      if äåëàåò áëèçêèé óñëîâíûé ïåðåõîä, à IF äåëàåò êîðîòêèé
2887
  (8-ðàçðÿäíûé) óñëîâíûé ïåðåõîä. IF âûïîëíÿåòñÿ áûñòðåå è ìîæåò ýêîíîìèòü
2886
  (8-ðàçðÿäíûé) óñëîâíûé ïåðåõîä. IF âûïîëíÿåòñÿ áûñòðåå è ìîæåò ýêîíîìèòü
2888
  äî 3 áàéò â ðàçìåðå êîäà, íî ìîæåò îñóùåñòâëÿòü ïåðåõîäû òîëüêî â ïðåäåëàõ
2887
  äî 3 áàéò â ðàçìåðå êîäà, íî ìîæåò îñóùåñòâëÿòü ïåðåõîäû òîëüêî â ïðåäåëàõ
2889
  127 áàéòîâ êîäà.
2888
  127 áàéòîâ êîäà.
2890
 
2889
 
2891
      Óñëîâíûå èíñòðóêöèè, êàê è â C, ìîãóò ñîïðîâîæäàòüñÿ, êàê îäèíî÷íîé
2890
      Óñëîâíûå èíñòðóêöèè, êàê è â C, ìîãóò ñîïðîâîæäàòüñÿ, êàê îäèíî÷íîé
2892
  êîìàíäîé, òàê è áëîêîì èç íåñêîëüêèõ êîìàíä, çàêëþ÷åííûõ â ôèãóðíûå ñêîáêè
2891
  êîìàíäîé, òàê è áëîêîì èç íåñêîëüêèõ êîìàíä, çàêëþ÷åííûõ â ôèãóðíûå ñêîáêè
2893
  { è }. Óñëîâíûå èíñòðóêöèè èìåþò òå æå îãðàíè÷åíèÿ, ÷òî è óñëîâíûå
2892
  { è }. Óñëîâíûå èíñòðóêöèè èìåþò òå æå îãðàíè÷åíèÿ, ÷òî è óñëîâíûå
2894
  âûðàæåíèÿ.
2893
  âûðàæåíèÿ.
2895
 
2894
 
2896
      Åñëè çà èíñòðóêöèåé IF ñëåäóåò áîëüøå ÷åì 127 áàéòîâ êîäà, òðàíñëÿòîð
2895
      Åñëè çà èíñòðóêöèåé IF ñëåäóåò áîëüøå ÷åì 127 áàéòîâ êîäà, òðàíñëÿòîð
2897
  âûäàñò ñëåäóþùåå ñîîáùåíèå îá îøèáêå:
2896
  âûäàñò ñëåäóþùåå ñîîáùåíèå îá îøèáêå:
2898
 
2897
 
2899
          IF jump distance too far, use if.
2898
          IF jump distance too far, use if.
2900
 
2899
 
2901
  Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ IF íà if.
2900
  Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ IF íà if.
2902
 
2901
 
2903
      Êîìàíäû else è ELSE èñïîëüçóþòñÿ òî÷íî òàê æå, êàê â ÿçûêå C.
2902
      Êîìàíäû else è ELSE èñïîëüçóþòñÿ òî÷íî òàê æå, êàê â ÿçûêå C.
2904
  Îòëè÷èå èõ â òîì, ÷òî ELSE èìååò îãðàíè÷åíèå àäðåñà ïåðåõîäà 127 áàéò,
2903
  Îòëè÷èå èõ â òîì, ÷òî ELSE èìååò îãðàíè÷åíèå àäðåñà ïåðåõîäà 127 áàéò,
2905
  òàêîå æå êàê IF. else ãåíåðèðóåò êîä íà 1 áàéò äëèííåå, ÷åì ELSE.
2904
  òàêîå æå êàê IF. else ãåíåðèðóåò êîä íà 1 áàéò äëèííåå, ÷åì ELSE.
2906
 
2905
 
2907
      Êîìàíäû IF è else, à òàêæå if è ELSE ìîãóò ñâîáîäíî ñìåøèâàòüñÿ
2906
      Êîìàíäû IF è else, à òàêæå if è ELSE ìîãóò ñâîáîäíî ñìåøèâàòüñÿ
2908
  êàê â ñëåäóþùåì ïðèìåðå:
2907
  êàê â ñëåäóþùåì ïðèìåðå:
2909
 
2908
 
2910
          if( x == 2 )
2909
          if( x == 2 )
2911
              WRITESTR("Two");
2910
              WRITESTR("Two");
2912
          ELSE{ WRITESTR("not two.");
2911
          ELSE{ WRITESTR("not two.");
2913
                printmorestuff();
2912
                printmorestuff();
2914
              }
2913
              }
2915
 
2914
 
2916
      Åñëè çà èíñòðóêöèåé ELSE ñëåäóåò áîëüøå ÷åì 127 áàéòîâ êîäà,
2915
      Åñëè çà èíñòðóêöèåé ELSE ñëåäóåò áîëüøå ÷åì 127 áàéòîâ êîäà,
2917
  òðàíñëÿòîð âûäàñò ñëåäóþùåå ñîîáùåíèå îá îøèáêå:
2916
  òðàíñëÿòîð âûäàñò ñëåäóþùåå ñîîáùåíèå îá îøèáêå:
2918
 
2917
 
2919
          ELSE jump distance too far, use else.
2918
          ELSE jump distance too far, use else.
2920
 
2919
 
2921
      Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ ELSE íà
2920
      Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ ELSE íà
2922
  else.
2921
  else.
2923
Return to contents.
2922
Return to contents.
2924
 
2923
 
2925
 
2924
 
2926
 
2925
 
2927
  9.2 Öèêëû do{} while.
2926
  9.2 Öèêëû do{} while.
2928
 
2927
 
2929
 
2928
 
2930
      Â òàêîì öèêëå áëîê êîäà, ñîñòàâëÿþùèé òåëî öèêëà, áóäåò ïîâòîðÿòüñÿ,
2929
      Â òàêîì öèêëå áëîê êîäà, ñîñòàâëÿþùèé òåëî öèêëà, áóäåò ïîâòîðÿòüñÿ,
2931
  ïîêà óñëîâíîå âûðàæåíèå èìååò çíà÷åíèå èñòèííî.
2930
  ïîêà óñëîâíîå âûðàæåíèå èìååò çíà÷åíèå èñòèííî.
2932
 
2931
 
2933
      Èñòèííîñòü óñëîâíîãî âûðàæåíèÿ ïðîâåðÿåòñÿ ïîñëå âûïîëíåíèÿ òåëà  öèêëà,
2932
      Èñòèííîñòü óñëîâíîãî âûðàæåíèÿ ïðîâåðÿåòñÿ ïîñëå âûïîëíåíèÿ òåëà  öèêëà,
2934
  ïîýòîìó áëîê êîäà áóäåò âûïîëíåí, ïî êðàéíåé ìåðå, îäèí ðàç.
2933
  ïîýòîìó áëîê êîäà áóäåò âûïîëíåí, ïî êðàéíåé ìåðå, îäèí ðàç.
2935
 
2934
 
2936
   Ïðèìåð do {} while öèêëà, â êîòîðîì òåëî áóäåò èñïîëíåíî ïÿòü ðàç:
2935
   Ïðèìåð do {} while öèêëà, â êîòîðîì òåëî áóäåò èñïîëíåíî ïÿòü ðàç:
2937
 
2936
 
2938
           count = 0;
2937
           count = 0;
2939
           do {
2938
           do {
2940
              count++;
2939
              count++;
2941
              WRITEWORD(count);
2940
              WRITEWORD(count);
2942
              WRITELN();
2941
              WRITELN();
2943
              } while (count < 5);
2942
              } while (count < 5);
2944
 
2943
 
2945
  Óñëîâíîå âûðàæåíèå â do {} while èíñòðóêöèè äîëæíî ñîîòâåòñòâîâàòü òåì æå
2944
  Óñëîâíîå âûðàæåíèå â do {} while èíñòðóêöèè äîëæíî ñîîòâåòñòâîâàòü òåì æå
2946
  ïðàâèëàì, ÷òî è â èíñòðóêöèÿõ IF è if.
2945
  ïðàâèëàì, ÷òî è â èíñòðóêöèÿõ IF è if.
2947
Return to contents.
2946
Return to contents.
2948
 
2947
 
2949
 
2948
 
2950
 
2949
 
2951
  9.3 Öèêëû loop, LOOPNZ, loopnz.
2950
  9.3 Öèêëû loop, LOOPNZ, loopnz.
2952
 
2951
 
2953
 
2952
 
2954
      Öèêëû loop ïîâòîðÿþò áëîê êîäà, ïîêà îïðåäåëåííàÿ ïåðåìåííàÿ èëè
2953
      Öèêëû loop ïîâòîðÿþò áëîê êîäà, ïîêà îïðåäåëåííàÿ ïåðåìåííàÿ èëè
2955
  ðåãèñòð, âûïîëíÿþùèå ðîëü ñ÷åò÷èêà öèêëà, ñîäåðæàò çíà÷åíèå, îòëè÷íîå îò
2954
  ðåãèñòð, âûïîëíÿþùèå ðîëü ñ÷åò÷èêà öèêëà, ñîäåðæàò çíà÷åíèå, îòëè÷íîå îò
2956
  íóëÿ. Â êîíöå âûïîëíåíèÿ áëîêà êîäà, ñîñòàâëÿþùåãî òåëî öèêëà, óêàçàííàÿ
2955
  íóëÿ. Â êîíöå âûïîëíåíèÿ áëîêà êîäà, ñîñòàâëÿþùåãî òåëî öèêëà, óêàçàííàÿ
2957
  ïåðåìåííàÿ èëè ðåãèñòð - óìåíüøàåòñÿ íà 1, à çàòåì ïðîâåðÿåòñÿ íà ðàâåíñòâî
2956
  ïåðåìåííàÿ èëè ðåãèñòð - óìåíüøàåòñÿ íà 1, à çàòåì ïðîâåðÿåòñÿ íà ðàâåíñòâî
2958
  íóëþ. Åñëè ïåðåìåííàÿ (èëè ðåãèñòð) íå ðàâíà íóëþ, òåëî öèêëà áóäåò
2957
  íóëþ. Åñëè ïåðåìåííàÿ (èëè ðåãèñòð) íå ðàâíà íóëþ, òåëî öèêëà áóäåò
2959
  âûïîëíåíî ñíîâà, è ïðîöåññ ïîâòîðèòñÿ.
2958
  âûïîëíåíî ñíîâà, è ïðîöåññ ïîâòîðèòñÿ.
2960
 
2959
 
2961
      Ïðèìåð èñïîëüçîâàíèÿ öèêëà loop â êîòîðîì â êà÷åñòâå ñ÷åò÷èêà öèêëà
2960
      Ïðèìåð èñïîëüçîâàíèÿ öèêëà loop â êîòîðîì â êà÷åñòâå ñ÷åò÷èêà öèêëà
2962
  èñïîëüçîâàíà ïåðåìåííàÿ:
2961
  èñïîëüçîâàíà ïåðåìåííàÿ:
2963
 
2962
 
2964
          count = 5;
2963
          count = 5;
2965
          loop( count )
2964
          loop( count )
2966
              {WRITEWORD(count);
2965
              {WRITEWORD(count);
2967
              WRITELN();
2966
              WRITELN();
2968
              }
2967
              }
2969
 
2968
 
2970
      Íàèáîëüøèé ýôôåêò äàåò èñïîëüçîâàíèå ðåãèñòðà CX äëÿ öèêëîâ ñ íåáîëüøèì
2969
      Íàèáîëüøèé ýôôåêò äàåò èñïîëüçîâàíèå ðåãèñòðà CX äëÿ öèêëîâ ñ íåáîëüøèì
2971
  òåëîì, ïîñêîëüêó â ýòîì ñëó÷àå êîìïèëÿòîðîì ãåíåðèðóåòñÿ öèêë ñ ïðèìåíåíèåì
2970
  òåëîì, ïîñêîëüêó â ýòîì ñëó÷àå êîìïèëÿòîðîì ãåíåðèðóåòñÿ öèêë ñ ïðèìåíåíèåì
2972
  ìàøèííîé êîìàíäû LOOP.
2971
  ìàøèííîé êîìàíäû LOOP.
2973
 
2972
 
2974
      Åñëè ïåðåä ñòàðòîì ñ÷åò÷èê öèêëîâ ñîäåðæèò íóëåâîå çíà÷åíèå, êîìàíäû
2973
      Åñëè ïåðåä ñòàðòîì ñ÷åò÷èê öèêëîâ ñîäåðæèò íóëåâîå çíà÷åíèå, êîìàíäû
2975
  òåëà öèêëà áóäóò âûïîëíåíû ìàêñèìàëüíîå ÷èñëî ðàç äëÿ äèàïàçîíà ïåðåìåííîé
2974
  òåëà öèêëà áóäóò âûïîëíåíû ìàêñèìàëüíîå ÷èñëî ðàç äëÿ äèàïàçîíà ïåðåìåííîé
2976
  (256 ðàç äëÿ 8-áèòíîãî ñ÷åò÷èêà (ïåðåìåííîé òèïà byte èëè char), 65536 äëÿ
2975
  (256 ðàç äëÿ 8-áèòíîãî ñ÷åò÷èêà (ïåðåìåííîé òèïà byte èëè char), 65536 äëÿ
2977
  16-áèòíîãî ñ÷åò÷èêà (ïåðåìåííîé òèïà word èëè int), è 4294967296 äëÿ
2976
  16-áèòíîãî ñ÷åò÷èêà (ïåðåìåííîé òèïà word èëè int), è 4294967296 äëÿ
2978
  32-áèòíîãî ñ÷åò÷èêà (ïåðåìåííîé òèïà dword èëè long).
2977
  32-áèòíîãî ñ÷åò÷èêà (ïåðåìåííîé òèïà dword èëè long).
2979
 
2978
 
2980
   Â ñëåäóþùåì ïðèìåðå öèêë áóäåò âûïîëíåí 256 ðàç:
2979
   Â ñëåäóþùåì ïðèìåðå öèêë áóäåò âûïîëíåí 256 ðàç:
2981
 
2980
 
2982
           BH = 0;
2981
           BH = 0;
2983
           loop (BH)
2982
           loop (BH)
2984
              {
2983
              {
2985
              }
2984
              }
2986
 
2985
 
2987
      Åñëè â êîìàíäå íå óêàçàíî íèêàêîãî ñ÷åò÷èêà öèêëà, öèêë áóäåò
2986
      Åñëè â êîìàíäå íå óêàçàíî íèêàêîãî ñ÷åò÷èêà öèêëà, öèêë áóäåò
2988
  ïðîäîëæàòüñÿ áåñêîíå÷íî.
2987
  ïðîäîëæàòüñÿ áåñêîíå÷íî.
2989
 
2988
 
2990
      Ñëåäóþùèé ïðèìåð áóäåò íåïðåðûâíî âûâîäèòü ñèìâîë çâåçäî÷êè (*) íà
2989
      Ñëåäóþùèé ïðèìåð áóäåò íåïðåðûâíî âûâîäèòü ñèìâîë çâåçäî÷êè (*) íà
2991
  ýêðàí:
2990
  ýêðàí:
2992
 
2991
 
2993
          loop()
2992
          loop()
2994
              WRITE('*');
2993
              WRITE('*');
2995
 
2994
 
2996
      Ïðîãðàììèñò, åñëè õî÷åò, ìîæåò èñïîëüçîâàòü èëè èçìåíÿòü çíà÷åíèå
2995
      Ïðîãðàììèñò, åñëè õî÷åò, ìîæåò èñïîëüçîâàòü èëè èçìåíÿòü çíà÷åíèå
2997
  ïåðåìåííîé ñ÷åò÷èêà öèêëà âíóòðè öèêëà.
2996
  ïåðåìåííîé ñ÷åò÷èêà öèêëà âíóòðè öèêëà.
2998
 
2997
 
2999
      Íàïðèìåð, ñëåäóþùèé öèêë âûïîëíèòñÿ òîëüêî 3 ðàçà:
2998
      Íàïðèìåð, ñëåäóþùèé öèêë âûïîëíèòñÿ òîëüêî 3 ðàçà:
3000
 
2999
 
3001
           CX = 1000;
3000
           CX = 1000;
3002
           loop( CX )
3001
           loop( CX )
3003
              {
3002
              {
3004
              IF( CX > 3 )
3003
              IF( CX > 3 )
3005
                  CX = 3;
3004
                  CX = 3;
3006
              }
3005
              }
3007
 
3006
 
3008
      Öèêë ìîæíî òàêæå ïðåðâàòü îïåðàòîðîì ðàçðûâà BREAK èëè break. Âîò
3007
      Öèêë ìîæíî òàêæå ïðåðâàòü îïåðàòîðîì ðàçðûâà BREAK èëè break. Âîò
3009
  òîò æå ïðèìåð ñ èñïîëüçîâàíèåì BREAK:
3008
  òîò æå ïðèìåð ñ èñïîëüçîâàíèåì BREAK:
3010
 
3009
 
3011
           CX = 1000;
3010
           CX = 1000;
3012
           loop( CX )
3011
           loop( CX )
3013
              {
3012
              {
3014
              IF( CX > 3 )
3013
              IF( CX > 3 )
3015
                  BREAK;
3014
                  BREAK;
3016
              }
3015
              }
3017
 
3016
 
3018
      Öèêëû LOOPNZ/loopnz îòëè÷àþòñÿ îò öèêëà loop, òåì, ÷òî ïåðåä âõîäîì
3017
      Öèêëû LOOPNZ/loopnz îòëè÷àþòñÿ îò öèêëà loop, òåì, ÷òî ïåðåä âõîäîì
3019
  â öèêë ïðîâåðÿåòñÿ ðàâåíñòâî íóëþ àðãóìåíòà öèêëà. Åñëè àðãóìåíò ðàâåí
3018
  â öèêë ïðîâåðÿåòñÿ ðàâåíñòâî íóëþ àðãóìåíòà öèêëà. Åñëè àðãóìåíò ðàâåí
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.
3026
 
3025
 
3027
 
3026
 
3028
 
3027
 
3029
  9.4 Öèêë while, WHILE.
3028
  9.4 Öèêë while, WHILE.
3030
 
3029
 
3031
 
3030
 
3032
       Ñèíòàêñèñ:
3031
       Ñèíòàêñèñ:
3033
    while(<âûðàæåíèå>)
3032
    while(<âûðàæåíèå>)
3034
         <îïåðàòîð>
3033
         <îïåðàòîð>
3035
 
3034
 
3036
      Öèêë âûïîëíÿåòñÿ äî òåõ ïîð, ïîêà çíà÷åíèå âûðàæåíèÿ íå ñòàíåò
3035
      Öèêë âûïîëíÿåòñÿ äî òåõ ïîð, ïîêà çíà÷åíèå âûðàæåíèÿ íå ñòàíåò
3037
  ëîæíûì. Âíà÷àëå âû÷èñëÿåòñÿ âûðàæåíèå. Åñëè âûðàæåíèå èçíà÷àëüíî ëîæíî,
3036
  ëîæíûì. Âíà÷àëå âû÷èñëÿåòñÿ âûðàæåíèå. Åñëè âûðàæåíèå èçíà÷àëüíî ëîæíî,
3038
  òî òåëî îïåðàòîðà while âîîáùå íå âûïîëíÿåòñÿ è óïðàâëåíèå ñðàçó
3037
  òî òåëî îïåðàòîðà while âîîáùå íå âûïîëíÿåòñÿ è óïðàâëåíèå ñðàçó
3039
  ïåðåäàåòñÿ íà ñëåäóþùèé îïåðàòîð ïðîãðàììû.
3038
  ïåðåäàåòñÿ íà ñëåäóþùèé îïåðàòîð ïðîãðàììû.
3040
 
3039
 
3041
      Öèêë WHILE àíàëîãè÷åí öèêëó while, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
3040
      Öèêë WHILE àíàëîãè÷åí öèêëó while, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
3042
  3 áàéòà êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà â öèêëå WHILE äîëæåí áûòü
3041
  3 áàéòà êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà â öèêëå WHILE äîëæåí áûòü
3043
  ìåíüøå 127 áàéò.
3042
  ìåíüøå 127 áàéò.
3044
 
3043
 
3045
    Ïðèìåðû:
3044
    Ïðèìåðû:
3046
  	while ( i < 20 ){
3045
        while ( i < 20 ){
3047
  		WRITEWORD(i);
3046
                WRITEWORD(i);
3048
  		i++;
3047
                i++;
3049
  	}
3048
        }
3050
 
3049
 
3051
  	WHILE (i < 20 ) @WRITEWORD(i);	//öèêë ëèáî áóäåò áåñêîíå÷íûì ëèáî íå
3050
        WHILE (i < 20 ) @WRITEWORD(i);  //öèêë ëèáî áóäåò áåñêîíå÷íûì ëèáî íå
3052
                                          //âûïîëíèòñÿ íè ðàçó
3051
                                          //âûïîëíèòñÿ íè ðàçó
3053
Return to contents.
3052
Return to contents.
3054
 
3053
 
3055
 
3054
 
3056
 
3055
 
3057
  9.5 Öèêë for, FOR.
3056
  9.5 Öèêë for, FOR.
3058
 
3057
 
3059
 
3058
 
3060
       Ñèíòàêñèñ:
3059
       Ñèíòàêñèñ:
3061
    for ([<íà÷àëüíîå âûðàæåíèå>]; [<óñëîâèå>]; [<ïðèðàùåíèå>])
3060
    for ([<íà÷àëüíîå âûðàæåíèå>]; [<óñëîâèå>]; [<ïðèðàùåíèå>])
3062
      <îïåðàòîð>
3061
      <îïåðàòîð>
3063
 
3062
 
3064
      Öèêë for âûïîëíÿåòñÿ äî òåõ ïîð, ïîêà çíà÷åíèå óñëîâèÿ íå ñòàíåò
3063
      Öèêë for âûïîëíÿåòñÿ äî òåõ ïîð, ïîêà çíà÷åíèå óñëîâèÿ íå ñòàíåò
3065
  ëîæíûì. Åñëè óñëîâèå èçíà÷àëüíî ëîæíî, òî òåëî îïåðàòîðà for âîîáùå íå
3064
  ëîæíûì. Åñëè óñëîâèå èçíà÷àëüíî ëîæíî, òî òåëî îïåðàòîðà for âîîáùå íå
3066
  âûïîëíÿåòñÿ è óïðàâëåíèå ñðàçó ïåðåäàåòñÿ íà ñëåäóþùèé îïåðàòîð ïðîãðàììû.
3065
  âûïîëíÿåòñÿ è óïðàâëåíèå ñðàçó ïåðåäàåòñÿ íà ñëåäóþùèé îïåðàòîð ïðîãðàììû.
3067
  Íà÷àëüíîå âûðàæåíèå è ïðèðàùåíèå îáû÷íî èñïîëüçóþòñÿ äëÿ èíèöèàëèçàöèè
3066
  Íà÷àëüíîå âûðàæåíèå è ïðèðàùåíèå îáû÷íî èñïîëüçóþòñÿ äëÿ èíèöèàëèçàöèè
3068
  è ìîäèôèêàöèè ïàðàìåòðîâ öèêëà.
3067
  è ìîäèôèêàöèè ïàðàìåòðîâ öèêëà.
3069
 
3068
 
3070
      Ïåðâûì øàãîì ïðè âûïîëíåíèè for ÿâëÿåòñÿ âû÷èñëåíèå íà÷àëüíîãî
3069
      Ïåðâûì øàãîì ïðè âûïîëíåíèè for ÿâëÿåòñÿ âû÷èñëåíèå íà÷àëüíîãî
3071
  âûðàæåíèÿ, åñëè îíî èìååòñÿ. Çàòåì âû÷èñëÿåòñÿ óñëîâèå è ïðîèçâîäèòñÿ
3070
  âûðàæåíèÿ, åñëè îíî èìååòñÿ. Çàòåì âû÷èñëÿåòñÿ óñëîâèå è ïðîèçâîäèòñÿ
3072
  åãî îöåíêà ñëåäóþùèì îáðàçîì:
3071
  åãî îöåíêà ñëåäóþùèì îáðàçîì:
3073
 
3072
 
3074
      1) Åñëè óñëîâèå èñòèííî, òî âûïîëíÿåòñÿ òåëî îïåðàòîðà. Çàòåì
3073
      1) Åñëè óñëîâèå èñòèííî, òî âûïîëíÿåòñÿ òåëî îïåðàòîðà. Çàòåì
3075
  âû÷èñëÿåòñÿ ïðèðàùåíèå (åñëè îíî åñòü), è ïðîöåññ ïîâòîðÿåòñÿ.
3074
  âû÷èñëÿåòñÿ ïðèðàùåíèå (åñëè îíî åñòü), è ïðîöåññ ïîâòîðÿåòñÿ.
3076
 
3075
 
3077
      2) Åñëè óñëîâèå îïóùåíî, òî åãî çíà÷åíèå ïðèíèìàåòñÿ çà èñòèíó. Â
3076
      2) Åñëè óñëîâèå îïóùåíî, òî åãî çíà÷åíèå ïðèíèìàåòñÿ çà èñòèíó. Â
3078
  ýòîì ñëó÷àå öèêë for ïðåäñòàâëÿåò áåñêîíå÷íûé öèêë, êîòîðûé ìîæåò
3077
  ýòîì ñëó÷àå öèêë for ïðåäñòàâëÿåò áåñêîíå÷íûé öèêë, êîòîðûé ìîæåò
3079
  çàâåðøèòüñÿ òîëüêî ïðè âûïîëíåíèè â åãî òåëå îïåðàòîðîâ break, goto,
3078
  çàâåðøèòüñÿ òîëüêî ïðè âûïîëíåíèè â åãî òåëå îïåðàòîðîâ break, goto,
3080
  return.
3079
  return.
3081
 
3080
 
3082
      3) Åñëè óñëîâèå ëîæíî, òî âûïîëíåíèå öèêëà for çàêàí÷èâàåòñÿ è
3081
      3) Åñëè óñëîâèå ëîæíî, òî âûïîëíåíèå öèêëà for çàêàí÷èâàåòñÿ è
3083
  óïðàâëåíèå ïåðåäàåòñÿ ñëåäóþùåìó îïåðàòîðó.
3082
  óïðàâëåíèå ïåðåäàåòñÿ ñëåäóþùåìó îïåðàòîðó.
3084
 
3083
 
3085
      Öèêë FOR àíàëîãè÷åí öèêëó for, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà 3
3084
      Öèêë FOR àíàëîãè÷åí öèêëó for, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà 3
3086
  áàéòà êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà â öèêëå FOR äîëæåí áûòü ìåíüøå
3085
  áàéòà êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà â öèêëå FOR äîëæåí áûòü ìåíüøå
3087
  127 áàéò.
3086
  127 áàéò.
3088
 
3087
 
3089
    Ïðèìåðû:
3088
    Ïðèìåðû:
3090
  	for(i=0;i<5;i++){
3089
        for(i=0;i<5;i++){
3091
  		WRITESTR("ÑÒÐÎÊÀ ");
3090
                WRITESTR("ÑÒÐÎÊÀ ");
3092
  		WRITEWORD(i);
3091
                WRITEWORD(i);
3093
  		WRITELN();
3092
                WRITELN();
3094
  	}
3093
        }
3095
 
3094
 
3096
      ×èñëî íà÷àëüíûõ âûðàæåíèé è ÷èñëî ïðèðàùåíèé íå îãðàíè÷åíî. Êàæäûé
3095
      ×èñëî íà÷àëüíûõ âûðàæåíèé è ÷èñëî ïðèðàùåíèé íå îãðàíè÷åíî. Êàæäûé
3097
  îïåðàòîð â íà÷àëüíûõ âûðàæåíèÿõ è ïðèðàùåíèÿõ äîëæåí ðàçäåëÿòüñÿ
3096
  îïåðàòîð â íà÷àëüíûõ âûðàæåíèÿõ è ïðèðàùåíèÿõ äîëæåí ðàçäåëÿòüñÿ
3098
  çàïÿòîé. Ïðèìåð:
3097
  çàïÿòîé. Ïðèìåð:
3099
 
3098
 
3100
        for ( a=1, b=2 ; a<5 ; a++, b+=a ) {...
3099
        for ( a=1, b=2 ; a<5 ; a++, b+=a ) {...
3101
 
3100
 
3102
      Òàêæå åñòü âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ óñëîâèé. Îáúåäèíÿòü
3101
      Òàêæå åñòü âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ óñëîâèé. Îáúåäèíÿòü
3103
  ìîæíî äî 32 óñëîâèé. Êàæäîå îáúåäèíÿåìîå óñëîâèå äîëæíî áûòü çàêëþ÷åíî â
3102
  ìîæíî äî 32 óñëîâèé. Êàæäîå îáúåäèíÿåìîå óñëîâèå äîëæíî áûòü çàêëþ÷åíî â
3104
  ñêîáêè. Ïðèìåð:
3103
  ñêîáêè. Ïðèìåð:
3105
 
3104
 
3106
        for ( a=0 ; (a>=0) && (a<10) ; a++ ){...
3105
        for ( a=0 ; (a>=0) && (a<10) ; a++ ){...
3107
Return to contents.
3106
Return to contents.
3108
 
3107
 
3109
 
3108
 
3110
 
3109
 
3111
  9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.
3110
  9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.
3112
 
3111
 
3113
 
3112
 
3114
      Ñèíòàêñèñ:
3113
      Ñèíòàêñèñ:
3115
    switch(<âûðàæåíèå>){
3114
    switch(<âûðàæåíèå>){
3116
      case <êîíñòàíòà>:
3115
      case <êîíñòàíòà>:
3117
        <îïåðàòîð>
3116
        <îïåðàòîð>
3118
  	...
3117
        ...
3119
      case <êîíñòàíòà>:
3118
      case <êîíñòàíòà>:
3120
        <îïåðàòîð>
3119
        <îïåðàòîð>
3121
  	...
3120
        ...
3122
      ...
3121
      ...
3123
      default:
3122
      default:
3124
        <îïåðàòîð>
3123
        <îïåðàòîð>
3125
    }
3124
    }
3126
      Îïåðàòîð ïåðåêëþ÷àòåëü switch ïðåäíàçíà÷åí äëÿ âûáîðà îäíîãî èç
3125
      Îïåðàòîð ïåðåêëþ÷àòåëü switch ïðåäíàçíà÷åí äëÿ âûáîðà îäíîãî èç
3127
  íåñêîëüêèõ àëüòåðíàòèâíûõ ïóòåé âûïîëíåíèÿ ïðîãðàììû. Âûïîëíåíèå íà÷èíàåòñÿ
3126
  íåñêîëüêèõ àëüòåðíàòèâíûõ ïóòåé âûïîëíåíèÿ ïðîãðàììû. Âûïîëíåíèå íà÷èíàåòñÿ
3128
  ñ âû÷èñëåíèÿ çíà÷åíèÿ âûðàæåíèÿ. Ïîñëå ýòîãî óïðàâëåíèå ïåðåäàåòñÿ îäíîìó
3127
  ñ âû÷èñëåíèÿ çíà÷åíèÿ âûðàæåíèÿ. Ïîñëå ýòîãî óïðàâëåíèå ïåðåäàåòñÿ îäíîìó
3129
  èç îïåðàòîðîâ òåëà ïåðåêëþ÷àòåëÿ.  òåëå ïåðåêëþ÷àòåëÿ ñîäåðæàòñÿ
3128
  èç îïåðàòîðîâ òåëà ïåðåêëþ÷àòåëÿ.  òåëå ïåðåêëþ÷àòåëÿ ñîäåðæàòñÿ
3130
  êîíñòðóêöèè: case êîíñòàíòà:, êîòîðûå ñèíòàêñè÷åñêè ïðåäñòàâëÿþò ñîáîé
3129
  êîíñòðóêöèè: case êîíñòàíòà:, êîòîðûå ñèíòàêñè÷åñêè ïðåäñòàâëÿþò ñîáîé
3131
  ìåòêè îïåðàòîðîâ. Îïåðàòîð, ïîëó÷àþùèé óïðàâëåíèå, - ýòî òîò îïåðàòîð,
3130
  ìåòêè îïåðàòîðîâ. Îïåðàòîð, ïîëó÷àþùèé óïðàâëåíèå, - ýòî òîò îïåðàòîð,
3132
  çíà÷åíèå êîíñòàíòû êîòîðîãî ñîâïàäàþò ñî çíà÷åíèåì âûðàæåíèÿ
3131
  çíà÷åíèå êîíñòàíòû êîòîðîãî ñîâïàäàþò ñî çíà÷åíèåì âûðàæåíèÿ
3133
  ïåðåêëþ÷àòåëÿ. Çíà÷åíèå êîíñòàíòû äîëæíî áûòü óíèêàëüíûì.
3132
  ïåðåêëþ÷àòåëÿ. Çíà÷åíèå êîíñòàíòû äîëæíî áûòü óíèêàëüíûì.
3134
 
3133
 
3135
      Âûïîëíåíèå òåëà îïåðàòîðà-ïåðåêëþ÷àòåëÿ switch íà÷èíàåòñÿ ñ âûáðàííîãî
3134
      Âûïîëíåíèå òåëà îïåðàòîðà-ïåðåêëþ÷àòåëÿ switch íà÷èíàåòñÿ ñ âûáðàííîãî
3136
  òàêèì îáðàçîì îïåðàòîðà, è ïðîäîëæàåòñÿ äî êîíöà òåëà èëè äî òåõ ïîð, ïîêà
3135
  òàêèì îáðàçîì îïåðàòîðà, è ïðîäîëæàåòñÿ äî êîíöà òåëà èëè äî òåõ ïîð, ïîêà
3137
  êàêîé-ëèáî îïåðàòîð íå ïåðåäàñò óïðàâëåíèå çà ïðåäåëû òåëà.
3136
  êàêîé-ëèáî îïåðàòîð íå ïåðåäàñò óïðàâëåíèå çà ïðåäåëû òåëà.
3138
 
3137
 
3139
    Îïåðàòîð, ñëåäóþùèé çà êëþ÷åâûì ñëîâîì default, âûïîëíÿåòñÿ, åñëè íè
3138
    Îïåðàòîð, ñëåäóþùèé çà êëþ÷åâûì ñëîâîì default, âûïîëíÿåòñÿ, åñëè íè
3140
  îäíà èç êîíñòàíò íå ðàâíà çíà÷åíèþ âûðàæåíèÿ. Åñëè default îïóùåíî, òî
3139
  îäíà èç êîíñòàíò íå ðàâíà çíà÷åíèþ âûðàæåíèÿ. Åñëè default îïóùåíî, òî
3141
  íè îäèí îïåðàòîð â òåëå ïåðåêëþ÷àòåëÿ íå âûïîëíÿåòñÿ, è óïðàâëåíèå
3140
  íè îäèí îïåðàòîð â òåëå ïåðåêëþ÷àòåëÿ íå âûïîëíÿåòñÿ, è óïðàâëåíèå
3142
  ïåðåäàåòñÿ íà îïåðàòîð, ñëåäóþùèé çà switch.
3141
  ïåðåäàåòñÿ íà îïåðàòîð, ñëåäóþùèé çà switch.
3143
 
3142
 
3144
      Äëÿ âûõîäà èç òåëà ïåðåêëþ÷àòåëÿ îáû÷íî èñïîëüçóåòñÿ îïåðàòîð ðàçðûâà
3143
      Äëÿ âûõîäà èç òåëà ïåðåêëþ÷àòåëÿ îáû÷íî èñïîëüçóåòñÿ îïåðàòîð ðàçðûâà
3145
  break (BREAK).
3144
  break (BREAK).
3146
 
3145
 
3147
    Ïðèìåð:
3146
    Ïðèìåð:
3148
    switch (i){
3147
    switch (i){
3149
      case 'A':
3148
      case 'A':
3150
        WRITE(i);
3149
        WRITE(i);
3151
        i++;
3150
        i++;
3152
        BREAK;
3151
        BREAK;
3153
      case 32:
3152
      case 32:
3154
        WRITE('_');
3153
        WRITE('_');
3155
        i++;
3154
        i++;
3156
        BREAK;
3155
        BREAK;
3157
      default:
3156
      default:
3158
        WRITE('i');
3157
        WRITE('i');
3159
    }
3158
    }
3160
 
3159
 
3161
      Îïåðàòîð switch ñåé÷àñ â êîìïèëÿòîðå ìîæåò ðåàëèçîâûâàòüñÿ òðåì
3160
      Îïåðàòîð switch ñåé÷àñ â êîìïèëÿòîðå ìîæåò ðåàëèçîâûâàòüñÿ òðåì
3162
  ñïîñîáàìè: äâóõòàáëè÷íûì, òàáëè÷íûì è ìåòîäîì ïîñëåäîâàòåëüíûõ ïðîâåðîê.
3161
  ñïîñîáàìè: äâóõòàáëè÷íûì, òàáëè÷íûì è ìåòîäîì ïîñëåäîâàòåëüíûõ ïðîâåðîê.
3163
 
3162
 
3164
      Òàáëè÷íûé ìåòîä ÿâëÿåòñÿ ñàìûì áûñòðûì, à ïðè áîëüøîì ÷èñëå îïåðàòîðîâ
3163
      Òàáëè÷íûé ìåòîä ÿâëÿåòñÿ ñàìûì áûñòðûì, à ïðè áîëüøîì ÷èñëå îïåðàòîðîâ
3165
  case è ïðè íåçíà÷èòåëüíîé ðàçíèöå ìåæäó ìàêñèìàëüíûì è ìèíèìàëüíûì
3164
  case è ïðè íåçíà÷èòåëüíîé ðàçíèöå ìåæäó ìàêñèìàëüíûì è ìèíèìàëüíûì
3166
  çíà÷åíèÿìè case îí åùå ìîæåò áûòü è áîëåå êîìïàêòíûì. Íî ó íåãî åñòü è
3165
  çíà÷åíèÿìè case îí åùå ìîæåò áûòü è áîëåå êîìïàêòíûì. Íî ó íåãî åñòü è
3167
  íåäîñòàòêè: â 16-áèòíîì ðåæèìå êîìïèëÿòîð âñåãäà èñïîëüçóåò ðåãèñòð BX, à â
3166
  íåäîñòàòêè: â 16-áèòíîì ðåæèìå êîìïèëÿòîð âñåãäà èñïîëüçóåò ðåãèñòð BX, à â
3168
  32-áèòíîì ðåæèìå, åñëè îïåðàíäîì switch ÿâëÿåòñÿ ðåãèñòð, òî åãî çíà÷åíèå
3167
  32-áèòíîì ðåæèìå, åñëè îïåðàíäîì switch ÿâëÿåòñÿ ðåãèñòð, òî åãî çíà÷åíèå
3169
  áóäåò ðàçðóøåíî.
3168
  áóäåò ðàçðóøåíî.
3170
 
3169
 
3171
       ìåòîäå ïîñëåäîâàòåëüíûõ ïðîâåðîê áëîê ñðàâíåíèé íàõîäèòñÿ â íà÷àëå
3170
       ìåòîäå ïîñëåäîâàòåëüíûõ ïðîâåðîê áëîê ñðàâíåíèé íàõîäèòñÿ â íà÷àëå
3172
  òåëà îïåðàòîðà switch, ýòî ïîçâîëÿåò èçáàâèòüñÿ îò 1-2 ëèøíèõ jmp. Íî
3171
  òåëà îïåðàòîðà switch, ýòî ïîçâîëÿåò èçáàâèòüñÿ îò 1-2 ëèøíèõ jmp. Íî
3173
  êîìïèëÿòîð íå ìîæåò îïðåäåëèòü, êàêîé òèï ïåðåõîäà èñïîëüçîâàòü ïðè
3172
  êîìïèëÿòîð íå ìîæåò îïðåäåëèòü, êàêîé òèï ïåðåõîäà èñïîëüçîâàòü ïðè
3174
  ïðîâåðêå çíà÷åíèé case. Ýòî áóäåò Âàøåé çàáîòîé. Åñëè ðàçìåð êîäà îò
3173
  ïðîâåðêå çíà÷åíèé case. Ýòî áóäåò Âàøåé çàáîòîé. Åñëè ðàçìåð êîäà îò
3175
  íà÷àëà òåëà îïåðàòîðà switch äî ìåñòà ðàñïîëîæåíèÿ îïåðàòîðà case
3174
  íà÷àëà òåëà îïåðàòîðà switch äî ìåñòà ðàñïîëîæåíèÿ îïåðàòîðà case
3176
  ìåíüøå 128 áàéò, ìîæíî èñïîëüçîâàòü êîðîòêèé ïåðåõîä.  ýòîì ñëó÷àå Âû
3175
  ìåíüøå 128 áàéò, ìîæíî èñïîëüçîâàòü êîðîòêèé ïåðåõîä.  ýòîì ñëó÷àå Âû
3177
  ìîæåòå óêàçàòü îïåðàòîð CASE, ÷òî ïðèâåäåò ê ãåíåðàöèè áîëåå êîìïàêòíîãî
3176
  ìîæåòå óêàçàòü îïåðàòîð CASE, ÷òî ïðèâåäåò ê ãåíåðàöèè áîëåå êîìïàêòíîãî
3178
  êîäà. Êîìïèëÿòîð â ïðåäóïðåæäåíèÿõ áóäåò Âàì ïîäñêàçûâàòü î âîçìîæíîñòè
3177
  êîäà. Êîìïèëÿòîð â ïðåäóïðåæäåíèÿõ áóäåò Âàì ïîäñêàçûâàòü î âîçìîæíîñòè
3179
  èñïîëüçîâàíèÿ îïåðàòîðîâ CASE. Èñïîëüçîâàíèå îïåðàòîðà CASE â ñëó÷àÿõ,
3178
  èñïîëüçîâàíèÿ îïåðàòîðîâ CASE. Èñïîëüçîâàíèå îïåðàòîðà CASE â ñëó÷àÿõ,
3180
  êîãäà ðàçìåð áëîêà êîäà áîëåå 128 áàéò ïðèâåäåò ê âûäà÷å êîìïèëÿòîðîì
3179
  êîãäà ðàçìåð áëîêà êîäà áîëåå 128 áàéò ïðèâåäåò ê âûäà÷å êîìïèëÿòîðîì
3181
  ñîîáùåíèÿ îá îøèáêå.
3180
  ñîîáùåíèÿ îá îøèáêå.
3182
 
3181
 
3183
     Ïðè äâóõòàáëè÷íîì ìåòîäå ñîçäàþòñÿ äâå òàáëèöû - òàáëèöà àäðåñîâ âõîäà â
3182
     Ïðè äâóõòàáëè÷íîì ìåòîäå ñîçäàþòñÿ äâå òàáëèöû - òàáëèöà àäðåñîâ âõîäà â
3184
  òåëî îïåðàòîðà switch/SWITCH è òàáëèöà çíà÷åíèé case. Ãåíåðèðóåòñÿ
3183
  òåëî îïåðàòîðà switch/SWITCH è òàáëèöà çíà÷åíèé case. Ãåíåðèðóåòñÿ
3185
  ïðîöåäóðà ñðàâíåíèÿ âõîäíîãî çíà÷åíèÿ ñî çíà÷åíèÿìè âî âòîðîé òàáëèöå. Åñëè
3184
  ïðîöåäóðà ñðàâíåíèÿ âõîäíîãî çíà÷åíèÿ ñî çíà÷åíèÿìè âî âòîðîé òàáëèöå. Åñëè
3186
  åñòü ñîâïàäåíèå, òî äåëàåòñÿ ïåðåõîä ïî àäðåñó èç âòîðîé òàáëèöû. Ýòîò
3185
  åñòü ñîâïàäåíèå, òî äåëàåòñÿ ïåðåõîä ïî àäðåñó èç âòîðîé òàáëèöû. Ýòîò
3187
  ìåòîä ÿâëÿåòñÿ ñàìûì ìåäëåííûì, íî ïðè áîëüøîì ÷èñëå çíà÷åíèé case (áîëåå
3186
  ìåòîä ÿâëÿåòñÿ ñàìûì ìåäëåííûì, íî ïðè áîëüøîì ÷èñëå çíà÷åíèé case (áîëåå
3188
  15) îí ñòàíîâèòñÿ ñàìûì êîìïàêòíûì.
3187
  15) îí ñòàíîâèòñÿ ñàìûì êîìïàêòíûì.
3189
 
3188
 
3190
      Ïðè îïòèìèçàöèè êîäà íà ðàçìåð, êîìïèëÿòîð ïðåäâàðèòåëüíî âû÷èñëÿåò
3189
      Ïðè îïòèìèçàöèè êîäà íà ðàçìåð, êîìïèëÿòîð ïðåäâàðèòåëüíî âû÷èñëÿåò
3191
  ðàçìåð êîäà, êîòîðûé ìîæåò áûòü ïîëó÷åí âñåìè ìåòîäàìè è ðåàëèçóåò ñàìûé
3190
  ðàçìåð êîäà, êîòîðûé ìîæåò áûòü ïîëó÷åí âñåìè ìåòîäàìè è ðåàëèçóåò ñàìûé
3192
  êîìïàêòíûé. Ïðè îïòèìèçàöèè íà ñêîðîñòü ïðåèìóùåñòâî îòäàåòñÿ òàáëè÷íîìó
3191
  êîìïàêòíûé. Ïðè îïòèìèçàöèè íà ñêîðîñòü ïðåèìóùåñòâî îòäàåòñÿ òàáëè÷íîìó
3193
  ìåòîäó, åñëè ðàçìåð òàáëèöû ïîëó÷àåòñÿ íå ñëèøêîì áîëüøèì.
3192
  ìåòîäó, åñëè ðàçìåð òàáëèöû ïîëó÷àåòñÿ íå ñëèøêîì áîëüøèì.
3194
 
3193
 
3195
      Äëÿ îïåðàòîðà switch ââåäåíà òàêæå è êîðîòêàÿ åãî ôîðìà - SWITCH.
3194
      Äëÿ îïåðàòîðà switch ââåäåíà òàêæå è êîðîòêàÿ åãî ôîðìà - SWITCH.
3196
  Åå ìîæíî ïðèìåíÿòü â ñëó÷àå, åñëè ðàçìåð áëîêà êîäà ìåæäó íà÷àëîì òåëà
3195
  Åå ìîæíî ïðèìåíÿòü â ñëó÷àå, åñëè ðàçìåð áëîêà êîäà ìåæäó íà÷àëîì òåëà
3197
  îïåðàòîðà è îïåðàòîðîì default (åñëè îí îòñóòñòâóåò, òî êîíöîì òåëà
3196
  îïåðàòîðà è îïåðàòîðîì default (åñëè îí îòñóòñòâóåò, òî êîíöîì òåëà
3198
  îïåðàòîðà switch) ìåíüøå 128 áàéò. Î âîçìîæíîñòè èñïîëüçîâàíèÿ êîðîòêîé
3197
  îïåðàòîðà switch) ìåíüøå 128 áàéò. Î âîçìîæíîñòè èñïîëüçîâàíèÿ êîðîòêîé
3199
  ôîðìû êîìïèëÿòîð áóäåò ñîîáùàòü â ïðåäóïðåæäåíèÿõ.
3198
  ôîðìû êîìïèëÿòîð áóäåò ñîîáùàòü â ïðåäóïðåæäåíèÿõ.
3200
 
3199
 
3201
      Äëÿ îïåðàòîðà case/CASE, êîòîðûé ìîæåò èñïîëüçîâàòüñÿ òîëüêî â òåëå
3200
      Äëÿ îïåðàòîðà case/CASE, êîòîðûé ìîæåò èñïîëüçîâàòüñÿ òîëüêî â òåëå
3202
  áëîêà îïåðàòîðà switch/SWITCH, ìîæíî óêàçûâàòü äèàïàçîí çíà÷åíèé. Ñíà÷àëà
3201
  áëîêà îïåðàòîðà switch/SWITCH, ìîæíî óêàçûâàòü äèàïàçîí çíà÷åíèé. Ñíà÷àëà
3203
  íàäî óêàçûâàòü ìåíüøåå çíà÷åíèå, çàòåì ïîñëå ìíîãîòî÷èÿ áîëüøåå. Ïðèìåð:
3202
  íàäî óêàçûâàòü ìåíüøåå çíà÷åíèå, çàòåì ïîñëå ìíîãîòî÷èÿ áîëüøåå. Ïðèìåð:
3204
 
3203
 
3205
  switch(AX){
3204
  switch(AX){
3206
    case 1...5:
3205
    case 1...5:
3207
      WRITESTR("Range AX from 1 to 5");
3206
      WRITESTR("Range AX from 1 to 5");
3208
      BREAK;
3207
      BREAK;
3209
  };
3208
  };
3210
 
3209
 
3211
      Ðàíüøå Âàì áû ïðèøëîñü ïèñàòü áîëåå ãðîìîçäêóþ êîíñòðóêöèþ:
3210
      Ðàíüøå Âàì áû ïðèøëîñü ïèñàòü áîëåå ãðîìîçäêóþ êîíñòðóêöèþ:
3212
 
3211
 
3213
  switch(AX){
3212
  switch(AX){
3214
    case 1:
3213
    case 1:
3215
    case 2:
3214
    case 2:
3216
    case 3:
3215
    case 3:
3217
    case 4:
3216
    case 4:
3218
    case 5:
3217
    case 5:
3219
      WRITESTR("Range AX from 1 to 5");
3218
      WRITESTR("Range AX from 1 to 5");
3220
      BREAK;
3219
      BREAK;
3221
  };
3220
  };
3222
 
3221
 
3223
      Êðîìå òîãî, ÷òî íîâûé ôîðìàò çàïèñè áîëåå êîìïàêòåí è áîëåå ÷èòàáåëåí,
3222
      Êðîìå òîãî, ÷òî íîâûé ôîðìàò çàïèñè áîëåå êîìïàêòåí è áîëåå ÷èòàáåëåí,
3224
  íî åùå ïðè ýòîì êîìïèëÿòîð ñîçäàåò áîëåå êîìïàêòíûé è áûñòðûé êîä.
3223
  íî åùå ïðè ýòîì êîìïèëÿòîð ñîçäàåò áîëåå êîìïàêòíûé è áûñòðûé êîä.
3225
Return to contents.
3224
Return to contents.
3226
 
3225
 
3227
 
3226
 
3228
 
3227
 
3229
  9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.
3228
  9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.
3230
 
3229
 
3231
 
3230
 
3232
       Ñèíòàêñèñ:
3231
       Ñèíòàêñèñ:
3233
       goto <ìåòêà>;
3232
       goto <ìåòêà>;
3234
  	.
3233
        .
3235
  	.
3234
        .
3236
  	.
3235
        .
3237
  <ìåòêà>:
3236
  <ìåòêà>:
3238
 
3237
 
3239
      Îïåðàòîð ïåðåõîäà goto ïåðåäàåò óïðàâëåíèå íà îïåðàòîð ïîìå÷åííûé
3238
      Îïåðàòîð ïåðåõîäà goto ïåðåäàåò óïðàâëåíèå íà îïåðàòîð ïîìå÷åííûé
3240
  ìåòêîé. Àíàëîãîì â àññåìáëåðå îïåðàòîðó goto ÿâëÿåòñÿ êîìàíäà jmp near.
3239
  ìåòêîé. Àíàëîãîì â àññåìáëåðå îïåðàòîðó goto ÿâëÿåòñÿ êîìàíäà jmp near.
3241
  Àíàëîãîì â àññåìáëåðå îïåðàòîðó GOTO ÿâëÿåòñÿ êîìàíäà jmp short.
3240
  Àíàëîãîì â àññåìáëåðå îïåðàòîðó GOTO ÿâëÿåòñÿ êîìàíäà jmp short.
3242
Return to contents.
3241
Return to contents.
3243
 
3242
 
3244
 
3243
 
3245
 
3244
 
3246
  9.8 Îïåðàòîð ðàçðûâà break, BREAK.
3245
  9.8 Îïåðàòîð ðàçðûâà break, BREAK.
3247
 
3246
 
3248
 
3247
 
3249
      Îïåðàòîð ðàçðûâà break ïðåðûâàåò âûïîëíåíèå îïåðàòîðîâ do-while,
3248
      Îïåðàòîð ðàçðûâà break ïðåðûâàåò âûïîëíåíèå îïåðàòîðîâ do-while,
3250
  for, switch, while, loop, loopnz, LOOPNZ. Îí ìîæåò ñîäåðæàòüñÿ
3249
  for, switch, while, loop, loopnz, LOOPNZ. Îí ìîæåò ñîäåðæàòüñÿ
3251
  òîëüêî â òåëå ýòèõ îïåðàòîðîâ. Óïðàâëåíèå ïåðåäàåòñÿ îïåðàòîðó, ñëåäóþùåìó
3250
  òîëüêî â òåëå ýòèõ îïåðàòîðîâ. Óïðàâëåíèå ïåðåäàåòñÿ îïåðàòîðó, ñëåäóþùåìó
3252
  çà ïðåðâàííûì öèêëîì.
3251
  çà ïðåðâàííûì öèêëîì.
3253
 
3252
 
3254
      Îïåðàòîð BREAK àíàëîãè÷åí break, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà 1
3253
      Îïåðàòîð BREAK àíàëîãè÷åí break, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà 1
3255
  áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ BREAK
3254
  áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ BREAK
3256
  äî êîíöà öèêëà äîëæåí áûòü ìåíüøå 127 áàéò.
3255
  äî êîíöà öèêëà äîëæåí áûòü ìåíüøå 127 áàéò.
3257
 
3256
 
3258
    Ïðèìåðû:
3257
    Ïðèìåðû:
3259
  	FOR (i=0; ; i++){
3258
        FOR (i=0; ; i++){
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.
3266
 
3265
 
3267
 
3266
 
3268
 
3267
 
3269
  9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
3268
  9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
3270
 
3269
 
3271
 
3270
 
3272
      Îïåðàòîð ïðîäîëæåíèÿ continue ïåðåäàåò óïðàâëåíèå íà ñëåäóþùóþ
3271
      Îïåðàòîð ïðîäîëæåíèÿ continue ïåðåäàåò óïðàâëåíèå íà ñëåäóþùóþ
3273
  èòåðàöèþ â öèêëàõ do-while, for, while, loop, loopnz. Â öèêëàõ
3272
  èòåðàöèþ â öèêëàõ do-while, for, while, loop, loopnz. Â öèêëàõ
3274
  do-while, while, loop ñëåäóþùàÿ èòåðàöèÿ íà÷èíàåòñÿ ñ âû÷èñëåíèÿ
3273
  do-while, while, loop ñëåäóþùàÿ èòåðàöèÿ íà÷èíàåòñÿ ñ âû÷èñëåíèÿ
3275
  óñëîâíîãî âûðàæåíèÿ. Äëÿ öèêëà for ñëåäóþùàÿ èòåðàöèÿ íà÷èíàåòñÿ ñ
3274
  óñëîâíîãî âûðàæåíèÿ. Äëÿ öèêëà for ñëåäóþùàÿ èòåðàöèÿ íà÷èíàåòñÿ ñ
3276
  âû÷èñëåíèÿ âûðàæåíèÿ ïðèðàùåíèÿ, à çàòåì ïðîèñõîäèò âû÷èñëåíèå óñëîâíîãî
3275
  âû÷èñëåíèÿ âûðàæåíèÿ ïðèðàùåíèÿ, à çàòåì ïðîèñõîäèò âû÷èñëåíèå óñëîâíîãî
3277
  âûðàæåíèÿ.
3276
  âûðàæåíèÿ.
3278
 
3277
 
3279
    Îïåðàòîð CONTINUE àíàëîãè÷åí continue, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
3278
    Îïåðàòîð CONTINUE àíàëîãè÷åí continue, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
3280
  1 áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ
3279
  1 áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ
3281
  CONTINUE äî íà÷àëà èòåðàöèè äîëæåí áûòü ìåíüøå 127 áàéò.
3280
  CONTINUE äî íà÷àëà èòåðàöèè äîëæåí áûòü ìåíüøå 127 áàéò.
3282
Return to contents.
3281
Return to contents.
3283
 
3282
 
3284
 
3283
 
3285
 
3284
 
3286
  9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
3285
  9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
3287
 
3286
 
3288
 
3287
 
3289
      Ñóùåñòâóåò âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ ñðàâíåíèé â óñëîâèÿõ
3288
      Ñóùåñòâóåò âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ ñðàâíåíèé â óñëîâèÿõ
3290
  IF è if, öèêëàõ do{}while, while{}, WHILE{}, for{} è FOR{}.
3289
  IF è if, öèêëàõ do{}while, while{}, WHILE{}, for{} è FOR{}.
3291
  Êàæäîå ñðàâíåíèå ïðè èõ ëîãè÷åñêîì îáúåäèíåíèè äîëæíî áûòü çàêëþ÷åíî â
3290
  Êàæäîå ñðàâíåíèå ïðè èõ ëîãè÷åñêîì îáúåäèíåíèè äîëæíî áûòü çàêëþ÷åíî â
3292
  ñêîáêè.  Îáúåäèíÿòü ìîæíî íå áîëåå 32 ñðàâíåíèé.
3291
  ñêîáêè.  Îáúåäèíÿòü ìîæíî íå áîëåå 32 ñðàâíåíèé.
3293
 
3292
 
3294
       îòëè÷èå îò C â C-- àíàëèç ëîãè÷åñêèõ îáúåäèíåíèé ïðîèñõîäèò ñëåâà
3293
       îòëè÷èå îò C â C-- àíàëèç ëîãè÷åñêèõ îáúåäèíåíèé ïðîèñõîäèò ñëåâà
3295
  íàïðàâî è âñå ëèøíèå ñêîáêè áóäóò âîñïðèíÿòû êîìïèëÿòîðîì êàê îøèáî÷íûå.
3294
  íàïðàâî è âñå ëèøíèå ñêîáêè áóäóò âîñïðèíÿòû êîìïèëÿòîðîì êàê îøèáî÷íûå.
3296
  Ýòî íåñêîëüêî ñíèæàåò ãèáêîñòü è âîçìîæíîñòè ïðèìåíåíèÿ ýòèõ îáúåäèíåíèé,
3295
  Ýòî íåñêîëüêî ñíèæàåò ãèáêîñòü è âîçìîæíîñòè ïðèìåíåíèÿ ýòèõ îáúåäèíåíèé,
3297
  íî òàêîâà òðàäèöèÿ è ôèëîñîôèÿ, çàëîæåííàÿ â C--.
3296
  íî òàêîâà òðàäèöèÿ è ôèëîñîôèÿ, çàëîæåííàÿ â C--.
3298
 
3297
 
3299
      Ïðèìåð:
3298
      Ïðèìåð:
3300
 
3299
 
3301
  	   if ( (a>3) && (b>4) || (c<8) ){
3300
           if ( (a>3) && (b>4) || (c<8) ){
3302
 
3301
 
3303
  Ò.å. åñëè ïðîèçâåñòè ðàñøèôðîâêó ýòîãî óñëîâèÿ, òî ïîëó÷èòñÿ ñëåäóþùåå:
3302
  Ò.å. åñëè ïðîèçâåñòè ðàñøèôðîâêó ýòîãî óñëîâèÿ, òî ïîëó÷èòñÿ ñëåäóþùåå:
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
 
3307
 
3306
 
3308
 
3307
 
3309
  9.11 Ïåðåõîä ÷åðåç öèêëû.
3308
  9.11 Ïåðåõîä ÷åðåç öèêëû.
3310
 
3309
 
3311
 
3310
 
3312
     Äëÿ îïåðàòîðîâ BREAK, break, CONTINUE, continue ââåäåíà
3311
     Äëÿ îïåðàòîðîâ BREAK, break, CONTINUE, continue ââåäåíà
3313
  ïîääåðæêà ÷èñëîâîãî ïàðàìåòðà, îïðåäåëÿþùåãî, ñêîëüêî öèêëîâ íàäî
3312
  ïîääåðæêà ÷èñëîâîãî ïàðàìåòðà, îïðåäåëÿþùåãî, ñêîëüêî öèêëîâ íàäî
3314
  ïðîïóñòèòü, ïðåæäå ÷åì áóäåò âûïîëíåí ýòîò îïåðàòîð. Íàïðèìåð, ìû èìååì òðè
3313
  ïðîïóñòèòü, ïðåæäå ÷åì áóäåò âûïîëíåí ýòîò îïåðàòîð. Íàïðèìåð, ìû èìååì òðè
3315
  âëîæåííûõ öèêëà:
3314
  âëîæåííûõ öèêëà:
3316
 
3315
 
3317
  do{
3316
  do{
3318
     loop(CX){
3317
     loop(CX){
3319
        for(BX=0;BX<10;BX++){
3318
        for(BX=0;BX<10;BX++){
3320
  	 break;	  //ñòàíäàðòíûé îïåðàòîð
3319
         break;   //ñòàíäàðòíûé îïåðàòîð
3321
  	 break 0; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 0 öèêëîâ
3320
         break 0; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 0 öèêëîâ
3322
  	 break 1; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 1 öèêë
3321
         break 1; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 1 öèêë
3323
  	 break 2; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 2 öèêëà
3322
         break 2; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 2 öèêëà
3324
        }
3323
        }
3325
  LABL0:
3324
  LABL0:
3326
     }
3325
     }
3327
  LABL1:
3326
  LABL1:
3328
  }while (DX!=0);
3327
  }while (DX!=0);
3329
  LABL2:
3328
  LABL2:
3330
 
3329
 
3331
       òðåòüåì öèêëå íàõîäèòñÿ ãðóïïà ðàçëè÷íûõ âàðèàíòîâ îïåðàòîðà break.
3330
       òðåòüåì öèêëå íàõîäèòñÿ ãðóïïà ðàçëè÷íûõ âàðèàíòîâ îïåðàòîðà break.
3332
  Ïåðâûì ñòîèò ñòàíäàðòíûé îïåðàòîð break, ïðè âûïîëíåíèè êîòîðîãî
3331
  Ïåðâûì ñòîèò ñòàíäàðòíûé îïåðàòîð break, ïðè âûïîëíåíèè êîòîðîãî
3333
  óïðàâëåíèå áóäåò ïåðåäàâàòüñÿ çà ïðåäåëû òðåòüåãî öèêëà - íà ìåòêó LABL0.
3332
  óïðàâëåíèå áóäåò ïåðåäàâàòüñÿ çà ïðåäåëû òðåòüåãî öèêëà - íà ìåòêó LABL0.
3334
  Âòîðûì èäåò îïåðàòîð break 0, ïðè âûïîëíåíèè êîòîðîãî áóäåò ïðîïóùåíî 0
3333
  Âòîðûì èäåò îïåðàòîð break 0, ïðè âûïîëíåíèè êîòîðîãî áóäåò ïðîïóùåíî 0
3335
  öèêëîâ è óïðàâëåíèå áóäåò ïåðåäàíî îïÿòü æå íà ìåòêó LABL0. Òàêèì
3334
  öèêëîâ è óïðàâëåíèå áóäåò ïåðåäàíî îïÿòü æå íà ìåòêó LABL0. Òàêèì
3336
  îáðàçîì, çàïèñü break è break 0 ÿâëÿþòñÿ ñèíîíèìàìè. Òðåòüèì èäåò
3335
  îáðàçîì, çàïèñü break è break 0 ÿâëÿþòñÿ ñèíîíèìàìè. Òðåòüèì èäåò
3337
  îïåðàòîð break 1, ïðè âûïîëíåíèè êîòîðîãî áóäåò ïðîïóùåí îäèí öèêë è
3336
  îïåðàòîð break 1, ïðè âûïîëíåíèè êîòîðîãî áóäåò ïðîïóùåí îäèí öèêë è
3338
  óïðàâëåíèå áóäåò ïåðåäàíî çà ïðåäåëû âòîðîãî öèêëà íà ìåòêó LABL1. Íó è
3337
  óïðàâëåíèå áóäåò ïåðåäàíî çà ïðåäåëû âòîðîãî öèêëà íà ìåòêó LABL1. Íó è
3339
  íàêîíåö, ïîñëåäíèì èäåò îïåðàòîð break 2, ïðè âûïîëíåíèè êîòîðîãî
3338
  íàêîíåö, ïîñëåäíèì èäåò îïåðàòîð break 2, ïðè âûïîëíåíèè êîòîðîãî
3340
  êîìïèëÿòîð ïðîïóñòèò äâà öèêëà è ïåðåäàñò óïðàâëåíèå çà ïðåäåëû òðåòüåãî,
3339
  êîìïèëÿòîð ïðîïóñòèò äâà öèêëà è ïåðåäàñò óïðàâëåíèå çà ïðåäåëû òðåòüåãî,
3341
  íà ìåòêó LABL2. Ìåòêè â ýòîì ïðèìåðå ïðîñòàâëåíû äëÿ óäîáñòâà îáúÿñíåíèÿ.
3340
  íà ìåòêó LABL2. Ìåòêè â ýòîì ïðèìåðå ïðîñòàâëåíû äëÿ óäîáñòâà îáúÿñíåíèÿ.
3342
  Íó è ÿ íàäåþñü, Âàì ïîíÿòíî, ÷òî çíà÷åíèå ïàðàìåòðà íå ìîæåò ïðåâûøàòü
3341
  Íó è ÿ íàäåþñü, Âàì ïîíÿòíî, ÷òî çíà÷åíèå ïàðàìåòðà íå ìîæåò ïðåâûøàòü
3343
  ÷èñëà öèêëîâ íàõîäÿùèõñÿ ïåðåä òåêóùèì. Òàê äëÿ îäèíî÷íîãî öèêëà ýòîò
3342
  ÷èñëà öèêëîâ íàõîäÿùèõñÿ ïåðåä òåêóùèì. Òàê äëÿ îäèíî÷íîãî öèêëà ýòîò
3344
  ïàðàìåòð ìîæåò ïðèíèìàòü ìàêñèìàëüíîå è åäèíñòâåííîå çíà÷åíèå - 0.
3343
  ïàðàìåòð ìîæåò ïðèíèìàòü ìàêñèìàëüíîå è åäèíñòâåííîå çíà÷åíèå - 0.
3345
Return to contents.
3344
Return to contents.
3346
 
3345
 
3347
 
3346
 
3348
 
3347
 
3349
  9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
3348
  9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
3350
 
3349
 
3351
 
3350
 
3352
      Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé â îïåðàöèÿõ ñðàâíåíèÿ if/IF
3351
      Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé â îïåðàöèÿõ ñðàâíåíèÿ if/IF
3353
  for/FOR while/WHILE ïðîèñõîäèò ñ ïîìîùüþ ñèìâîëà ! - not.
3352
  for/FOR while/WHILE ïðîèñõîäèò ñ ïîìîùüþ ñèìâîëà ! - not.
3354
 
3353
 
3355
     Âûðàæåíè
3354
     Âûðàæåíè
3356
 
3355
 
3357
    IF ( NOTCARRYFLAG )...   è  IF ( ! CARRYFLAG )...
3356
    IF ( NOTCARRYFLAG )...   è  IF ( ! CARRYFLAG )...
3358
    IF ( proc() == 0 )...    è IF ( ! proc() ) ...
3357
    IF ( proc() == 0 )...    è IF ( ! proc() ) ...
3359
 
3358
 
3360
  ÿâëÿþòñÿ ñèíîíèìàìè.
3359
  ÿâëÿþòñÿ ñèíîíèìàìè.
3361
Return to contents.
3360
Return to contents.
3362
 
3361
 
3363
 
3362
 
3364
 
3363
 
3365
  9.13 Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.
3364
  9.13 Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.
3366
 
3365
 
3367
 
3366
 
3368
      Â îïåðàöèÿõ ñðàâíåíèÿ â ëåâîì îïåðàíäå òåïåðü äîïóñòèìî èñïîëüçîâàòü
3367
      Â îïåðàöèÿõ ñðàâíåíèÿ â ëåâîì îïåðàíäå òåïåðü äîïóñòèìî èñïîëüçîâàòü
3369
  âû÷èñëåíèÿ âûðàæåíèÿ ñ ïðèñâàèâàíèåì è îïåðàöèè èíêðåìåíòà, äåêðåìåíòà.
3368
  âû÷èñëåíèÿ âûðàæåíèÿ ñ ïðèñâàèâàíèåì è îïåðàöèè èíêðåìåíòà, äåêðåìåíòà.
3370
  Íàïðèìåð:
3369
  Íàïðèìåð:
3371
 
3370
 
3372
    IF (i=a+2 != 0 )...
3371
    IF (i=a+2 != 0 )...
3373
    IF ( i++ )...
3372
    IF ( i++ )...
3374
    IF ( a-- )...
3373
    IF ( a-- )...
3375
    IF ( i+=4 == 0 )...
3374
    IF ( i+=4 == 0 )...
3376
 
3375
 
3377
      Âî âñåõ ýòèõ ïðèìåðàõ ñíà÷àëà ïðîèçîéäåò âû÷èñëåíèå âûðàæåíèÿ â ëåâîé
3376
      Âî âñåõ ýòèõ ïðèìåðàõ ñíà÷àëà ïðîèçîéäåò âû÷èñëåíèå âûðàæåíèÿ â ëåâîé
3378
  ÷àñòè îïåðàöèè ñðàâíåíèÿ, à ïîòîì áóäåò ïðîèçâåäåíî ñðàâíåíèå ðåçóëüòàòà ñ
3377
  ÷àñòè îïåðàöèè ñðàâíåíèÿ, à ïîòîì áóäåò ïðîèçâåäåíî ñðàâíåíèå ðåçóëüòàòà ñ
3379
  ïðàâîé ÷àñòüþ âûðàæåíèÿ ñðàâíåíèÿ.
3378
  ïðàâîé ÷àñòüþ âûðàæåíèÿ ñðàâíåíèÿ.
3380
Return to contents.
3379
Return to contents.
3381
 
3380
 
3382
 
3381
 
3383
 
3382
 
3384
  9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
3383
  9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
3385
 
3384
 
3386
 
3385
 
3387
      Åñëè â ëåâîé ÷àñòè âûðàæåíèÿ ñðàâíåíèÿ íàïèñàíî: BX & 5, òî ïðè
3386
      Åñëè â ëåâîé ÷àñòè âûðàæåíèÿ ñðàâíåíèÿ íàïèñàíî: BX & 5, òî ïðè
3388
  âû÷èñëåíèè âûðàæåíèÿ ñîäåðæèìîå ðåãèñòðà BX áóäåò èçìåíåíî èíñòðóêöèåé
3387
  âû÷èñëåíèè âûðàæåíèÿ ñîäåðæèìîå ðåãèñòðà BX áóäåò èçìåíåíî èíñòðóêöèåé
3389
  and. Íî èíîãäà âîçíèêàåò íåîáõîäèìîñòü â ïðîâåðêå áèòîâ áåç èçìåíåíèÿ
3388
  and. Íî èíîãäà âîçíèêàåò íåîáõîäèìîñòü â ïðîâåðêå áèòîâ áåç èçìåíåíèÿ
3390
  ñîäåðæèìîãî ðåãèñòðà BX. Äëÿ ýòèõ öåëåé íàäî èñïîëüçîâàòü èíñòðóêöèþ
3389
  ñîäåðæèìîãî ðåãèñòðà BX. Äëÿ ýòèõ öåëåé íàäî èñïîëüçîâàòü èíñòðóêöèþ
3391
  test. Êàê æå óêàçàòü êîìïèëÿòîðó, â êàêèõ ñèòóàöèÿõ èñïîëüçîâàòü
3390
  test. Êàê æå óêàçàòü êîìïèëÿòîðó, â êàêèõ ñèòóàöèÿõ èñïîëüçîâàòü
3392
  èíñòðóêöèþ and, à â êàêèõ test? Â ñòàíäàðòíûõ ÿçûêàõ C äëÿ ýòîãî
3391
  èíñòðóêöèþ and, à â êàêèõ test? Â ñòàíäàðòíûõ ÿçûêàõ C äëÿ ýòîãî
3393
  èñïîëüçóåòñÿ ìåõàíèçì ïðèîðèòåòîâ - åñëè âûðàæåíèå çàêëþ÷åíî â ñêîáêè, òî
3392
  èñïîëüçóåòñÿ ìåõàíèçì ïðèîðèòåòîâ - åñëè âûðàæåíèå çàêëþ÷åíî â ñêîáêè, òî
3394
  ïðîèçâîäèòñÿ åãî âû÷èñëåíèå, åñëè íåò, òî ïðîèçâîäèòñÿ ïðîâåðêà. Íî C-- íå
3393
  ïðîèçâîäèòñÿ åãî âû÷èñëåíèå, åñëè íåò, òî ïðîèçâîäèòñÿ ïðîâåðêà. Íî C-- íå
3395
  ïîääåðæèâàåò ïðèîðèòåòîâ. Äëÿ ðàçðåøåíèÿ ýòîé ïðîáëåìû â C-- ðåøåíî
3394
  ïîääåðæèâàåò ïðèîðèòåòîâ. Äëÿ ðàçðåøåíèÿ ýòîé ïðîáëåìû â C-- ðåøåíî
3396
  èñïîëüçîâàòü íåïîñðåäñòâåííî ñàìó èíñòðóêöèþ test. Âîò äîïóñòèìûå
3395
  èñïîëüçîâàòü íåïîñðåäñòâåííî ñàìó èíñòðóêöèþ test. Âîò äîïóñòèìûå
3397
  âàðèàíòû ñèíòàêñèñà:
3396
  âàðèàíòû ñèíòàêñèñà:
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 } )
3403
Return to contents.
3402
Return to contents.
3404
 
3403
 
3405
 
3404
 
3406
 
3405
 
3407
  9.15 Îïåðàòîð ïåðåñòàíîâêè.
3406
  9.15 Îïåðàòîð ïåðåñòàíîâêè.
3408
 
3407
 
3409
 
3408
 
3410
       C-- åñòü îïåðàòîð, êîòîðûé íå âñòðå÷àåòñÿ â äðóãèõ ÿçûêàõ, ýòî
3409
       C-- åñòü îïåðàòîð, êîòîðûé íå âñòðå÷àåòñÿ â äðóãèõ ÿçûêàõ, ýòî
3411
  îïåðàòîð ïåðåñòàíîâêè. Îïåðàòîð ïåðåñòàíîâêè ìåíÿåò ìåñòàìè ñîäåðæèìîå äâóõ
3410
  îïåðàòîð ïåðåñòàíîâêè. Îïåðàòîð ïåðåñòàíîâêè ìåíÿåò ìåñòàìè ñîäåðæèìîå äâóõ
3412
  ïåðåìåííûõ. Ñèìâîëüíîå îáîçíà÷åíèå ýòîãî îïåðàòîðà ><. Ïåðåìåííûå ñ îáåèõ
3411
  ïåðåìåííûõ. Ñèìâîëüíîå îáîçíà÷åíèå ýòîãî îïåðàòîðà ><. Ïåðåìåííûå ñ îáåèõ
3413
  ñòîðîí îïåðàòîðà ïåðåñòàíîâêè äîëæíû èìåòü îäèíàêîâûé ðàçìåð, 8 áèò è 8
3412
  ñòîðîí îïåðàòîðà ïåðåñòàíîâêè äîëæíû èìåòü îäèíàêîâûé ðàçìåð, 8 áèò è 8
3414
  áèò, 16 áèò è 16 áèò, èëè 32 áèòà è 32 áèòà.
3413
  áèò, 16 áèò è 16 áèò, èëè 32 áèòà è 32 áèòà.
3415
 
3414
 
3416
    Âîò íåêîòîðûå ïðèìåðû:
3415
    Âîò íåêîòîðûå ïðèìåðû:
3417
 
3416
 
3418
      AX >< BX; // ñîõðàíÿåò çíà÷åíèå BX â AX è çíà÷åíèå AX â BX
3417
      AX >< BX; // ñîõðàíÿåò çíà÷åíèå BX â AX è çíà÷åíèå AX â BX
3419
      CH >< BL; // ìåíÿåò ìåñòàìè ñîäåðæèìîå ðåãèñòðîâ CH è BL
3418
      CH >< BL; // ìåíÿåò ìåñòàìè ñîäåðæèìîå ðåãèñòðîâ CH è BL
3420
      dog >< cat; /* ìåíÿåò ìåñòàìè çíà÷åíèÿ ïåðåìåííîé dog è ïåðåìåííîé cat*/
3419
      dog >< cat; /* ìåíÿåò ìåñòàìè çíà÷åíèÿ ïåðåìåííîé dog è ïåðåìåííîé cat*/
3421
      counter >< CX; // ìåíÿåò ìåñòàìè çíà÷åíèÿ ïåðåìåííîé counter
3420
      counter >< CX; // ìåíÿåò ìåñòàìè çíà÷åíèÿ ïåðåìåííîé counter
3422
                     // è ñîäåðæèìîå ðåãèñòðà CX
3421
                     // è ñîäåðæèìîå ðåãèñòðà CX
3423
 
3422
 
3424
      Åñëè ïåðåñòàíîâêà îñóùåñòâëÿåòñÿ ìåæäó äâóìÿ 8-ðàçðÿäíûìè ïåðåìåííûìè â
3423
      Åñëè ïåðåñòàíîâêà îñóùåñòâëÿåòñÿ ìåæäó äâóìÿ 8-ðàçðÿäíûìè ïåðåìåííûìè â
3425
  ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå ðåãèñòðà AL. Åñëè ïåðåñòàíîâêà - ìåæäó
3424
  ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå ðåãèñòðà AL. Åñëè ïåðåñòàíîâêà - ìåæäó
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.
3432
 
3431
 
3433
 
3432
 
3434
 
3433
 
3435
  9.16 Îïåðàòîð îòðèöàíèÿ.
3434
  9.16 Îïåðàòîð îòðèöàíèÿ.
3436
 
3435
 
3437
 
3436
 
3438
      C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ ñìåíû çíàêà ïåðåìåííîé - îïåðàòîð
3437
      C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ ñìåíû çíàêà ïåðåìåííîé - îïåðàòîð
3439
  îòðèöàíèÿ. Ïîñòàâèâ - (çíàê ìèíóñ) ïåðåä èäåíòèôèêàòîðîì ïåðåìåííîé ïàìÿòè
3438
  îòðèöàíèÿ. Ïîñòàâèâ - (çíàê ìèíóñ) ïåðåä èäåíòèôèêàòîðîì ïåðåìåííîé ïàìÿòè
3440
  èëè ðåãèñòðà è ; (òî÷êó ñ çàïÿòîé) ïîñëå èäåíòèôèêàòîðà, âû ñìåíèòå çíàê
3439
  èëè ðåãèñòðà è ; (òî÷êó ñ çàïÿòîé) ïîñëå èäåíòèôèêàòîðà, âû ñìåíèòå çíàê
3441
  ïåðåìåííîé ïàìÿòè èëè ðåãèñòðà.
3440
  ïåðåìåííîé ïàìÿòè èëè ðåãèñòðà.
3442
 
3441
 
3443
  Âîò íåêîòîðûå ïðèìåðû:
3442
  Âîò íåêîòîðûå ïðèìåðû:
3444
 
3443
 
3445
           -AX; // ðåçóëüòàò òîò æå, ÷òî è ïðè 'AX = -AX;' ,íî áûñòðåå.
3444
           -AX; // ðåçóëüòàò òîò æå, ÷òî è ïðè 'AX = -AX;' ,íî áûñòðåå.
3446
           -tree; // òî æå ñàìîå, ÷òî 'tree = -tree;' ,íî áûñòðåå.
3445
           -tree; // òî æå ñàìîå, ÷òî 'tree = -tree;' ,íî áûñòðåå.
3447
           -BH; // ìåíÿåò çíàê BH.
3446
           -BH; // ìåíÿåò çíàê BH.
3448
Return to contents.
3447
Return to contents.
3449
 
3448
 
3450
 
3449
 
3451
 
3450
 
3452
  9.17 Îïåðàòîð èíâåðñèè.
3451
  9.17 Îïåðàòîð èíâåðñèè.
3453
 
3452
 
3454
 
3453
 
3455
      C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ âûïîëíåíèÿ ëîãè÷åñêîé èíâåðñèè
3454
      C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ âûïîëíåíèÿ ëîãè÷åñêîé èíâåðñèè
3456
  çíà÷åíèÿ ïåðåìåííîé - îïåðàòîð èíâåðñèè. Ïîñòàâèâ ! (âîñêëèöàòåëüíûé çíàê)
3455
  çíà÷åíèÿ ïåðåìåííîé - îïåðàòîð èíâåðñèè. Ïîñòàâèâ ! (âîñêëèöàòåëüíûé çíàê)
3457
  ïåðåä èäåíòèôèêàòîðîì ïåðåìåííîé ïàìÿòè èëè ðåãèñòðîì è ; (òî÷êó ñ
3456
  ïåðåä èäåíòèôèêàòîðîì ïåðåìåííîé ïàìÿòè èëè ðåãèñòðîì è ; (òî÷êó ñ
3458
  çàïÿòîé) ïîñëå èäåíòèôèêàòîðà, âû âûïîëíèòå ëîãè÷åñêóþ (âûïîëíèòñÿ
3457
  çàïÿòîé) ïîñëå èäåíòèôèêàòîðà, âû âûïîëíèòå ëîãè÷åñêóþ (âûïîëíèòñÿ
3459
  àññåìáëåðíàÿ êîìàíäà NOT) èíâåðñèþ òåêóùåãî çíà÷åíèÿ ïåðåìåííîé. Âîò
3458
  àññåìáëåðíàÿ êîìàíäà NOT) èíâåðñèþ òåêóùåãî çíà÷åíèÿ ïåðåìåííîé. Âîò
3460
  íåêîòîðûå ïðèìåðû:
3459
  íåêîòîðûå ïðèìåðû:
3461
 
3460
 
3462
          !AX; // òî æå ñàìîå, ÷òî ' AX ^ = 0xFFFF; ' íî áûñòðåå.
3461
          !AX; // òî æå ñàìîå, ÷òî ' AX ^ = 0xFFFF; ' íî áûñòðåå.
3463
          !node; // çàìåíÿåò çíà÷åíèå 'node' åãî ëîãè÷åñêîé èíâåðñèåé.
3462
          !node; // çàìåíÿåò çíà÷åíèå 'node' åãî ëîãè÷åñêîé èíâåðñèåé.
3464
          !CL; // òî æå ñàìîå, ÷òî ' CL ^ = 0xFF ' íî áûñòðåå.
3463
          !CL; // òî æå ñàìîå, ÷òî ' CL ^ = 0xFF ' íî áûñòðåå.
3465
Return to contents.
3464
Return to contents.
3466
 
3465
 
3467
 
3466
 
3468
 
3467
 
3469
  9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
3468
  9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
3470
 
3469
 
3471
 
3470
 
3472
      C-- ïîääåðæèâàåò âîñåìü ñïåöèàëüíûõ óñëîâíûõ âûðàæåíèé:
3471
      C-- ïîääåðæèâàåò âîñåìü ñïåöèàëüíûõ óñëîâíûõ âûðàæåíèé:
3473
 
3472
 
3474
           CARRYFLAG
3473
           CARRYFLAG
3475
           NOTCARRYFLAG
3474
           NOTCARRYFLAG
3476
           OVERFLOW
3475
           OVERFLOW
3477
           NOTOVERFLOW
3476
           NOTOVERFLOW
3478
           ZEROFLAG
3477
           ZEROFLAG
3479
           NOTZEROFLAG
3478
           NOTZEROFLAG
3480
           MINUSFLAG
3479
           MINUSFLAG
3481
           PLUSFLAG
3480
           PLUSFLAG
3482
 
3481
 
3483
      Îíè ìîãóò èñïîëüçîâàòüñÿ âìåñòî ëþáûõ íîðìàëüíûõ óñëîâíûõ âûðàæåíèé.
3482
      Îíè ìîãóò èñïîëüçîâàòüñÿ âìåñòî ëþáûõ íîðìàëüíûõ óñëîâíûõ âûðàæåíèé.
3484
  Åñëè Âû æåëàåòå, íàïðèìåð, âûïîëíèòü áëîê êîäà òîëüêî åñëè óñòàíîâëåí ôëàã
3483
  Åñëè Âû æåëàåòå, íàïðèìåð, âûïîëíèòü áëîê êîäà òîëüêî åñëè óñòàíîâëåí ôëàã
3485
  ïåðåíîñà, Âàì ñëåäóåò èñïîëüçîâàòü ñëåäóþùóþ ïîñëåäîâàòåëüíîñòü êîìàíä:
3484
  ïåðåíîñà, Âàì ñëåäóåò èñïîëüçîâàòü ñëåäóþùóþ ïîñëåäîâàòåëüíîñòü êîìàíä:
3486
 
3485
 
3487
           IF( CARRYFLAG )
3486
           IF( CARRYFLAG )
3488
           {
3487
           {
3489
           // çäåñü âû ÷åãî-òî äåëàåòå
3488
           // çäåñü âû ÷åãî-òî äåëàåòå
3490
           }
3489
           }
3491
 
3490
 
3492
      Åñëè Âû æåëàåòå íåïðåðûâíî âûïîëíÿòü áëîê êîäà äî òåõ ïîð, ïîêà íå
3491
      Åñëè Âû æåëàåòå íåïðåðûâíî âûïîëíÿòü áëîê êîäà äî òåõ ïîð, ïîêà íå
3493
  óñòàíîâèòñÿ ôëàã ïåðåïîëíåíèÿ, Âàì ñëåäóåò èñïîëüçîâàòü íå÷òî ïîäîáíîå
3492
  óñòàíîâèòñÿ ôëàã ïåðåïîëíåíèÿ, Âàì ñëåäóåò èñïîëüçîâàòü íå÷òî ïîäîáíîå
3494
  ñëåäóþùåìó êóñêó êîäà:
3493
  ñëåäóþùåìó êóñêó êîäà:
3495
 
3494
 
3496
          do {
3495
          do {
3497
              // çäåñü âû îïÿòü ÷åãî-òî äåëàåòå
3496
              // çäåñü âû îïÿòü ÷åãî-òî äåëàåòå
3498
              } while( NOTOVERFLOW );
3497
              } while( NOTOVERFLOW );
3499
Return to contents.
3498
Return to contents.
3500
 
3499
 
3501
 
3500
 
3502
 
3501
 
3503
  9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
3502
  9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
3504
 
3503
 
3505
 
3504
 
3506
      Ñèìâîë $, êðîìå òîãî, ÷òî ÿâëÿåòñÿ ïðèçíàêîì ïîñëåäóþùåé àññåìáëåðíîé
3505
      Ñèìâîë $, êðîìå òîãî, ÷òî ÿâëÿåòñÿ ïðèçíàêîì ïîñëåäóþùåé àññåìáëåðíîé
3507
  èíñòðóêöèè, â ÿçûêå C--, êàê è â ÿçûêå Assembler ìîæåò óêàçûâàòü òåêóùèé
3506
  èíñòðóêöèè, â ÿçûêå C--, êàê è â ÿçûêå Assembler ìîæåò óêàçûâàòü òåêóùèé
3508
  àäðåñ (ñìåùåíèå) êîìïèëèðóåìîé ïðîãðàììû. Íî â C-- îí èìåë îãðàíè÷åííûå
3507
  àäðåñ (ñìåùåíèå) êîìïèëèðóåìîé ïðîãðàììû. Íî â C-- îí èìåë îãðàíè÷åííûå
3509
  âîçìîæíîñòè. Îí ìîã áûòü èñïîëüçîâàí ëèøü êàê àðãóìåíò â îïåðàòîðàõ
3508
  âîçìîæíîñòè. Îí ìîã áûòü èñïîëüçîâàí ëèøü êàê àðãóìåíò â îïåðàòîðàõ
3510
  GOTO/goto è àññåìáëåðíûõ èíñòðóêöèÿõ DW/DD/JMP.
3509
  GOTO/goto è àññåìáëåðíûõ èíñòðóêöèÿõ DW/DD/JMP.
3511
 
3510
 
3512
      Ýòîò ñèìâîë ìîæåò íàõîäèòüñÿ â ëþáîì ìåñòå âû÷èñëÿåìîãî ÷èñëîâîãî
3511
      Ýòîò ñèìâîë ìîæåò íàõîäèòüñÿ â ëþáîì ìåñòå âû÷èñëÿåìîãî ÷èñëîâîãî
3513
  âûðàæåíèÿ è ìîæåò áûòü ïðèìåíåí â ëþáîì ìåñòå ñîâìåñòíî ñ äðóãèìè ÷èñëîâûìè
3512
  âûðàæåíèÿ è ìîæåò áûòü ïðèìåíåí â ëþáîì ìåñòå ñîâìåñòíî ñ äðóãèìè ÷èñëîâûìè
3514
  âûðàæåíèÿìè.
3513
  âûðàæåíèÿìè.
3515
 
3514
 
3516
  Ïðèìåðû ïðèìåíåíèÿ:
3515
  Ïðèìåðû ïðèìåíåíèÿ:
3517
 
3516
 
3518
  DW #main-$	//çàïèñàòü ðàññòîÿíèå îò ïðîöåäóðû main äî òåêóùåãî ìåñòà
3517
  DW #main-$    //çàïèñàòü ðàññòîÿíèå îò ïðîöåäóðû main äî òåêóùåãî ìåñòà
3519
  GOTO $+2;	//ïåðåéòè ïî àäðåñó íà 2 áîëüøå, ÷åì òåêóùèé àäðåñ
3518
  GOTO $+2;     //ïåðåéòè ïî àäðåñó íà 2 áîëüøå, ÷åì òåêóùèé àäðåñ
3520
Return to contents.
3519
Return to contents.
3521
 
3520
 
3522
 
3521
 
3523
 
3522
 
3524
  9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
3523
  9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
3525
 
3524
 
3526
 
3525
 
3527
      Åñëè ïåðåä îáúÿâëåíèåì ãëîáàëüíîé ïåðåìåííîé, ñòðóêòóðû èëè ïðîöåäóðû
3526
      Åñëè ïåðåä îáúÿâëåíèåì ãëîáàëüíîé ïåðåìåííîé, ñòðóêòóðû èëè ïðîöåäóðû
3528
  óêàçàòü ñëîâî static, òî ýòè ïåðåìåííàÿ, ñòðóêòóðà èëè ïðîöåäóðà áóäóò
3527
  óêàçàòü ñëîâî static, òî ýòè ïåðåìåííàÿ, ñòðóêòóðà èëè ïðîöåäóðà áóäóò
3529
  äîñòóïíû òîëüêî â òîì ôàéëå, â êîòîðîì îíè áûëè îáúÿâëåíû. Ò.å. åñëè Âû
3528
  äîñòóïíû òîëüêî â òîì ôàéëå, â êîòîðîì îíè áûëè îáúÿâëåíû. Ò.å. åñëè Âû
3530
  âêëþ÷èòå ýòîò ôàéë â äðóãîé äèðåêòèâîé include, òî ïåðåìåííûå îáúÿâëåííûå
3529
  âêëþ÷èòå ýòîò ôàéë â äðóãîé äèðåêòèâîé include, òî ïåðåìåííûå îáúÿâëåííûå
3531
  âî âêëþ÷àåìîì ôàéëå ñî ñëîâîì static íå áóäóò äîñòóïíû â îñíîâíîì ôàéëå,
3530
  âî âêëþ÷àåìîì ôàéëå ñî ñëîâîì static íå áóäóò äîñòóïíû â îñíîâíîì ôàéëå,
3532
  è Âû ìîæåòå â îñíîâíîì ôàéëå îáúÿâèòü äðóãèå ïåðåìåííûå ñ òàêèìè æå
3531
  è Âû ìîæåòå â îñíîâíîì ôàéëå îáúÿâèòü äðóãèå ïåðåìåííûå ñ òàêèìè æå
3533
  èìåíàìè.
3532
  èìåíàìè.
3534
 
3533
 
3535
      Åñëè Âû ïðèìåíèòå ñëîâî static ïðè îáúÿâëåíèè ëîêàëüíîé ïåðåìåííîé â
3534
      Åñëè Âû ïðèìåíèòå ñëîâî static ïðè îáúÿâëåíèè ëîêàëüíîé ïåðåìåííîé â
3536
  ïðîöåäóðå, òî ïàìÿòü äëÿ ýòîé ïåðåìåííîé áóäåò âûäåëåíà íå â ñòåêå, à â
3535
  ïðîöåäóðå, òî ïàìÿòü äëÿ ýòîé ïåðåìåííîé áóäåò âûäåëåíà íå â ñòåêå, à â
3537
  îáëàñòè äàííûõ ïðîöåäóðû. Íî ýòà ïåðåìåííàÿ áóäåò äîñòóïíà òîëüêî âíóòðè
3536
  îáëàñòè äàííûõ ïðîöåäóðû. Íî ýòà ïåðåìåííàÿ áóäåò äîñòóïíà òîëüêî âíóòðè
3538
  ïðîöåäóðû, â êîòîðîé îíà áûëà îáúÿâëåíà. Ïðèìåíåíèå static ê ëîêàëüíûì
3537
  ïðîöåäóðû, â êîòîðîé îíà áûëà îáúÿâëåíà. Ïðèìåíåíèå static ê ëîêàëüíûì
3539
  ïåðåìåííûì äàåò âîçìîæíîñòü ñîõðàíÿòü çíà÷åíèå ïåðåìåííîé äëÿ ñëåäóþùåãî
3538
  ïåðåìåííûì äàåò âîçìîæíîñòü ñîõðàíÿòü çíà÷åíèå ïåðåìåííîé äëÿ ñëåäóþùåãî
3540
  âõîäà â ïðîöåäóðó.
3539
  âõîäà â ïðîöåäóðó.
3541
 
3540
 
3542
      Ñëîâî static ìîæíî ïðèìåíÿòü ê ëþáîìó ãëîáàëüíîìó îáúåêòó
3541
      Ñëîâî static ìîæíî ïðèìåíÿòü ê ëþáîìó ãëîáàëüíîìó îáúåêòó
3543
  (ïåðåìåííîé, ñòðóêòóðå, ïðîöåäóðå). Äëÿ ëîêàëüíîãî èñïîëüçîâàíèÿ ýòî ñëîâî
3542
  (ïåðåìåííîé, ñòðóêòóðå, ïðîöåäóðå). Äëÿ ëîêàëüíîãî èñïîëüçîâàíèÿ ýòî ñëîâî
3544
  ìîæíî ïðèìåíÿòü òîëüêî ê ïåðåìåííûì.
3543
  ìîæíî ïðèìåíÿòü òîëüêî ê ïåðåìåííûì.
3545
 
3544
 
3546
      Åñëè â Âàøåé ïðîãðàììå åñòü ãëîáàëüíàÿ è ëîêàëüíàÿ ïåðåìåííàÿ ñ
3545
      Åñëè â Âàøåé ïðîãðàììå åñòü ãëîáàëüíàÿ è ëîêàëüíàÿ ïåðåìåííàÿ ñ
3547
  îäèíàêîâûìè èìåíàìè, òî â ïðîöåäóðå, â êîòîðîé îáúÿâëåíà ýòà ëîêàëüíàÿ
3546
  îäèíàêîâûìè èìåíàìè, òî â ïðîöåäóðå, â êîòîðîé îáúÿâëåíà ýòà ëîêàëüíàÿ
3548
  ïåðåìåííàÿ, Âû íå èìåëè äîñòóïà ê îäíîèìåííîé ãëîáàëüíîé ïåðåìåííîé.
3547
  ïåðåìåííàÿ, Âû íå èìåëè äîñòóïà ê îäíîèìåííîé ãëîáàëüíîé ïåðåìåííîé.
3549
  Ïðèìåíèâ ïåðåä èìåíåì ïåðåìåííîé îïåðàòîð ::, Âû ïîëó÷èòå äîñòóï ê
3548
  Ïðèìåíèâ ïåðåä èìåíåì ïåðåìåííîé îïåðàòîð ::, Âû ïîëó÷èòå äîñòóï ê
3550
  ãëîáàëüíîé ïåðåìåííîé.  Ïðèìåð:
3549
  ãëîáàëüíîé ïåðåìåííîé.  Ïðèìåð:
3551
 
3550
 
3552
  int var;  //îáúÿâëÿåì ãëîáàëüíóþ ïåðåìåííóþ
3551
  int var;  //îáúÿâëÿåì ãëîáàëüíóþ ïåðåìåííóþ
3553
 
3552
 
3554
  void proc()
3553
  void proc()
3555
  int var;  //îáúÿâëÿåì ëîêàëüíóþ ïåðåìåííóþ ñ èìåíåì óæå ñóùåñòâóþùåé
3554
  int var;  //îáúÿâëÿåì ëîêàëüíóþ ïåðåìåííóþ ñ èìåíåì óæå ñóùåñòâóþùåé
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.
3562
 
3561
 
3563
 
3562
 
3564
 
3563
 
3565
  9.21 Îïåðàòîð sizeof.
3564
  9.21 Îïåðàòîð sizeof.
3566
 
3565
 
3567
 
3566
 
3568
      Îïåðàöèÿ sizeof îïðåäåëÿåò ðàçìåð ïàìÿòè, êîòîðûé ñîîòâåòñòâóåò îáúåêòó
3567
      Îïåðàöèÿ sizeof îïðåäåëÿåò ðàçìåð ïàìÿòè, êîòîðûé ñîîòâåòñòâóåò îáúåêòó
3569
  èëè òèïó. Îïåðàöèÿ sizeof èìååò ñëåäóþùèé âèä:
3568
  èëè òèïó. Îïåðàöèÿ sizeof èìååò ñëåäóþùèé âèä:
3570
 
3569
 
3571
   sizeof (<èìÿ òèïà>)
3570
   sizeof (<èìÿ òèïà>)
3572
 
3571
 
3573
      Ðåçóëüòàòîì îïåðàöèè sizeof ÿâëÿåòñÿ ðàçìåð ïàìÿòè â áàéòàõ,
3572
      Ðåçóëüòàòîì îïåðàöèè sizeof ÿâëÿåòñÿ ðàçìåð ïàìÿòè â áàéòàõ,
3574
  ñîîòâåòñòâóþùèé çàäàííîìó îáúåêòó èëè òèïó.
3573
  ñîîòâåòñòâóþùèé çàäàííîìó îáúåêòó èëè òèïó.
3575
 
3574
 
3576
      Â C-- îïåðàòîð sizeof ìîæíî ïðèìåíÿòü ê ïåðåìåííûì, ðåãèñòðàì, òèïàì
3575
      Â C-- îïåðàòîð sizeof ìîæíî ïðèìåíÿòü ê ïåðåìåííûì, ðåãèñòðàì, òèïàì
3577
  ïåðåìåííûõ, ñòðóêòóðàì, ïðîöåäóðàì, òåêñòîâûì ñòðîêàì è ôàéëàì.
3576
  ïåðåìåííûõ, ñòðóêòóðàì, ïðîöåäóðàì, òåêñòîâûì ñòðîêàì è ôàéëàì.
3578
 
3577
 
3579
      Åñëè îïåðàöèÿ sizeof ïðèìåíÿåòñÿ ê òèïó ñòðóêòóðû, òî ðåçóëüòàòîì
3578
      Åñëè îïåðàöèÿ sizeof ïðèìåíÿåòñÿ ê òèïó ñòðóêòóðû, òî ðåçóëüòàòîì
3580
  ÿâëÿåòñÿ ðàçìåð òåãà äàííîé ñòðóêòóðû.
3579
  ÿâëÿåòñÿ ðàçìåð òåãà äàííîé ñòðóêòóðû.
3581
 
3580
 
3582
      Åñëè îïåðàöèÿ sizeof ïðèìåíÿåòñÿ ê òåêñòîâîé ñòðîêå, òî ðåçóëüòàòîì
3581
      Åñëè îïåðàöèÿ sizeof ïðèìåíÿåòñÿ ê òåêñòîâîé ñòðîêå, òî ðåçóëüòàòîì
3583
  îïåðàöèè ÿâëÿåòñÿ ðàçìåð ñòðîêè ïëþñ çàâåðøàþùèé íóëü. Íàïðèìåð:
3582
  îïåðàöèè ÿâëÿåòñÿ ðàçìåð ñòðîêè ïëþñ çàâåðøàþùèé íóëü. Íàïðèìåð:
3584
 
3583
 
3585
   sizeof ("Test")
3584
   sizeof ("Test")
3586
 
3585
 
3587
  ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ÷èñëî 5. Åñëè Âû íàïèøèòå òàêóþ
3586
  ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ÷èñëî 5. Åñëè Âû íàïèøèòå òàêóþ
3588
  êîíñòðóêöèþ:
3587
  êîíñòðóêöèþ:
3589
 
3588
 
3590
  char a="Test";
3589
  char a="Test";
3591
 
3590
 
3592
   sizeof(a)
3591
   sizeof(a)
3593
 
3592
 
3594
  òî ðåçóëüòàòîì áóäåò 5 - ðàçìåð ïàìÿòè, îòâåäåííûé äëÿ ïåðåìåííîé a.
3593
  òî ðåçóëüòàòîì áóäåò 5 - ðàçìåð ïàìÿòè, îòâåäåííûé äëÿ ïåðåìåííîé a.
3595
 
3594
 
3596
      Ïðè èñïîëüçîâàíèè îïåðàòîðà sizeof ñ èìåíåì ñòðóêòóðû âñòàâëÿåò
3595
      Ïðè èñïîëüçîâàíèè îïåðàòîðà sizeof ñ èìåíåì ñòðóêòóðû âñòàâëÿåò
3597
  ôàêòè÷åñêèé ðàçìåð ïàìÿòè, çàíèìàåìûé ñòðóêòóðîé. Ýòî îñîáåííî âàæíî, åñëè
3596
  ôàêòè÷åñêèé ðàçìåð ïàìÿòè, çàíèìàåìûé ñòðóêòóðîé. Ýòî îñîáåííî âàæíî, åñëè
3598
  Âû îáúÿâèëè ìàññèâ ñòðóêòóð.
3597
  Âû îáúÿâèëè ìàññèâ ñòðóêòóð.
3599
 
3598
 
3600
      Îïåðàòîð sizeof ìîæíî ïðèìåíÿòü è ê èìåíè îïðåäåëåííîé ðàíåå
3599
      Îïåðàòîð sizeof ìîæíî ïðèìåíÿòü è ê èìåíè îïðåäåëåííîé ðàíåå
3601
  ïðîöåäóðû. Ðåçóëüòàòîì áóäåò ðàçìåð ýòîé ïðîöåäóðû. Íî äëÿ äèíàìè÷åñêèõ
3600
  ïðîöåäóðû. Ðåçóëüòàòîì áóäåò ðàçìåð ýòîé ïðîöåäóðû. Íî äëÿ äèíàìè÷åñêèõ
3602
  ïðîöåäóð âñåãäà áóäåò íîëü.
3601
  ïðîöåäóð âñåãäà áóäåò íîëü.
3603
 
3602
 
3604
      Îïåðàöèþ sizeof ìîæíî ïðèìåíÿòü è ê ôàéëàì. Ýòî áûâàåò î÷åíü ïîëåçíûì
3603
      Îïåðàöèþ sizeof ìîæíî ïðèìåíÿòü è ê ôàéëàì. Ýòî áûâàåò î÷åíü ïîëåçíûì
3605
  ïðè èñïîëüçîâàíèè îïåðàòîðà FROM, íî ìîæåò ïðèìåíÿòüñÿ è â äðóãèõ ñëó÷àÿõ.
3604
  ïðè èñïîëüçîâàíèè îïåðàòîðà FROM, íî ìîæåò ïðèìåíÿòüñÿ è â äðóãèõ ñëó÷àÿõ.
3606
  Ïðèìåð ïðèìåíåíèÿ îïåðàòîðà sizeof ê ôàéëàì:
3605
  Ïðèìåð ïðèìåíåíèÿ îïåðàòîðà sizeof ê ôàéëàì:
3607
 
3606
 
3608
   sizeof ( file "filename.dat" )
3607
   sizeof ( file "filename.dat" )
3609
 
3608
 
3610
  Ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ðàçìåð ôàéëà "filename.dat".
3609
  Ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ðàçìåð ôàéëà "filename.dat".
3611
Return to contents.
3610
Return to contents.
3612
 
3611
 
3613
 
3612
 
3614
 
3613
 
3615
  9.22 Ìåòêè ïåðåõîäà.
3614
  9.22 Ìåòêè ïåðåõîäà.
3616
 
3615
 
3617
 
3616
 
3618
      Ìåòêè ïåðåõîäà ïðèìåíÿþòñÿ äëÿ óêàçàíèÿ íà÷àëüíûõ òî÷åê ó÷àñòêîâ êîäà,
3617
      Ìåòêè ïåðåõîäà ïðèìåíÿþòñÿ äëÿ óêàçàíèÿ íà÷àëüíûõ òî÷åê ó÷àñòêîâ êîäà,
3619
  èñïîëüçóåìûõ êîìàíäàìè ïåðåõîäà âñòðîåííîãî àññåìáëåðà è îïåðàòîðàìè
3618
  èñïîëüçóåìûõ êîìàíäàìè ïåðåõîäà âñòðîåííîãî àññåìáëåðà è îïåðàòîðàìè
3620
  goto/GOTO.
3619
  goto/GOTO.
3621
 
3620
 
3622
      Èìåþòñÿ äâà òèïà ìåòîê ïåðåõîäà: ãëîáàëüíûå è ëîêàëüíûå. Ãëîáàëüíûå
3621
      Èìåþòñÿ äâà òèïà ìåòîê ïåðåõîäà: ãëîáàëüíûå è ëîêàëüíûå. Ãëîáàëüíûå
3623
  ìåòêè, êàê ñëåäóåò èç íàçâàíèÿ, ýòî ìåòêè, êîòîðûå âèäèìû èç ëþáîãî ìåñòà â
3622
  ìåòêè, êàê ñëåäóåò èç íàçâàíèÿ, ýòî ìåòêè, êîòîðûå âèäèìû èç ëþáîãî ìåñòà â
3624
  ïðîãðàììå. Ëîêàëüíûå ìåòêè âèäíû òîëüêî â ïðåäåëàõ ñâîåãî ïðîöåäóðíîãî
3623
  ïðîãðàììå. Ëîêàëüíûå ìåòêè âèäíû òîëüêî â ïðåäåëàõ ñâîåãî ïðîöåäóðíîãî
3625
  áëîêà, è íå îïðåäåëåíû çà åãî ïðåäåëàìè.
3624
  áëîêà, è íå îïðåäåëåíû çà åãî ïðåäåëàìè.
3626
 
3625
 
3627
      Ìåòêè îïðåäåëÿþòñÿ èäåíòèôèêàòîðîì, îêàí÷èâàþùèìèñÿ äâîåòî÷èåì. Åñëè
3626
      Ìåòêè îïðåäåëÿþòñÿ èäåíòèôèêàòîðîì, îêàí÷èâàþùèìèñÿ äâîåòî÷èåì. Åñëè
3628
  èäåíòèôèêàòîð ñîäåðæèò õîòÿ áû îäèí ñèìâîë ñòðî÷íûõ áóêâ (áóêâ íèæíåãî
3627
  èäåíòèôèêàòîð ñîäåðæèò õîòÿ áû îäèí ñèìâîë ñòðî÷íûõ áóêâ (áóêâ íèæíåãî
3629
  ðåãèñòðà, ìàëåíüêèõ áóêâ), ýòî ãëîáàëüíàÿ ìåòêà ïåðåõîäà, â ïðîòèâíîì
3628
  ðåãèñòðà, ìàëåíüêèõ áóêâ), ýòî ãëîáàëüíàÿ ìåòêà ïåðåõîäà, â ïðîòèâíîì
3630
  ñëó÷àå, ýòî ëîêàëüíàÿ ìåòêà ïåðåõîäà.
3629
  ñëó÷àå, ýòî ëîêàëüíàÿ ìåòêà ïåðåõîäà.
3631
 
3630
 
3632
      Ãëîáàëüíûå ìåòêè ïåðåõîäà íå äîëæíû èñïîëüçîâàòüñÿ âíóòðè äèíàìè÷åñêèõ
3631
      Ãëîáàëüíûå ìåòêè ïåðåõîäà íå äîëæíû èñïîëüçîâàòüñÿ âíóòðè äèíàìè÷åñêèõ
3633
  ïðîöåäóð; òàì ìîæíî èñïîëüçîâàòü òîëüêî ëîêàëüíûå ìåòêè. Ýòî âàæíî ïîìíèòü,
3632
  ïðîöåäóð; òàì ìîæíî èñïîëüçîâàòü òîëüêî ëîêàëüíûå ìåòêè. Ýòî âàæíî ïîìíèòü,
3634
  ïîñêîëüêó, èç-çà ïðèìåíåíèÿ òàêîãî ñðåäñòâà êàê ìàêðîêîìàíäû, äèíàìè÷åñêàÿ
3633
  ïîñêîëüêó, èç-çà ïðèìåíåíèÿ òàêîãî ñðåäñòâà êàê ìàêðîêîìàíäû, äèíàìè÷åñêàÿ
3635
  ïðîöåäóðà ìîæåò ïðèñóòñòâîâàòü â íåñêîëüêèõ ìåñòàõ êîäà, ÷òî áóäåò
3634
  ïðîöåäóðà ìîæåò ïðèñóòñòâîâàòü â íåñêîëüêèõ ìåñòàõ êîäà, ÷òî áóäåò
3636
  îçíà÷àòü, ÷òî ìåòêå ñîîòâåòñòâóåò áîëüøå ÷åì îäèí àäðåñ.
3635
  îçíà÷àòü, ÷òî ìåòêå ñîîòâåòñòâóåò áîëüøå ÷åì îäèí àäðåñ.
3637
 
3636
 
3638
      Ìåòêè âíå ïðîöåäóð ôàêòè÷åñêè ðàñïîëàãàþòñÿ â îáëàñòè äàííûõ ïðîãðàììû.
3637
      Ìåòêè âíå ïðîöåäóð ôàêòè÷åñêè ðàñïîëàãàþòñÿ â îáëàñòè äàííûõ ïðîãðàììû.
3639
  Åñëè äàííûå è êîä íàõîäÿòñÿ â îäíîì ñåãìåíòå (à èìåííî òàê îðãàíèçîâàííà
3638
  Åñëè äàííûå è êîä íàõîäÿòñÿ â îäíîì ñåãìåíòå (à èìåííî òàê îðãàíèçîâàííà
3640
  ïðîãðàììà, íàïèñàííàÿ íà C--), òî ìåòêè âíå ïðîöåäóð ñòàíîâÿòñÿ ïðîñòûì è
3639
  ïðîãðàììà, íàïèñàííàÿ íà C--), òî ìåòêè âíå ïðîöåäóð ñòàíîâÿòñÿ ïðîñòûì è
3641
  ýôôåêòèâíûì ìåòîäîì äëÿ ïîëó÷åíèÿ ðàññòîÿíèé ìåæäó ÷àñòÿìè ïðîãðàììû. Â
3640
  ýôôåêòèâíûì ìåòîäîì äëÿ ïîëó÷åíèÿ ðàññòîÿíèé ìåæäó ÷àñòÿìè ïðîãðàììû. Â
3642
  êà÷åñòâå èìåí äëÿ ìåòîê âíå ïðîöåäóð ìîãóò áûòü èñïîëüçîâàíû óíèêàëüíûå
3641
  êà÷åñòâå èìåí äëÿ ìåòîê âíå ïðîöåäóð ìîãóò áûòü èñïîëüçîâàíû óíèêàëüíûå
3643
  èäåíòèôèêàòîðû, â êîòîðûõ ìîæíî èñïîëüçîâàòü áîëüøèå, ìàëåíüêèå è ñìåñü
3642
  èäåíòèôèêàòîðû, â êîòîðûõ ìîæíî èñïîëüçîâàòü áîëüøèå, ìàëåíüêèå è ñìåñü
3644
  áîëüøèõ è ìàëåíüêèõ áóêâ.
3643
  áîëüøèõ è ìàëåíüêèõ áóêâ.
3645
Return to contents.
3644
Return to contents.
3646
 
3645
 
3647
 
3646
 
3648
 
3647
 
3649
10. Àññåìáëåð.
3648
10. Àññåìáëåð.
3650
 
3649
 
3651
  10.1 Ïîääåðæêà êîìàíä àññåìáëåðà.
3650
  10.1 Ïîääåðæêà êîìàíä àññåìáëåðà.
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
 
3657
      Âñå èíñòðóêöèè âñòðîåííîãî àññåìáëåðà äîëæíû íà÷èíàòüñÿ ñ ñèìâîëà
3656
      Âñå èíñòðóêöèè âñòðîåííîãî àññåìáëåðà äîëæíû íà÷èíàòüñÿ ñ ñèìâîëà
3658
  äîëëàðà $. Ïîääåðæèâàåòñÿ òàêæå êëþ÷åâîå ñëîâî asm, êîòîðîå ÿâëÿÿñü
3657
  äîëëàðà $. Ïîääåðæèâàåòñÿ òàêæå êëþ÷åâîå ñëîâî asm, êîòîðîå ÿâëÿÿñü
3659
  ñèíîíèìîì ê ñèìâîëó äîëëàðà, åùå è ïîääåðæèâàåò îáúåäèíåíèå àññåìáëåðíûõ
3658
  ñèíîíèìîì ê ñèìâîëó äîëëàðà, åùå è ïîääåðæèâàåò îáúåäèíåíèå àññåìáëåðíûõ
3660
  èíñòðóêöèé â áëîêè.
3659
  èíñòðóêöèé â áëîêè.
3661
Return to contents.
3660
Return to contents.
3662
 
3661
 
3663
 
3662
 
3664
 
3663
 
3665
  10.2 Êëþ÷åâîå ñëîâî asm.
3664
  10.2 Êëþ÷åâîå ñëîâî asm.
3666
 
3665
 
3667
 
3666
 
3668
      Êëþ÷åâîå ñëîâî asm ÿâëÿåòñÿ ñèíîíèìîì ê $ - ïðåôèêñ àññåìáëåðíîé
3667
      Êëþ÷åâîå ñëîâî asm ÿâëÿåòñÿ ñèíîíèìîì ê $ - ïðåôèêñ àññåìáëåðíîé
3669
  êîìàíäû. Ïîñëå ñëîâà asm ìîæíî ïèñàòü áëîê àññåìáëåðíûõ êîìàíä.  Ïðèìåð:
3668
  êîìàíäû. Ïîñëå ñëîâà asm ìîæíî ïèñàòü áëîê àññåìáëåðíûõ êîìàíä.  Ïðèìåð:
3670
 
3669
 
3671
  	asm {
3670
        asm {
3672
  		.
3671
                .
3673
  		.
3672
                .
3674
  		push AX
3673
                push AX
3675
  labl:
3674
  labl:
3676
  		push BX
3675
                push BX
3677
  		mov AX,0x1234
3676
                mov AX,0x1234
3678
  		jmp short labl
3677
                jmp short labl
3679
  		.
3678
                .
3680
  		.
3679
                .
3681
  		.
3680
                .
3682
  	}
3681
        }
3683
 
3682
 
3684
    Ìåòêè âíóòðè áëîêà àññåìáëåðíûõ êîìàíä äîïóñòèìû.
3683
    Ìåòêè âíóòðè áëîêà àññåìáëåðíûõ êîìàíä äîïóñòèìû.
3685
Return to contents.
3684
Return to contents.
3686
 
3685
 
3687
 
3686
 
3688
 
3687
 
3689
  10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
3688
  10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
3690
 
3689
 
3691
 
3690
 
3692
      Äëÿ àññåìáëåðíûõ èíñòðóêöèè DB, DW, DD ââåäåíà âîçìîæíîñòü èñïîëüçîâàòü
3691
      Äëÿ àññåìáëåðíûõ èíñòðóêöèè DB, DW, DD ââåäåíà âîçìîæíîñòü èñïîëüçîâàòü
3693
  ïðåôèêñ ïîâòîðåíèé dup. Ïðèìåíåíèå ýòîãî ïðåôèêñà èìååò ñëåäóþùèé
3692
  ïðåôèêñ ïîâòîðåíèé dup. Ïðèìåíåíèå ýòîãî ïðåôèêñà èìååò ñëåäóþùèé
3694
  ñèíòàêñèñ:
3693
  ñèíòàêñèñ:
3695
 
3694
 
3696
    $DW NUMREP dup VALTOREP
3695
    $DW NUMREP dup VALTOREP
3697
 
3696
 
3698
  NUMREP - ÷èñëî ïîâòîðîâ èíñòðóêöèè DW.
3697
  NUMREP - ÷èñëî ïîâòîðîâ èíñòðóêöèè DW.
3699
  VALTOREP - âåëè÷èíà, êîòîðàÿ áóäåò ïîâòîðåíà NUMREP ðàç.
3698
  VALTOREP - âåëè÷èíà, êîòîðàÿ áóäåò ïîâòîðåíà NUMREP ðàç.
3700
 
3699
 
3701
       îòëè÷èå îò àíàëîãà ýòîãî ïðåôèêñà èç àññåìáëåðà ïîâòîðÿåìóþ âåëè÷èíó
3700
       îòëè÷èå îò àíàëîãà ýòîãî ïðåôèêñà èç àññåìáëåðà ïîâòîðÿåìóþ âåëè÷èíó
3702
  çàêëþ÷àòü â ñêîáêè íåëüçÿ.
3701
  çàêëþ÷àòü â ñêîáêè íåëüçÿ.
3703
Return to contents.
3702
Return to contents.
3704
 
3703
 
3705
 
3704
 
3706
 
3705
 
3707
  10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.
3706
  10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.
3708
 
3707
 
3709
 
3708
 
3710
      Â êîìïèëÿòîð äîáàâëåíà ïîääåðæêà 19 íîâûõ èíñòðóêöèé MMX ðàñøèðåíèÿ
3709
      Â êîìïèëÿòîð äîáàâëåíà ïîääåðæêà 19 íîâûõ èíñòðóêöèé MMX ðàñøèðåíèÿ
3711
 
3710
 
3712
  MASKMOVQ   mmx,mmx
3711
  MASKMOVQ   mmx,mmx
3713
  MOVNTQ     m64,mmx
3712
  MOVNTQ     m64,mmx
3714
  PAVGB      mmx,mmx/m64
3713
  PAVGB      mmx,mmx/m64
3715
  PAVGW      mmx,mmx/m64
3714
  PAVGW      mmx,mmx/m64
3716
  PEXTRW     r32,mmx,i8
3715
  PEXTRW     r32,mmx,i8
3717
  PINSRW     mmx,r32/m16,i8
3716
  PINSRW     mmx,r32/m16,i8
3718
  PMAXUB     mmx,mmx/m64
3717
  PMAXUB     mmx,mmx/m64
3719
  PMAXSW     mmx,mmx/m64
3718
  PMAXSW     mmx,mmx/m64
3720
  PMINUB     mmx,mmx/m64
3719
  PMINUB     mmx,mmx/m64
3721
  PMINSW     mmx,mmx/m64
3720
  PMINSW     mmx,mmx/m64
3722
  PMOVMSKB   r32,mmx
3721
  PMOVMSKB   r32,mmx
3723
  PMULHUW    mmx,mmx/m64
3722
  PMULHUW    mmx,mmx/m64
3724
  PREFETCHT0 mem
3723
  PREFETCHT0 mem
3725
  PREFETCHT1 mem
3724
  PREFETCHT1 mem
3726
  PREFETCHT2 mem
3725
  PREFETCHT2 mem
3727
  PREFETCHNTA mem
3726
  PREFETCHNTA mem
3728
  SFENCE
3727
  SFENCE
3729
  PSADBW     mmx,mmx/m64
3728
  PSADBW     mmx,mmx/m64
3730
  PSHUFW     mmx,mmx/m64,i8
3729
  PSHUFW     mmx,mmx/m64,i8
3731
 
3730
 
3732
      è 46 èíñòðóêöèé SSE ðàñøèðåíèÿ.
3731
      è 46 èíñòðóêöèé SSE ðàñøèðåíèÿ.
3733
 
3732
 
3734
  ADDPS      xmm,m128/xmm
3733
  ADDPS      xmm,m128/xmm
3735
  ADDSS      xmm,xmm/m32
3734
  ADDSS      xmm,xmm/m32
3736
  ANDNPS     xmm,xmm/m128
3735
  ANDNPS     xmm,xmm/m128
3737
  ANDPS      xmm,xmm/m128
3736
  ANDPS      xmm,xmm/m128
3738
  COMISS     xmm,xmm/m32
3737
  COMISS     xmm,xmm/m32
3739
  DIVPS      xmm,m128/xmm
3738
  DIVPS      xmm,m128/xmm
3740
  DIVSS      xmm,xmm/m32
3739
  DIVSS      xmm,xmm/m32
3741
  MAXPS      xmm,m128/xmm
3740
  MAXPS      xmm,m128/xmm
3742
  MAXSS      xmm,xmm/m32
3741
  MAXSS      xmm,xmm/m32
3743
  MINPS      xmm,m128/xmm
3742
  MINPS      xmm,m128/xmm
3744
  MINSS      xmm,xmm/m32
3743
  MINSS      xmm,xmm/m32
3745
  MULPS      xmm,m128/xmm
3744
  MULPS      xmm,m128/xmm
3746
  MULSS      xmm,xmm/m32
3745
  MULSS      xmm,xmm/m32
3747
  ORPS       xmm,xmm/m128
3746
  ORPS       xmm,xmm/m128
3748
  RCPPS      xmm,xmm/m128
3747
  RCPPS      xmm,xmm/m128
3749
  RCPSS      xmm,xmm/m32
3748
  RCPSS      xmm,xmm/m32
3750
  RSQRTPS    xmm,xmm/m128
3749
  RSQRTPS    xmm,xmm/m128
3751
  RSQRTSS    xmm,xmm/m32
3750
  RSQRTSS    xmm,xmm/m32
3752
  SQRTPS     xmm,m128/xmm
3751
  SQRTPS     xmm,m128/xmm
3753
  SQRTSS     xmm,xmm/m32
3752
  SQRTSS     xmm,xmm/m32
3754
  SUBPS      xmm,m128/xmm
3753
  SUBPS      xmm,m128/xmm
3755
  SUBSS      xmm,xmm/m32
3754
  SUBSS      xmm,xmm/m32
3756
  UCOMISS    xmm,xmm/m32
3755
  UCOMISS    xmm,xmm/m32
3757
  UNPCKHPS   xmm,xmm/m128
3756
  UNPCKHPS   xmm,xmm/m128
3758
  UNPCKLPS   xmm,xmm/m128
3757
  UNPCKLPS   xmm,xmm/m128
3759
  XORPS      xmm,xmm/m128
3758
  XORPS      xmm,xmm/m128
3760
  CMPPS      xmm,xmm/m128,i8
3759
  CMPPS      xmm,xmm/m128,i8
3761
  CMPSS      xmm,xmm/m32,i8
3760
  CMPSS      xmm,xmm/m32,i8
3762
  SHUFPS     xmm,xmm/m128,i8
3761
  SHUFPS     xmm,xmm/m128,i8
3763
  CVTPI2PS   xmm,m64/mmx
3762
  CVTPI2PS   xmm,m64/mmx
3764
  CVTSI2SS   xmm,m32/r32
3763
  CVTSI2SS   xmm,m32/r32
3765
  CVTPS2PI   mmx,m128/xmm
3764
  CVTPS2PI   mmx,m128/xmm
3766
  CVTTPS2PI  mmx,xmm/m128
3765
  CVTTPS2PI  mmx,xmm/m128
3767
  CVTSS2SI   r32,xmm/m128
3766
  CVTSS2SI   r32,xmm/m128
3768
  CVTTSS2SI  r32,xmm/m128
3767
  CVTTSS2SI  r32,xmm/m128
3769
  LDMXCSR    m32
3768
  LDMXCSR    m32
3770
  STMXCSR    m32
3769
  STMXCSR    m32
3771
  MOVHLPS    xmm,xmm
3770
  MOVHLPS    xmm,xmm
3772
  MOVLHPS    xmm,xmm
3771
  MOVLHPS    xmm,xmm
3773
  MOVMSKPS   r32,xmm
3772
  MOVMSKPS   r32,xmm
3774
  MOVNTPS    m128,xmm
3773
  MOVNTPS    m128,xmm
3775
  MOVAPS     m128/xmm,xmm/m128
3774
  MOVAPS     m128/xmm,xmm/m128
3776
  MOVSS      xmm/m32,xmm/m32
3775
  MOVSS      xmm/m32,xmm/m32
3777
  MOVUPS     xmm/m128,m128/xmm
3776
  MOVUPS     xmm/m128,m128/xmm
3778
  MOVHPS     xmm/m64,m64/xmm
3777
  MOVHPS     xmm/m64,m64/xmm
3779
  MOVLPS     xmm/m64,m64/xmm
3778
  MOVLPS     xmm/m64,m64/xmm
3780
 
3779
 
3781
      Ìíîãèå èç ýòèõ èíñòðóêöèé ìîãóò èñïîëüçîâàòü â êà÷åñòâå îïåðàíäà
3780
      Ìíîãèå èç ýòèõ èíñòðóêöèé ìîãóò èñïîëüçîâàòü â êà÷åñòâå îïåðàíäà
3782
  64-áèòíûå è 128-áèòíûå ÿ÷åéêè ïàìÿòè. Êîìïèëÿòîð C-- ñåé÷àñ ìîæåò ðàáîòàòü
3781
  64-áèòíûå è 128-áèòíûå ÿ÷åéêè ïàìÿòè. Êîìïèëÿòîð C-- ñåé÷àñ ìîæåò ðàáîòàòü
3783
  òîëüêî ñ 32-áèòíûìè ïåðåìåííûìè. Ïîýòîìó äëÿ èíñòðóêöèé èñïîëüçóþùèõ â
3782
  òîëüêî ñ 32-áèòíûìè ïåðåìåííûìè. Ïîýòîìó äëÿ èíñòðóêöèé èñïîëüçóþùèõ â
3784
  êà÷åñòâå îïåðàíäà ÿ÷åéêè ïàìÿòè ðàçìåðîì áîëüøå 32-áèò ìîæíî èñïîëüçîâàòü
3783
  êà÷åñòâå îïåðàíäà ÿ÷åéêè ïàìÿòè ðàçìåðîì áîëüøå 32-áèò ìîæíî èñïîëüçîâàòü
3785
  ïåðåìåííûå ëþáûõ òèïîâ. Êîìïèëÿòîð íå áóäåò âûäàâàòü íà ýòî ñîîáùåíèé îá
3784
  ïåðåìåííûå ëþáûõ òèïîâ. Êîìïèëÿòîð íå áóäåò âûäàâàòü íà ýòî ñîîáùåíèé îá
3786
  îøèáêå, áóäåò èñïîëüçîâàí àäðåñ ýòîé ïåðåìåííîé, à ñàìà èíñòðóêöèÿ áóäåò
3785
  îøèáêå, áóäåò èñïîëüçîâàí àäðåñ ýòîé ïåðåìåííîé, à ñàìà èíñòðóêöèÿ áóäåò
3787
  èñïîëüçîâàòü íóæíîå åé ÷èñëî áèòîâ ïàìÿòè, íà÷èíàÿ ñ àäðåñà óêàçàííîé
3786
  èñïîëüçîâàòü íóæíîå åé ÷èñëî áèòîâ ïàìÿòè, íà÷èíàÿ ñ àäðåñà óêàçàííîé
3788
  ïåðåìåííîé. Íàïðèìåð:
3787
  ïåðåìåííîé. Íàïðèìåð:
3789
 
3788
 
3790
      Äëÿ èíñòðóêöèè movaps îäèí èç îïåðàíäîâ ìîæåò áûòü 128-áèòíîé
3789
      Äëÿ èíñòðóêöèè movaps îäèí èç îïåðàíäîâ ìîæåò áûòü 128-áèòíîé
3791
  ÿ÷åéêîé ïàìÿòè. Äëÿ ýòîé èíñòðóêöèè äîïóñòèìû ñëåäóþùèé ñèíòàêñèñ:
3790
  ÿ÷åéêîé ïàìÿòè. Äëÿ ýòîé èíñòðóêöèè äîïóñòèìû ñëåäóþùèé ñèíòàêñèñ:
3792
 
3791
 
3793
  byte  var8_128[16];
3792
  byte  var8_128[16];
3794
  word  var16_128[8];
3793
  word  var16_128[8];
3795
  dword var32_128[4];
3794
  dword var32_128[4];
3796
 
3795
 
3797
  void proc()
3796
  void proc()
3798
  {
3797
  {
3799
  asm{
3798
  asm{
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.
3806
 
3805
 
3807
 
3806
 
3808
 
3807
 
3809
11. Ïðîöåäóðû.
3808
11. Ïðîöåäóðû.
3810
 
3809
 
3811
  11.1 Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
3810
  11.1 Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
3812
 
3811
 
3813
 
3812
 
3814
      Ñåé÷àñ C-- ïîääåðæèâàåò 4 òèïà âûçîâà ïðîöåäóð: cdecl, pascal, stdcall
3813
      Ñåé÷àñ C-- ïîääåðæèâàåò 4 òèïà âûçîâà ïðîöåäóð: cdecl, pascal, stdcall
3815
  è fastcall. Âîò êðàòêèå õàðàêòåðèñòèêè ýòèõ òèïîâ âûçîâîâ ïðîöåäóð:
3814
  è fastcall. Âîò êðàòêèå õàðàêòåðèñòèêè ýòèõ òèïîâ âûçîâîâ ïðîöåäóð:
3816
 
3815
 
3817
  cdecl  Ýòîò òèï âûçîâà ïðîöåäóð ÿâëÿåòñÿ ïî óìîë÷àíèþ äëÿ ÿçûêà Ñ. Îí
3816
  cdecl  Ýòîò òèï âûçîâà ïðîöåäóð ÿâëÿåòñÿ ïî óìîë÷àíèþ äëÿ ÿçûêà Ñ. Îí
3818
  õàðàêòåðèçóåòñÿ òåì, ÷òî ïàðàìåòðû ïðîöåäóðû ïåðåäàþòñÿ â ïîðÿäêå îáðàòíîì
3817
  õàðàêòåðèçóåòñÿ òåì, ÷òî ïàðàìåòðû ïðîöåäóðû ïåðåäàþòñÿ â ïîðÿäêå îáðàòíîì
3819
  èõ çàïèñè. Î÷èñòêà ñòåêà îò ïàðàìåòðîâ ïðîèçâîäèòñÿ ïîñëå çàâåðøåíèÿ ðàáîòû
3818
  èõ çàïèñè. Î÷èñòêà ñòåêà îò ïàðàìåòðîâ ïðîèçâîäèòñÿ ïîñëå çàâåðøåíèÿ ðàáîòû
3820
  ïðîöåäóðû. Ýòîò ñïîñîá âûçîâà ïðîöåäóð î÷åíü óäîáåí äëÿ ïðîöåäóð ñ
3819
  ïðîöåäóðû. Ýòîò ñïîñîá âûçîâà ïðîöåäóð î÷åíü óäîáåí äëÿ ïðîöåäóð ñ
3821
  ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ.
3820
  ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ.
3822
 
3821
 
3823
  pascal  Ýòîò òèï âûçîâà ïðåäïîëàãàåò, ÷òî ïàðàìåòðû ïåðåäàþòñÿ â òîì
3822
  pascal  Ýòîò òèï âûçîâà ïðåäïîëàãàåò, ÷òî ïàðàìåòðû ïåðåäàþòñÿ â òîì
3824
  ïîðÿäêå, â êîòîðîì îíè çàïèñàíû â ïðîãðàììå. Îñâîáîæäåíèå ñòåêà îò
3823
  ïîðÿäêå, â êîòîðîì îíè çàïèñàíû â ïðîãðàììå. Îñâîáîæäåíèå ñòåêà îò
3825
  ïàðàìåòðîâ ïðîèçâîäèò ñàìà âûçûâàåìàÿ ïðîöåäóðà. Ýòîò òèï âûçîâà ÿâëÿåòñÿ
3824
  ïàðàìåòðîâ ïðîèçâîäèò ñàìà âûçûâàåìàÿ ïðîöåäóðà. Ýòîò òèï âûçîâà ÿâëÿåòñÿ
3826
  áîëåå êîìïàêòíûì, ÷åì cdecl.
3825
  áîëåå êîìïàêòíûì, ÷åì cdecl.
3827
 
3826
 
3828
  stdcall  Ýòîò òèï âûçîâà ÿâëÿåòñÿ ãèáðèäîì ïåðâûõ äâóõ. Ïàðàìåòðû
3827
  stdcall  Ýòîò òèï âûçîâà ÿâëÿåòñÿ ãèáðèäîì ïåðâûõ äâóõ. Ïàðàìåòðû
3829
  ïåðåäàþòñÿ ïðîöåäóðå â ïîðÿäêå îáðàòíîì, òîìó â êîòîðîì îíè çàïèñàíû â
3828
  ïåðåäàþòñÿ ïðîöåäóðå â ïîðÿäêå îáðàòíîì, òîìó â êîòîðîì îíè çàïèñàíû â
3830
  ïðîãðàììå. Îñâîáîæäåíèå ñòåêà îò ïàðàìåòðîâ ïðîèçâîäèòñÿ â ñàìîé âûçûâàåìîé
3829
  ïðîãðàììå. Îñâîáîæäåíèå ñòåêà îò ïàðàìåòðîâ ïðîèçâîäèòñÿ â ñàìîé âûçûâàåìîé
3831
  ïðîöåäóðå.
3830
  ïðîöåäóðå.
3832
 
3831
 
3833
  fastcall  Ýòîò òèï âûçîâà ïðîöåäóð ïðåäïîëàãàåò ÷òî ïåðåäà÷à ïàðàìåòðîâ
3832
  fastcall  Ýòîò òèï âûçîâà ïðîöåäóð ïðåäïîëàãàåò ÷òî ïåðåäà÷à ïàðàìåòðîâ
3834
  ïðîöåäóðå ïðîèçâîäèòñÿ ÷åðåç ðåãèñòðû, òåì ñàìûì îòïàäàåò íåîáõîäèìîñòü
3833
  ïðîöåäóðå ïðîèçâîäèòñÿ ÷åðåç ðåãèñòðû, òåì ñàìûì îòïàäàåò íåîáõîäèìîñòü
3835
  îñâîáîæäåíèÿ ñòåêà îò ïàðàìåòðîâ. Äëÿ ýòîãî òèïà âûçîâà ïðîöåäóðû
3834
  îñâîáîæäåíèÿ ñòåêà îò ïàðàìåòðîâ. Äëÿ ýòîãî òèïà âûçîâà ïðîöåäóðû
3836
  ñóùåñòâóþò îãðàíè÷åíèÿ ïî ÷èñëó ïåðåäàâàåìûõ ïàðàìåòðîâ. Äëÿ C ýòî òðè
3835
  ñóùåñòâóþò îãðàíè÷åíèÿ ïî ÷èñëó ïåðåäàâàåìûõ ïàðàìåòðîâ. Äëÿ C ýòî òðè
3837
  ïàðàìåòðà, à äëÿ C-- øåñòü.  C-- ïàðàìåòðû ïåðåäàþòñÿ ïî óìîë÷àíèþ â
3836
  ïàðàìåòðà, à äëÿ C-- øåñòü.  C-- ïàðàìåòðû ïåðåäàþòñÿ ïî óìîë÷àíèþ â
3838
  ñëåäóþùåì ïîðÿäêå: 1-é - AX/EAX, 2-é - BX/EBX, 3 - CX/ECX, 4 - DX/EDX, 5 -
3837
  ñëåäóþùåì ïîðÿäêå: 1-é - AX/EAX, 2-é - BX/EBX, 3 - CX/ECX, 4 - DX/EDX, 5 -
3839
  DI/EDI, 6 - SI/ESI. Ïàðàìåòðû òèïîâ char èëè byte ìîãóò ïåðåäàâàòüñÿ â
3838
  DI/EDI, 6 - SI/ESI. Ïàðàìåòðû òèïîâ char èëè byte ìîãóò ïåðåäàâàòüñÿ â
3840
  êîëè÷åñòâå íå áîëåå 4 èëè òîëüêî â ïåðâûõ 4 ðåãèñòðàõ: 1 - AL, 2 - BL, 3 -
3839
  êîëè÷åñòâå íå áîëåå 4 èëè òîëüêî â ïåðâûõ 4 ðåãèñòðàõ: 1 - AL, 2 - BL, 3 -
3841
  CL, 4 - DL. Ýòîò ïîðÿäîê ðåãèñòðîâ ìîæåò áûòü èçìåíåí, åñëè ÿâíî óêàçàòü
3840
  CL, 4 - DL. Ýòîò ïîðÿäîê ðåãèñòðîâ ìîæåò áûòü èçìåíåí, åñëè ÿâíî óêàçàòü
3842
  åãî ëèáî ïðè îáúÿâëåíèè ïðîöåäóðû, ëèáî ïðè åå îïðåäåëåíèè. Ïðîöåäóðû òèïà
3841
  åãî ëèáî ïðè îáúÿâëåíèè ïðîöåäóðû, ëèáî ïðè åå îïðåäåëåíèè. Ïðîöåäóðû òèïà
3843
  fastcall èíîãäà åùå íàçûâàþò ðåãèñòðîâûìè.
3842
  fastcall èíîãäà åùå íàçûâàþò ðåãèñòðîâûìè.
3844
 
3843
 
3845
       C-- ïî óìîë÷àíèþ, åñëè èìÿ ïðîöåäóðû íàïèñàíî áîëüøèìè áóêâàìè, òî
3844
       C-- ïî óìîë÷àíèþ, åñëè èìÿ ïðîöåäóðû íàïèñàíî áîëüøèìè áóêâàìè, òî
3846
  ñ÷èòàåòñÿ, ÷òî ýòà ïðîöåäóðà èìååò òèï âûçîâà fastcall. Åñëè æå â èìåíè
3845
  ñ÷èòàåòñÿ, ÷òî ýòà ïðîöåäóðà èìååò òèï âûçîâà fastcall. Åñëè æå â èìåíè
3847
  ïðîöåäóðû åñòü õîòÿ áû îäíà ìàëåíüêàÿ áóêâà, òî ïî óìîë÷àíèþ ñ÷èòàåòñÿ, ÷òî
3846
  ïðîöåäóðû åñòü õîòÿ áû îäíà ìàëåíüêàÿ áóêâà, òî ïî óìîë÷àíèþ ñ÷èòàåòñÿ, ÷òî
3848
  ýòà ïðîöåäóðà èìååò òèï âûçîâà pascal, çà èñêëþ÷åíèåì ïðîãðàìì
3847
  ýòà ïðîöåäóðà èìååò òèï âûçîâà pascal, çà èñêëþ÷åíèåì ïðîãðàìì
3849
  êîìïèëèðóåìûõ ñ êëþ÷îì /w32 /w32c èëè /DLL.  íèõ ïî óìîë÷àíèþ ïðèìåíÿåòñÿ
3848
  êîìïèëèðóåìûõ ñ êëþ÷îì /w32 /w32c èëè /DLL.  íèõ ïî óìîë÷àíèþ ïðèìåíÿåòñÿ
3850
  òèï âûçîâà ïðîöåäóð stdcall. Åñëè æå Âû õîòèòå èçìåíèòü òèï âûçîâà ïðîöåäóð
3849
  òèï âûçîâà ïðîöåäóð stdcall. Åñëè æå Âû õîòèòå èçìåíèòü òèï âûçîâà ïðîöåäóð
3851
  èç ïî óìîë÷àíèþ íà ëþáîé äðóãîé, òî ýòó ïðîöåäóðó íàäî îáÿçàòåëüíî îáúÿâèòü
3850
  èç ïî óìîë÷àíèþ íà ëþáîé äðóãîé, òî ýòó ïðîöåäóðó íàäî îáÿçàòåëüíî îáúÿâèòü
3852
  ñ óêàçàíèåì òèïà æåëàåìîãî âûçîâà.
3851
  ñ óêàçàíèåì òèïà æåëàåìîãî âûçîâà.
3853
 
3852
 
3854
      Îáúÿâëåíèå ïðîöåäóð ââåäåíî äëÿ òîãî, ÷òîáû ñîîáùàòü êîìïèëÿòîðó î
3853
      Îáúÿâëåíèå ïðîöåäóð ââåäåíî äëÿ òîãî, ÷òîáû ñîîáùàòü êîìïèëÿòîðó î
3855
  òèïå âîçâðàòà èç ïðîöåäóð, ñïîñîáå ïåðåäà÷è ïàðàìåòðîâ ïðîöåäóðå è èõ ÷èñëå.
3854
  òèïå âîçâðàòà èç ïðîöåäóð, ñïîñîáå ïåðåäà÷è ïàðàìåòðîâ ïðîöåäóðå è èõ ÷èñëå.
3856
Return to contents.
3855
Return to contents.
3857
 
3856
 
3858
 
3857
 
3859
 
3858
 
3860
  11.2 Ñòåêîâûå ïðîöåäóðû.
3859
  11.2 Ñòåêîâûå ïðîöåäóðû.
3861
 
3860
 
3862
 
3861
 
3863
      Ñòåêîâûå ïðîöåäóðû ïî óìîë÷àíèþ îáúÿâëÿþòñÿ ïðè ïîìîùè èäåíòèôèêàòîðà,
3862
      Ñòåêîâûå ïðîöåäóðû ïî óìîë÷àíèþ îáúÿâëÿþòñÿ ïðè ïîìîùè èäåíòèôèêàòîðà,
3864
  êîòîðûé ñîäåðæèò, ïî êðàéíåé ìåðå, îäèí ñèìâîë ñòðî÷íûõ áóêâ (áóêâ íèæíåãî
3863
  êîòîðûé ñîäåðæèò, ïî êðàéíåé ìåðå, îäèí ñèìâîë ñòðî÷íûõ áóêâ (áóêâ íèæíåãî
3865
  ðåãèñòðà, ìàëåíüêèõ áóêâ). Òàêèì îáðàçîì, ñòåêîâûå ïðîöåäóðû ëåãêî îòëè÷èìû
3864
  ðåãèñòðà, ìàëåíüêèõ áóêâ). Òàêèì îáðàçîì, ñòåêîâûå ïðîöåäóðû ëåãêî îòëè÷èìû
3866
  îò ðåãèñòðîâûõ ïðîöåäóð, ïîñêîëüêó äëÿ èìåí ðåãèñòðîâûõ ïðîöåäóð ñèìâîëû
3865
  îò ðåãèñòðîâûõ ïðîöåäóð, ïîñêîëüêó äëÿ èìåí ðåãèñòðîâûõ ïðîöåäóð ñèìâîëû
3867
  ñòðî÷íûõ áóêâ çàïðåùåíû.
3866
  ñòðî÷íûõ áóêâ çàïðåùåíû.
3868
 
3867
 
3869
      Ïàðàìåòðû äëÿ ñòåêîâûõ ïðîöåäóð, åñëè îíè åñòü, ìîãóò èìåòü ëþáîé òèï
3868
      Ïàðàìåòðû äëÿ ñòåêîâûõ ïðîöåäóð, åñëè îíè åñòü, ìîãóò èìåòü ëþáîé òèï
3870
  byte, char, word, int, dword, long èëè float.
3869
  byte, char, word, int, dword, long èëè float.
3871
 
3870
 
3872
      Ïàðàìåòðû ïåðåäàþòñÿ â ñîîòâåòñòâèè ñ ïðàâèëàìè, ïðèíÿòûìè äëÿ äàííîãî
3871
      Ïàðàìåòðû ïåðåäàþòñÿ â ñîîòâåòñòâèè ñ ïðàâèëàìè, ïðèíÿòûìè äëÿ äàííîãî
3873
  òèïà ïðîöåäóð. Åñëè ïðîöåäóðà íå èìååò îáúÿâëåíèÿ, òî êîìïèëÿòîð íå ñëåäèò
3872
  òèïà ïðîöåäóð. Åñëè ïðîöåäóðà íå èìååò îáúÿâëåíèÿ, òî êîìïèëÿòîð íå ñëåäèò
3874
  çà ÷èñëîì è òèïîì ïåðåäàâàåìûõ ïàðàìåòðîâ.  ýòîì ñëó÷àå ó Âàñ ïîÿâëÿåòñÿ
3873
  çà ÷èñëîì è òèïîì ïåðåäàâàåìûõ ïàðàìåòðîâ.  ýòîì ñëó÷àå ó Âàñ ïîÿâëÿåòñÿ
3875
  ñâîáîäà â èõ èñïîëüçîâàíèè, íî Âû äîëæíû îñîçíàâàòü è ïîñëåäñòâè
3874
  ñâîáîäà â èõ èñïîëüçîâàíèè, íî Âû äîëæíû îñîçíàâàòü è ïîñëåäñòâè
3876
  íåïðàâèëüíîãî èõ èñïîëüçîâàíèÿ.
3875
  íåïðàâèëüíîãî èõ èñïîëüçîâàíèÿ.
3877
 
3876
 
3878
      Â ñïèñêå ïàðàìåòðîâ äëÿ êàæäîãî ïàðàìåòðà óêàçûâàåòñÿ åãî òèï.
3877
      Â ñïèñêå ïàðàìåòðîâ äëÿ êàæäîãî ïàðàìåòðà óêàçûâàåòñÿ åãî òèï.
3879
  Ïàðàìåòðû îäíîãî òèïà, èäóùèå ïîäðÿä, ðàçäåëÿþòñÿ çàïÿòûìè. Ôîðìàëüíûå
3878
  Ïàðàìåòðû îäíîãî òèïà, èäóùèå ïîäðÿä, ðàçäåëÿþòñÿ çàïÿòûìè. Ôîðìàëüíûå
3880
  ïàðàìåòðû ðàçíîãî òèïà â îáúÿâëåíèè ôóíêöèè ðàçäåëÿþòñÿ ñèìâîëîì ;.
3879
  ïàðàìåòðû ðàçíîãî òèïà â îáúÿâëåíèè ôóíêöèè ðàçäåëÿþòñÿ ñèìâîëîì ;.
3881
 
3880
 
3882
      Â ñëåäóþùåì ïðèìåðå ñòåêîâàÿ ïðîöåäóðà âîçâðàùàåò ñóììó âñåõ ñâîèõ
3881
      Â ñëåäóþùåì ïðèìåðå ñòåêîâàÿ ïðîöåäóðà âîçâðàùàåò ñóììó âñåõ ñâîèõ
3883
  ïàðàìåòðîâ (èìåþùèõ ðàçëè÷íûå òèïû) êàê âåëè÷èíó òèïà word:
3882
  ïàðàìåòðîâ (èìåþùèõ ðàçëè÷íûå òèïû) êàê âåëè÷èíó òèïà word:
3884
 
3883
 
3885
  	word add_them_all (int a,b,c; byte d,e; word x,y)
3884
        word add_them_all (int a,b,c; byte d,e; word x,y)
3886
  	{
3885
        {
3887
  	return( a+b+c+d+e+x+y );
3886
        return( a+b+c+d+e+x+y );
3888
  	}
3887
        }
3889
 
3888
 
3890
      Ðàíåå C-- äåëàë âûçîâû ñòåêîâûõ ïðîöåäóð ëèøü â ñòèëå pascal.
3889
      Ðàíåå C-- äåëàë âûçîâû ñòåêîâûõ ïðîöåäóð ëèøü â ñòèëå pascal.
3891
  Ïðåèìóùåñòâîì ýòîãî ñïîñîáà âûçîâà ïðîöåäóð ÿâëÿåòñÿ êîìïàêòíîñòü è áîëåå
3890
  Ïðåèìóùåñòâîì ýòîãî ñïîñîáà âûçîâà ïðîöåäóð ÿâëÿåòñÿ êîìïàêòíîñòü è áîëåå
3892
  ïðîñòîé ìåõàíèçì ãåíåðàöèè êîäà. Ê íåäîñòàòêàì, à ñîîòâåòñòâåííî è
3891
  ïðîñòîé ìåõàíèçì ãåíåðàöèè êîäà. Ê íåäîñòàòêàì, à ñîîòâåòñòâåííî è
3893
  ïðåèìóùåñòâàì Ñ-ñòèëÿ, ìîæíî îòíåñòè æåñòêóþ ïðèâÿçàííîñòü ïàñêàëåâñêèõ
3892
  ïðåèìóùåñòâàì Ñ-ñòèëÿ, ìîæíî îòíåñòè æåñòêóþ ïðèâÿçàííîñòü ïàñêàëåâñêèõ
3894
  ïðîöåäóð ê ÷èñëó è òèïó ïåðåäàâàåìûõ ïàðàìåòðîâ (ïîïðîáóéòå ïðè âûçîâå
3893
  ïðîöåäóð ê ÷èñëó è òèïó ïåðåäàâàåìûõ ïàðàìåòðîâ (ïîïðîáóéòå ïðè âûçîâå
3895
  ïðîöåäóðû â ñòèëå pascal îïóñòèòü îäèí ïàðàìåòð è ïîëó÷èòå 100% çàâèñàíèå).
3894
  ïðîöåäóðû â ñòèëå pascal îïóñòèòü îäèí ïàðàìåòð è ïîëó÷èòå 100% çàâèñàíèå).
3896
  Íàïîìíþ íåêîòîðûå òåõíè÷åñêèå äåòàëè îáîèõ òèïîâ âûçîâîâ ïðîöåäóð.
3895
  Íàïîìíþ íåêîòîðûå òåõíè÷åñêèå äåòàëè îáîèõ òèïîâ âûçîâîâ ïðîöåäóð.
3897
 
3896
 
3898
  Êàäð ñòåêà C-- äëÿ áëèçêèõ ïðîöåäóð ñòåêà â ñòèëå pascal:
3897
  Êàäð ñòåêà C-- äëÿ áëèçêèõ ïðîöåäóð ñòåêà â ñòèëå pascal:
3899
       ÀÄÐÅÑ
3898
       ÀÄÐÅÑ
3900
        ...
3899
        ...
3901
      BP + FFFE ïðåäïîñëåäíèé áàéòà ëîêàëüíûõ ïåðåìåííûõ
3900
      BP + FFFE ïðåäïîñëåäíèé áàéòà ëîêàëüíûõ ïåðåìåííûõ
3902
      BP + FFFF ïîñëåäíèé áàéò ëîêàëüíûõ ïåðåìåííûõ
3901
      BP + FFFF ïîñëåäíèé áàéò ëîêàëüíûõ ïåðåìåííûõ
3903
      BP + 0000 Ñîõðàíåííûé BP
3902
      BP + 0000 Ñîõðàíåííûé BP
3904
      BP + 0002 RET àäðåñ
3903
      BP + 0002 RET àäðåñ
3905
      BP + 0004 ïîñëåäíåå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ (åñëè îíè
3904
      BP + 0004 ïîñëåäíåå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ (åñëè îíè
3906
                åñòü)
3905
                åñòü)
3907
      BP + 0006 ïðåäïîñëåäíåå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3906
      BP + 0006 ïðåäïîñëåäíåå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3908
       ...
3907
       ...
3909
      BP + nnnn ïåðâîå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3908
      BP + nnnn ïåðâîå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3910
 
3909
 
3911
      Îñâîáîæäåíèå ñòåêà îò ïåðåäàííûõ ïðîöåäóðå ïàðàìåòðîâ ïðîèñõîäèò ïðÿìî
3910
      Îñâîáîæäåíèå ñòåêà îò ïåðåäàííûõ ïðîöåäóðå ïàðàìåòðîâ ïðîèñõîäèò ïðÿìî
3912
  â ñàìîé ïðîöåäóðå êîìàíäîé RET nnnn - ãäå nnnn ÿâëÿåòñÿ ðàçìåðîì ïåðåäàííûõ
3911
  â ñàìîé ïðîöåäóðå êîìàíäîé RET nnnn - ãäå nnnn ÿâëÿåòñÿ ðàçìåðîì ïåðåäàííûõ
3913
  â ñòåê ïàðàìåòðîâ.
3912
  â ñòåê ïàðàìåòðîâ.
3914
 
3913
 
3915
  Êàäð ñòåêà C-- äëÿ áëèçêèõ ïðîöåäóð ñòåêà â ñòèëå ñè:
3914
  Êàäð ñòåêà C-- äëÿ áëèçêèõ ïðîöåäóð ñòåêà â ñòèëå ñè:
3916
       ÀÄÐÅÑ
3915
       ÀÄÐÅÑ
3917
        ...
3916
        ...
3918
      BP + FFFE ïðåäïîñëåäíèé áàéòà ëîêàëüíûõ ïåðåìåííûõ
3917
      BP + FFFE ïðåäïîñëåäíèé áàéòà ëîêàëüíûõ ïåðåìåííûõ
3919
      BP + FFFF ïîñëåäíèé áàéò ëîêàëüíûõ ïåðåìåííûõ
3918
      BP + FFFF ïîñëåäíèé áàéò ëîêàëüíûõ ïåðåìåííûõ
3920
      BP + 0000 Ñîõðàíåííûé BP
3919
      BP + 0000 Ñîõðàíåííûé BP
3921
      BP + 0002 RET àäðåñ
3920
      BP + 0002 RET àäðåñ
3922
      BP + 0004 ïåðâîå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ (åñëè îíè
3921
      BP + 0004 ïåðâîå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ (åñëè îíè
3923
                åñòü)
3922
                åñòü)
3924
      BP + 0006 âòîðîå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3923
      BP + 0006 âòîðîå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3925
       ...
3924
       ...
3926
      BP + nnnn ïîñëåäíåå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3925
      BP + nnnn ïîñëåäíåå ñëîâî ïåðåäàâàåìûõ ïðîöåäóðå ïàðàìåòðîâ
3927
 
3926
 
3928
      Ïðîöåäóðû â ñòèëå Ñ çàêàí÷èâàþòñÿ êîìàíäîé RET. Îñâîáîæäåíèå ñòåêà îò
3927
      Ïðîöåäóðû â ñòèëå Ñ çàêàí÷èâàþòñÿ êîìàíäîé RET. Îñâîáîæäåíèå ñòåêà îò
3929
  ïàðàìåòðîâ ïðîèñõîäèò â òîì ìåñòå îòêóäà áûëà âûçâàíà ïðîöåäóðà. Îáû÷íî ýòî
3928
  ïàðàìåòðîâ ïðîèñõîäèò â òîì ìåñòå îòêóäà áûëà âûçâàíà ïðîöåäóðà. Îáû÷íî ýòî
3930
  äåëàåòñÿ êîìàíäîé ADD SP,nnnn. Ò.å. êîìïèëÿòîð ìîæåò òî÷íî çíàòü ñêîëüêî è
3929
  äåëàåòñÿ êîìàíäîé ADD SP,nnnn. Ò.å. êîìïèëÿòîð ìîæåò òî÷íî çíàòü ñêîëüêî è
3931
  êàêèõ ïàðàìåòðîâ Âû ïåðåäàåòå â äàííîì ñëó÷àå ïðîöåäóðå è ñîîòâåòñòâåííî
3930
  êàêèõ ïàðàìåòðîâ Âû ïåðåäàåòå â äàííîì ñëó÷àå ïðîöåäóðå è ñîîòâåòñòâåííî
3932
  îñâîáîæäàåò ñòåê ïîñëå çàâåðøåíèÿ ïðîöåäóðû. Ýòî î÷åíü óäîáíî äëÿ ïðîöåäóð,
3931
  îñâîáîæäàåò ñòåê ïîñëå çàâåðøåíèÿ ïðîöåäóðû. Ýòî î÷åíü óäîáíî äëÿ ïðîöåäóð,
3933
  êîòîðûå ìîãóò îáðàáàòûâàòü ïåðåìåííîå ÷èñëî ïàðàìåòðîâ (íàïðèìåð, ïðîöåäóðû
3932
  êîòîðûå ìîãóò îáðàáàòûâàòü ïåðåìåííîå ÷èñëî ïàðàìåòðîâ (íàïðèìåð, ïðîöåäóðû
3934
  òèïà printf).
3933
  òèïà printf).
3935
 
3934
 
3936
      Îáúÿâëåíèå ïðîöåäóðû èìååò ñëåäóþùèé âèä:
3935
      Îáúÿâëåíèå ïðîöåäóðû èìååò ñëåäóþùèé âèä:
3937
 
3936
 
3938
    rettype modif procname();
3937
    rettype modif procname();
3939
 
3938
 
3940
      Ïåðâûì èäåò íåîáÿçàòåëüíûé òèï âîçâðàòà èç ïðîöåäóð. Ïî óìîë÷àíèþ îí
3939
      Ïåðâûì èäåò íåîáÿçàòåëüíûé òèï âîçâðàòà èç ïðîöåäóð. Ïî óìîë÷àíèþ îí
3941
  äëÿ 16-áèòíûõ ïðîãðàìì ðàâåí word, à äëÿ 32-áèòíûõ dword. Çàòåì äîëæåí èäòè
3940
  äëÿ 16-áèòíûõ ïðîãðàìì ðàâåí word, à äëÿ 32-áèòíûõ dword. Çàòåì äîëæåí èäòè
3942
  òàêæå íåîáÿçàòåëüíûé ìîäèôèêàòîð. Ïî óìîë÷àíèþ âñå ñòåêîâûå ïðîöåäóðû â C--
3941
  òàêæå íåîáÿçàòåëüíûé ìîäèôèêàòîð. Ïî óìîë÷àíèþ âñå ñòåêîâûå ïðîöåäóðû â C--
3943
  (çà èñêëþ÷åíèåì ðåæèìà êîìïèëÿöèè ïðîãðàìì ïîä Windows, ãäå ïî óìîë÷àíèþ
3942
  (çà èñêëþ÷åíèåì ðåæèìà êîìïèëÿöèè ïðîãðàìì ïîä Windows, ãäå ïî óìîë÷àíèþ
3944
  äåéñòâóåò ñòèëü âûçîâà ïðîöåäóð stdcall) èìåþò ñòèëü pascal. Äàëåå èäåò èì
3943
  äåéñòâóåò ñòèëü âûçîâà ïðîöåäóð stdcall) èìåþò ñòèëü pascal. Äàëåå èäåò èì
3945
  ïðîöåäóðû ñî ñêîáêàìè, êîòîðûå ÿâëÿþòñÿ ïðèçíàêîì òîãî ÷òî Âû îáúÿâëÿåòå
3944
  ïðîöåäóðû ñî ñêîáêàìè, êîòîðûå ÿâëÿþòñÿ ïðèçíàêîì òîãî ÷òî Âû îáúÿâëÿåòå
3946
  ïðîöåäóðó, à íå ïåðåìåííóþ. Çàâåðøàåò îáúÿâëåíèå ñèìâîë òî÷êà ñ çàïÿòîé.
3945
  ïðîöåäóðó, à íå ïåðåìåííóþ. Çàâåðøàåò îáúÿâëåíèå ñèìâîë òî÷êà ñ çàïÿòîé.
3947
 
3946
 
3948
      Ïðè îáúÿâëåíèè ïðîöåäóð â C-- ïðîïèñûâàòü ïàðàìåòðû ïðîöåäóðû
3947
      Ïðè îáúÿâëåíèè ïðîöåäóð â C-- ïðîïèñûâàòü ïàðàìåòðû ïðîöåäóðû
3949
  íåîáÿçàòåëüíî (òîãäà êîìïèëÿòîð íå áóäåò êîíòðîëèðîâàòü ÷èñëî è òèï
3948
  íåîáÿçàòåëüíî (òîãäà êîìïèëÿòîð íå áóäåò êîíòðîëèðîâàòü ÷èñëî è òèï
3950
  ïåðåäàâàåìûõ ïàðàìåòðîâ), íî åñëè Âû èõ âñòàâèòå, òî âêëþ÷èòñÿ ìåõàíèçì
3949
  ïåðåäàâàåìûõ ïàðàìåòðîâ), íî åñëè Âû èõ âñòàâèòå, òî âêëþ÷èòñÿ ìåõàíèçì
3951
  êîíòðîëÿ çà ÷èñëîì è òèïîì ïàðàìåòðîâ.
3950
  êîíòðîëÿ çà ÷èñëîì è òèïîì ïàðàìåòðîâ.
3952
Return to contents.
3951
Return to contents.
3953
 
3952
 
3954
 
3953
 
3955
 
3954
 
3956
  11.3 Ðåãèñòðîâûå ïðîöåäóðû.
3955
  11.3 Ðåãèñòðîâûå ïðîöåäóðû.
3957
 
3956
 
3958
 
3957
 
3959
      Ðåãèñòðîâûå ïðîöåäóðû îïðåäåëÿþòñÿ, ïî óìîë÷àíèþ, ïðè ïîìîùè
3958
      Ðåãèñòðîâûå ïðîöåäóðû îïðåäåëÿþòñÿ, ïî óìîë÷àíèþ, ïðè ïîìîùè
3960
  èäåíòèôèêàòîðà, êîòîðûé íå ñîäåðæèò ñèìâîëîâ ñòðî÷íûõ áóêâ. Èëè æå ÿâíûì
3959
  èäåíòèôèêàòîðà, êîòîðûé íå ñîäåðæèò ñèìâîëîâ ñòðî÷íûõ áóêâ. Èëè æå ÿâíûì
3961
  óêàçàíèåì ÷òî ýòî ðåãèñòðîâàÿ ïðîöåäóðà ñ ïîìîùüþ êëþ÷åâîãî ñëîâà fastcall.
3960
  óêàçàíèåì ÷òî ýòî ðåãèñòðîâàÿ ïðîöåäóðà ñ ïîìîùüþ êëþ÷åâîãî ñëîâà fastcall.
3962
 
3961
 
3963
      Êàê óæå áûëî ñêàçàíî, ïàðàìåòðû (åñëè îíè åñòü) äëÿ ðåãèñòðîâîé
3962
      Êàê óæå áûëî ñêàçàíî, ïàðàìåòðû (åñëè îíè åñòü) äëÿ ðåãèñòðîâîé
3964
  ïðîöåäóðû ïåðåäàþòñÿ ÷åðåç ðåãèñòðû. Ðåãèñòðîâûå ïðîöåäóðû ìîãóò èìåòü íå
3963
  ïðîöåäóðû ïåðåäàþòñÿ ÷åðåç ðåãèñòðû. Ðåãèñòðîâûå ïðîöåäóðû ìîãóò èìåòü íå
3965
  áîëåå 6 ïàðàìåòðîâ. Åñëè ïàðàìåòðû èìåþò òèï int èëè word, ðåãèñòðû ïî
3964
  áîëåå 6 ïàðàìåòðîâ. Åñëè ïàðàìåòðû èìåþò òèï int èëè word, ðåãèñòðû ïî
3966
  óìîë÷àíèþ èñïîëüçóþòñÿ â ñëåäóþùåì ïîðÿäêå: AX, BX, CX, DX, DI, è SI.
3965
  óìîë÷àíèþ èñïîëüçóþòñÿ â ñëåäóþùåì ïîðÿäêå: AX, BX, CX, DX, DI, è SI.
3967
  Ïåðâûå ÷åòûðå ïàðàìåòðà ìîãóò òàêæå èìåòü òèï char èëè byte, â ýòîì ñëó÷àå
3966
  Ïåðâûå ÷åòûðå ïàðàìåòðà ìîãóò òàêæå èìåòü òèï char èëè byte, â ýòîì ñëó÷àå
3968
  çàäåéñòâóþòñÿ ðåãèñòðû AL, BL, CL è DL ñîîòâåòñòâåííî. Ëþáîé èç øåñòè
3967
  çàäåéñòâóþòñÿ ðåãèñòðû AL, BL, CL è DL ñîîòâåòñòâåííî. Ëþáîé èç øåñòè
3969
  ïàðàìåòðîâ ìîæåò èìåòü òèï long, dword èëè float, òîãäà äëÿ íåãî
3968
  ïàðàìåòðîâ ìîæåò èìåòü òèï long, dword èëè float, òîãäà äëÿ íåãî
3970
  èñïîëüçóåòñÿ ðåãèñòð EAX, EBX, ECX, EDX, EDI, èëè ESI.
3969
  èñïîëüçóåòñÿ ðåãèñòð EAX, EBX, ECX, EDX, EDI, èëè ESI.
3971
 
3970
 
3972
      Â ñëåäóþùåì ïðèìåðå ðåãèñòðîâàÿ ïðîöåäóðà ñ èìåíåì TOGETHER âîçâðàùàåò
3971
      Â ñëåäóþùåì ïðèìåðå ðåãèñòðîâàÿ ïðîöåäóðà ñ èìåíåì TOGETHER âîçâðàùàåò
3973
  çíà÷åíèå òèïà word êàê ðåçóëüòàò óìíîæåíèÿ ïåðâîãî ïàðàìåòðà, èìåþùåãî òèï
3972
  çíà÷åíèå òèïà word êàê ðåçóëüòàò óìíîæåíèÿ ïåðâîãî ïàðàìåòðà, èìåþùåãî òèï
3974
  word, íà âòîðîé ïàðàìåòð òîãî æå òèïà:
3973
  word, íà âòîðîé ïàðàìåòð òîãî æå òèïà:
3975
 
3974
 
3976
           word TOGETHER() /* AX = ïåðâûé ïàðàìåòð, BX = âòîðîé ïàðàìåòð */
3975
           word TOGETHER() /* AX = ïåðâûé ïàðàìåòð, BX = âòîðîé ïàðàìåòð */
3977
           {
3976
           {
3978
           return (AX * BX);
3977
           return (AX * BX);
3979
           }
3978
           }
3980
 
3979
 
3981
      Â ñëåäóþùåì ïðèìåðå ðåãèñòðîâàÿ ïðîöåäóðà ñ èìåíåì SHOW_NUM, êîòîðàÿ íå
3980
      Â ñëåäóþùåì ïðèìåðå ðåãèñòðîâàÿ ïðîöåäóðà ñ èìåíåì SHOW_NUM, êîòîðàÿ íå
3982
  âîçâðàùàåò íèêàêîãî çíà÷åíèÿ, çàòî âûâîäèò íà ýêðàí ïåðâûé ïàðàìåòð
3981
  âîçâðàùàåò íèêàêîãî çíà÷åíèÿ, çàòî âûâîäèò íà ýêðàí ïåðâûé ïàðàìåòð
3983
  (èìåþùèé òèï int), çàòåì ðàçäåëèòåëüíûé çíàê â âèäå äâîåòî÷èÿ :, à çàòåì
3982
  (èìåþùèé òèï int), çàòåì ðàçäåëèòåëüíûé çíàê â âèäå äâîåòî÷èÿ :, à çàòåì
3984
  âòîðîé ïàðàìåòð (èìåþùèé òèï byte) :
3983
  âòîðîé ïàðàìåòð (èìåþùèé òèï byte) :
3985
 
3984
 
3986
           void SHOW_NUM () /* AX = ïåðâîå ÷èñëî, BL = âòîðîå ÷èñëî */
3985
           void SHOW_NUM () /* AX = ïåðâîå ÷èñëî, BL = âòîðîå ÷èñëî */
3987
           {
3986
           {
3988
           $ PUSH BX
3987
           $ PUSH BX
3989
           WRITEINT (int AX);
3988
           WRITEINT (int AX);
3990
           WRITE (':');
3989
           WRITE (':');
3991
           $ POP BX
3990
           $ POP BX
3992
           WRITEWORD (BL);
3991
           WRITEWORD (BL);
3993
           }
3992
           }
3994
 
3993
 
3995
      Íî åñëè â ïðîöåäóðå ñäåëàòü îáúÿâëåíèå ïîðÿäêà è òèïîâ èñïîëüçóåìûõ
3994
      Íî åñëè â ïðîöåäóðå ñäåëàòü îáúÿâëåíèå ïîðÿäêà è òèïîâ èñïîëüçóåìûõ
3996
  ðåãèñòðîâ, òî âîçìîæíî ïðîèçâîëüíîå èñïîëüçîâàíèå ðåãèñòðîâ. Áîëåå ïîäðîáíî
3995
  ðåãèñòðîâ, òî âîçìîæíî ïðîèçâîëüíîå èñïîëüçîâàíèå ðåãèñòðîâ. Áîëåå ïîäðîáíî
3997
  îá ýòîì ìîæíî ïî÷èòàòü â ðàçäåëå îá îáúÿâëåíèÿõ ïàðàìåòðîâ â ðåãèñòðîâûõ
3996
  îá ýòîì ìîæíî ïî÷èòàòü â ðàçäåëå îá îáúÿâëåíèÿõ ïàðàìåòðîâ â ðåãèñòðîâûõ
3998
  ïðîöåäóðàõ.
3997
  ïðîöåäóðàõ.
3999
 
3998
 
4000
      Äëÿ òîãî, ÷òîáû èñïîëüçîâàòü ðåãèñòðîâóþ ïðîöåäóðó êàê ìàêðîêîìàíäó,
3999
      Äëÿ òîãî, ÷òîáû èñïîëüçîâàòü ðåãèñòðîâóþ ïðîöåäóðó êàê ìàêðîêîìàíäó,
4001
  îíà äîëæíà áûòü îáúÿâëåíà êàê äèíàìè÷åñêàÿ ïðîöåäóðà. Äèíàìè÷åñêèå
4000
  îíà äîëæíà áûòü îáúÿâëåíà êàê äèíàìè÷åñêàÿ ïðîöåäóðà. Äèíàìè÷åñêèå
4002
  ïðîöåäóðû îïèñàíû â ñëåäóþùåì ïîäðàçäåëå.
4001
  ïðîöåäóðû îïèñàíû â ñëåäóþùåì ïîäðàçäåëå.
4003
Return to contents.
4002
Return to contents.
4004
 
4003
 
4005
 
4004
 
4006
 
4005
 
4007
  11.4 Äèíàìè÷åñêèå ïðîöåäóðû.
4006
  11.4 Äèíàìè÷åñêèå ïðîöåäóðû.
4008
 
4007
 
4009
 
4008
 
4010
      Äèíàìè÷åñêèå ïðîöåäóðû - ïðîöåäóðû, êîòîðûå îïðåäåëåíû, íî âñòàâëÿþòñÿ
4009
      Äèíàìè÷åñêèå ïðîöåäóðû - ïðîöåäóðû, êîòîðûå îïðåäåëåíû, íî âñòàâëÿþòñÿ
4011
  â êîä ïðîãðàììû, òîëüêî åñëè åñòü âûçîâ. Äèíàìè÷åñêèå ïðîöåäóðû ìîãóò
4010
  â êîä ïðîãðàììû, òîëüêî åñëè åñòü âûçîâ. Äèíàìè÷åñêèå ïðîöåäóðû ìîãóò
4012
  èñïîëüçîâàòüñÿ êàê ìàêðîêîìàíäû.
4011
  èñïîëüçîâàòüñÿ êàê ìàêðîêîìàíäû.
4013
 
4012
 
4014
      Îïðåäåëåíèå äèíàìè÷åñêîé ïðîöåäóðû íà÷èíàåòñÿ ñ ñèìâîëà äâîåòî÷èÿ ':'.
4013
      Îïðåäåëåíèå äèíàìè÷åñêîé ïðîöåäóðû íà÷èíàåòñÿ ñ ñèìâîëà äâîåòî÷èÿ ':'.
4015
 
4014
 
4016
  Ïðèìåð äèíàìè÷åñêîé ïðîöåäóðû ñòåêà:
4015
  Ïðèìåð äèíàìè÷åñêîé ïðîöåäóðû ñòåêà:
4017
 
4016
 
4018
          : void setvideomode (byte mode)
4017
          : void setvideomode (byte mode)
4019
          {
4018
          {
4020
          AL = mode;
4019
          AL = mode;
4021
          AH = 0;
4020
          AH = 0;
4022
          $ INT 0x10
4021
          $ INT 0x10
4023
          }
4022
          }
4024
 
4023
 
4025
  Ïðèìåð äèíàìè÷åñêîé ðåãèñòðîâîé ïðîöåäóðû:
4024
  Ïðèìåð äèíàìè÷åñêîé ðåãèñòðîâîé ïðîöåäóðû:
4026
 
4025
 
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.
4033
 
4032
 
4034
 
4033
 
4035
 
4034
 
4036
    11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
4035
    11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
4037
 
4036
 
4038
 
4037
 
4039
        Äèíàìè÷åñêèå ïðîöåäóðû, åñëè îíè íå èñïîëüçóþòñÿ êàê ìàêðîñû è åñëè
4038
        Äèíàìè÷åñêèå ïðîöåäóðû, åñëè îíè íå èñïîëüçóþòñÿ êàê ìàêðîñû è åñëè
4040
    îíè áûëè âîñòðåáîâàíû â ïðîãðàììå, âñòàâëÿþòñÿ â êîä ïðîãðàììû â ñàìîì
4039
    îíè áûëè âîñòðåáîâàíû â ïðîãðàììå, âñòàâëÿþòñÿ â êîä ïðîãðàììû â ñàìîì
4041
    êîíöå êîìïèëÿöèè.  êàêîì òî÷íî ìåñòå Âàøåé ïðîãðàììû îíè îêàæóòñÿ óçíàòü
4040
    êîíöå êîìïèëÿöèè.  êàêîì òî÷íî ìåñòå Âàøåé ïðîãðàììû îíè îêàæóòñÿ óçíàòü
4042
    íåâîçìîæíî. Åñëè æå Âàì íåîáõîäèìî, ÷òîáû êàêàÿ-òî äèíàìè÷åñêàÿ ïðîöåäóðà
4041
    íåâîçìîæíî. Åñëè æå Âàì íåîáõîäèìî, ÷òîáû êàêàÿ-òî äèíàìè÷åñêàÿ ïðîöåäóðà
4043
    íàõîäèëàñü â êîíêðåòíîì ìåñòå ïðîãðàììû, òî ýòî ìîæíî ñäåëàòü òàêèì
4042
    íàõîäèëàñü â êîíêðåòíîì ìåñòå ïðîãðàììû, òî ýòî ìîæíî ñäåëàòü òàêèì
4044
    îáðàçîì:
4043
    îáðàçîì:
4045
 
4044
 
4046
    :void proc ( int par1, par2)
4045
    :void proc ( int par1, par2)
4047
    {
4046
    {
4048
       ...
4047
       ...
4049
    }
4048
    }
4050
 
4049
 
4051
        Ìû èìååì äèíàìè÷åñêóþ ïðîöåäóðó, êîä êîòîðîé áûë áû ðàñïîëîæåí ðàíåå
4050
        Ìû èìååì äèíàìè÷åñêóþ ïðîöåäóðó, êîä êîòîðîé áûë áû ðàñïîëîæåí ðàíåå
4052
    êîäà îáû÷íîé ïðîöåäóðû íàøåé ïðîãðàììû. Äëÿ ýòîãî ïåðåä îïðåäåëåíèåì ýòîé
4051
    êîäà îáû÷íîé ïðîöåäóðû íàøåé ïðîãðàììû. Äëÿ ýòîãî ïåðåä îïðåäåëåíèåì ýòîé
4053
    ïðîöåäóðû íàäî íàïèñàòü òàêóþ ñòðîêó:
4052
    ïðîöåäóðû íàäî íàïèñàòü òàêóþ ñòðîêó:
4054
 
4053
 
4055
    @ void proc ();
4054
    @ void proc ();
4056
 
4055
 
4057
	 èòîãå äèíàìè÷åñêàÿ ïðîöåäóðà áóäåò âñòàâëåíà â êîä ïðîãðàììû íå â
4056
         èòîãå äèíàìè÷åñêàÿ ïðîöåäóðà áóäåò âñòàâëåíà â êîä ïðîãðàììû íå â
4058
    êîíöå åå, êàê îáû÷íî, à â ìåñòå, ãäå áóäåò ðàñïîëîæåíà ýòà ñòðîêà. Åñëè
4057
    êîíöå åå, êàê îáû÷íî, à â ìåñòå, ãäå áóäåò ðàñïîëîæåíà ýòà ñòðîêà. Åñëè
4059
    äèíàìè÷åñêàÿ ïðîöåäóðà èìååò ïàðàìåòðû, òî ïðîïèñûâàòü ýòè ïàðàìåòðû
4058
    äèíàìè÷åñêàÿ ïðîöåäóðà èìååò ïàðàìåòðû, òî ïðîïèñûâàòü ýòè ïàðàìåòðû
4060
    íåîáÿçàòåëüíî.
4059
    íåîáÿçàòåëüíî.
4061
 
4060
 
4062
	Â êîìïèëÿòîðå åñòü åùå áîëåå ìîùíîå ñðåäñòâî, ïîçâîëÿþùåå âñå
4061
        Â êîìïèëÿòîðå åñòü åùå áîëåå ìîùíîå ñðåäñòâî, ïîçâîëÿþùåå âñå
4063
    äèíàìè÷åñêèå îáúåêòû ( ïðîöåäóðû, ïåðåìåííûå, ñòðóêòóðû ) ðàñïîëîæèòü â
4062
    äèíàìè÷åñêèå îáúåêòû ( ïðîöåäóðû, ïåðåìåííûå, ñòðóêòóðû ) ðàñïîëîæèòü â
4064
    óêàçàííîì ìåñòå, à íå â êîíöå ïðîãðàììû, êàê îáû÷íî. Ýòî äèðåêòèâà
4063
    óêàçàííîì ìåñòå, à íå â êîíöå ïðîãðàììû, êàê îáû÷íî. Ýòî äèðåêòèâà
4065
    #setdinproc. Âñòðåòèâ ýòó äèðåêòèâó, êîìïèëÿòîð íåìåäëåííî ðàñïîëîæèò âñå
4064
    #setdinproc. Âñòðåòèâ ýòó äèðåêòèâó, êîìïèëÿòîð íåìåäëåííî ðàñïîëîæèò âñå
4066
    èçâåñòíûå åìó íà ýòîò ìîìåíò äèíàìè÷åñêèå îáúåêòû â ìåñòå îáúÿâëåíèÿ ýòîé
4065
    èçâåñòíûå åìó íà ýòîò ìîìåíò äèíàìè÷åñêèå îáúåêòû â ìåñòå îáúÿâëåíèÿ ýòîé
4067
    äèðåêòèâû. Ïîñëåäóþùèå äèíàìè÷åñêèå îáúåêòû áóäóò ðàñïîëàãàòüñÿ êàê
4066
    äèðåêòèâû. Ïîñëåäóþùèå äèíàìè÷åñêèå îáúåêòû áóäóò ðàñïîëàãàòüñÿ êàê
4068
    îáû÷íî, â êîíöå ïðîãðàììû, åñëè êîíå÷íî, íå áóäåò ïîâòîðíî ïðèìåíåíà
4067
    îáû÷íî, â êîíöå ïðîãðàììû, åñëè êîíå÷íî, íå áóäåò ïîâòîðíî ïðèìåíåíà
4069
    äèðåêòèâà #setdinproc.
4068
    äèðåêòèâà #setdinproc.
4070
 
4069
 
4071
	Ýòî ìîæåò áûòü ïðèìåíåíî è áûòü ïîëåçíûì ïðè ñîçäàíèè ðåçèäåíòíûõ
4070
        Ýòî ìîæåò áûòü ïðèìåíåíî è áûòü ïîëåçíûì ïðè ñîçäàíèè ðåçèäåíòíûõ
4072
    ïðîãðàìì (TSR) è äðàéâåðîâ óñòðîéñòâ.
4071
    ïðîãðàìì (TSR) è äðàéâåðîâ óñòðîéñòâ.
4073
Return to contents.
4072
Return to contents.
4074
 
4073
 
4075
 
4074
 
4076
 
4075
 
4077
  11.5 inline-ïðîöåäóðû.
4076
  11.5 inline-ïðîöåäóðû.
4078
 
4077
 
4079
 
4078
 
4080
      inline-ïðîöåäóðàìè ìîãóò áûòü äèíàìè÷åñêèå ïðîöåäóðû, êîòîðûå ìîæíî
4079
      inline-ïðîöåäóðàìè ìîãóò áûòü äèíàìè÷åñêèå ïðîöåäóðû, êîòîðûå ìîæíî
4081
  èñïîëüçîâàòü êàê ìàêðîñû. Íî â îòëè÷èå îò ìàêðîñîâ, inline-ïðîöåäóðû, ïðè
4080
  èñïîëüçîâàòü êàê ìàêðîñû. Íî â îòëè÷èå îò ìàêðîñîâ, inline-ïðîöåäóðû, ïðè
4082
  âêëþ÷åííîé îïòèìèçàöèè íà ñêîðîñòü, àâòîìàòè÷åñêè âñòàâëÿþòñÿ â êîä, à ïðè
4081
  âêëþ÷åííîé îïòèìèçàöèè íà ñêîðîñòü, àâòîìàòè÷åñêè âñòàâëÿþòñÿ â êîä, à ïðè
4083
  îïòèìèçàöèè êîäà íà ðàçìåð, äåëàåòñÿ âûçîâ èõ, êàê äèíàìè÷åñêèõ ïðîöåäóð.
4082
  îïòèìèçàöèè êîäà íà ðàçìåð, äåëàåòñÿ âûçîâ èõ, êàê äèíàìè÷åñêèõ ïðîöåäóð.
4084
 
4083
 
4085
      Íî èíîãäà áûâàåò íóæíî ïðè âêëþ÷åííîé îïòèìèçàöèè íà ðàçìåð êîäà, ÷òîáû
4084
      Íî èíîãäà áûâàåò íóæíî ïðè âêëþ÷åííîé îïòèìèçàöèè íà ðàçìåð êîäà, ÷òîáû
4086
  ïðîöåäóðû âñòàâëÿëèñü â êîä, à íå äåëàëñÿ èõ âûçîâ. Äëÿ ýòèõ öåëåé ââåäåíà
4085
  ïðîöåäóðû âñòàâëÿëèñü â êîä, à íå äåëàëñÿ èõ âûçîâ. Äëÿ ýòèõ öåëåé ââåäåíà
4087
  äèðåêòèâà #inline TRUE. Ýòîé æå äèðåêòèâîé ( #inline FALSE ), ìîæíî ïðè
4086
  äèðåêòèâà #inline TRUE. Ýòîé æå äèðåêòèâîé ( #inline FALSE ), ìîæíî ïðè
4088
  îïòèìèçàöèè íà ñêîðîñòü äåëàòü âûçîâû ïðîöåäóð, âìåñòî èõ âñòàâêè.
4087
  îïòèìèçàöèè íà ñêîðîñòü äåëàòü âûçîâû ïðîöåäóð, âìåñòî èõ âñòàâêè.
4089
 
4088
 
4090
      Âàæíî ïîìíèòü, ÷òî ñòàòóñ äèðåêòèâû #inline àâòîìàòè÷åñêè ìåíÿåòñÿ ïðè
4089
      Âàæíî ïîìíèòü, ÷òî ñòàòóñ äèðåêòèâû #inline àâòîìàòè÷åñêè ìåíÿåòñÿ ïðè
4091
  ñìåíå ðåæèìà îïòèìèçàöèè. Ïðè óñòàíîâêå îïòèìèçàöèè íà ñêîðîñòü ñòàòóñ
4090
  ñìåíå ðåæèìà îïòèìèçàöèè. Ïðè óñòàíîâêå îïòèìèçàöèè íà ñêîðîñòü ñòàòóñ
4092
  äèðåêòèâû #inline óñòàíàâëèâàåòñÿ â TRUE, à ïðè ñìåíå ðåæèìà îïòèìèçàöèè ïî
4091
  äèðåêòèâû #inline óñòàíàâëèâàåòñÿ â TRUE, à ïðè ñìåíå ðåæèìà îïòèìèçàöèè ïî
4093
  ðàçìåðó êîäà, óñòàíàâëèâàåòñÿ â FALSE. Ïîýòîìó ïðèìåíÿéòå äèðåêòèâó #inline
4092
  ðàçìåðó êîäà, óñòàíàâëèâàåòñÿ â FALSE. Ïîýòîìó ïðèìåíÿéòå äèðåêòèâó #inline
4094
  ëèøü ïîñëå ñìåíû ðåæèìà îïòèìèçàöèè.
4093
  ëèøü ïîñëå ñìåíû ðåæèìà îïòèìèçàöèè.
4095
 
4094
 
4096
      Äèðåêòèâû ìåíÿþùèå ðåæèì îïòèìèçàöèè #codesize, #speed è äèðåêòèâà
4095
      Äèðåêòèâû ìåíÿþùèå ðåæèì îïòèìèçàöèè #codesize, #speed è äèðåêòèâà
4097
  #inline, îáúÿâëåííûå âíóòðè ïðîöåäóðû ðàñïðîñòðàíÿþòñÿ òîëüêî íà îñòàâøóþñÿ
4096
  #inline, îáúÿâëåííûå âíóòðè ïðîöåäóðû ðàñïðîñòðàíÿþòñÿ òîëüêî íà îñòàâøóþñÿ
4098
  ÷àñòü ïðîöåäóðû, ò.å. îíè ñòàíîâÿòñÿ ëîêàëüíûìè. Äëÿ òîãî ÷òîáû èçìåíåíèÿ
4097
  ÷àñòü ïðîöåäóðû, ò.å. îíè ñòàíîâÿòñÿ ëîêàëüíûìè. Äëÿ òîãî ÷òîáû èçìåíåíèÿ
4099
  áûëè ãëîáàëüíûìè ýòè äèðåêòèâû íàäî îáúÿâëÿòü âíå òåëà ïðîöåäóðû.
4098
  áûëè ãëîáàëüíûìè ýòè äèðåêòèâû íàäî îáúÿâëÿòü âíå òåëà ïðîöåäóðû.
4100
 
4099
 
4101
      Äëÿ òîãî ÷òîáû îïðåäåëèòü inline-ïðîöåäóðó, íàäî â ïåðâîé ñòðîêå ñ
4100
      Äëÿ òîãî ÷òîáû îïðåäåëèòü inline-ïðîöåäóðó, íàäî â ïåðâîé ñòðîêå ñ
4102
  èìåíåì ïðîöåäóðû âìåñòî ñèìâîëà äèíàìè÷åñêîé ïðîöåäóðû (:) íàïèñàòü
4101
  èìåíåì ïðîöåäóðû âìåñòî ñèìâîëà äèíàìè÷åñêîé ïðîöåäóðû (:) íàïèñàòü
4103
  êëþ÷åâîå ñëîâî inline. Ïðèìåð îïðåäåëåíèÿ inline-ïðîöåäóðû:
4102
  êëþ÷åâîå ñëîâî inline. Ïðèìåð îïðåäåëåíèÿ inline-ïðîöåäóðû:
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
  }
4109
Return to contents.
4108
Return to contents.
4110
 
4109
 
4111
 
4110
 
4112
 
4111
 
4113
    11.5.1 Äðóãîå ïðèìåíåíèå inline.
4112
    11.5.1 Äðóãîå ïðèìåíåíèå inline.
4114
 
4113
 
4115
 
4114
 
4116
	Êëþ÷åâîå ñëîâî inline èìååò â ïðîöåäóðàõ è äðóãîå ïðèìåíåíèå. Åñëè
4115
        Êëþ÷åâîå ñëîâî inline èìååò â ïðîöåäóðàõ è äðóãîå ïðèìåíåíèå. Åñëè
4117
    ýòî ñëîâî ðàñïîëîæåíî ïåðåä íà÷àëîì áëîêà ïðîöåäóðû, òî äëÿ òàêîé
4116
    ýòî ñëîâî ðàñïîëîæåíî ïåðåä íà÷àëîì áëîêà ïðîöåäóðû, òî äëÿ òàêîé
4118
    ïðîöåäóðû íå ñîçäàåòñÿ êàäð ñòåêà è íå ãåíåðèðóåòñÿ çàâåðøàþùèé ïðîöåäóðó
4117
    ïðîöåäóðû íå ñîçäàåòñÿ êàäð ñòåêà è íå ãåíåðèðóåòñÿ çàâåðøàþùèé ïðîöåäóðó
4119
    ret. Ïðèìåð:
4118
    ret. Ïðèìåð:
4120
 
4119
 
4121
    void PROC ()
4120
    void PROC ()
4122
    inline
4121
    inline
4123
    {
4122
    {
4124
      ...
4123
      ...
4125
    }
4124
    }
4126
 
4125
 
4127
	Òàêèå ïðîöåäóðû íå äîëæíû ñîäåðæàòü ëîêàëüíûõ ïåðåìåííûõ. Åñëè
4126
        Òàêèå ïðîöåäóðû íå äîëæíû ñîäåðæàòü ëîêàëüíûõ ïåðåìåííûõ. Åñëè
4128
    ïðîöåäóðà ÿâëÿåòñÿ ðåãèñòðîâîé (òèï fastcall), òî ñ ïåðåäà÷åé åé
4127
    ïðîöåäóðà ÿâëÿåòñÿ ðåãèñòðîâîé (òèï fastcall), òî ñ ïåðåäà÷åé åé
4129
    ïàðàìåòðîâ íåò ïðîáëåì. Åñëè æå ïðîöåäóðà ÿâëÿåòñÿ ñòåêîâîé, òî ïåðåäàòü
4128
    ïàðàìåòðîâ íåò ïðîáëåì. Åñëè æå ïðîöåäóðà ÿâëÿåòñÿ ñòåêîâîé, òî ïåðåäàòü
4130
    â òàêóþ ïðîöåäóðó ïàðàìåòðû Âû ìîæåòå, íî âîñïîëüçîâàòüñÿ ýòèìè
4129
    â òàêóþ ïðîöåäóðó ïàðàìåòðû Âû ìîæåòå, íî âîñïîëüçîâàòüñÿ ýòèìè
4131
    ïàðàìåòðàìè èñïîëüçóÿ èõ èìåíà, Âû óæå íå ñìîæåòå. Ýòî ïðîèñõîäèò ïîòîìó,
4130
    ïàðàìåòðàìè èñïîëüçóÿ èõ èìåíà, Âû óæå íå ñìîæåòå. Ýòî ïðîèñõîäèò ïîòîìó,
4132
    ÷òî â ýòèõ ïðîöåäóðàõ êàäð ñòåêà íå ôîðìèðóåòñÿ. Ïðèìåð:
4131
    ÷òî â ýòèõ ïðîöåäóðàõ êàäð ñòåêà íå ôîðìèðóåòñÿ. Ïðèìåð:
4133
 
4132
 
4134
    void proc (int par1, par2)
4133
    void proc (int par1, par2)
4135
    inline
4134
    inline
4136
    {
4135
    {
4137
      AX=par1; /* êîìïèëÿòîð îáðàòèòñÿ ñ ïàðàìåòðó 'par1' ÷åðåç ðåãèñòð BP.
4136
      AX=par1; /* êîìïèëÿòîð îáðàòèòñÿ ñ ïàðàìåòðó 'par1' ÷åðåç ðåãèñòð BP.
4138
		  Íî òàê êàê êàäð ñòåêà íå áûë ñîçäàí, ïðè âûïîëíåíèè ýòîãî
4137
                  Íî òàê êàê êàäð ñòåêà íå áûë ñîçäàí, ïðè âûïîëíåíèè ýòîãî
4139
                  êîäà ïðîãðàììà áóäåò ðàáîòàòü íå ïðàâèëüíî. */
4138
                  êîäà ïðîãðàììà áóäåò ðàáîòàòü íå ïðàâèëüíî. */
4140
       ...
4139
       ...
4141
    }
4140
    }
4142
 
4141
 
4143
	Âñòðåòèâ òàêîå îïðåäåëåíèå ïðîöåäóðû, êîìïèëÿòîð âûäàñò ïðåäóïðåæäåíèå
4142
        Âñòðåòèâ òàêîå îïðåäåëåíèå ïðîöåäóðû, êîìïèëÿòîð âûäàñò ïðåäóïðåæäåíèå
4144
    î òîì, ÷òî â òàêèõ ïðîöåäóðàõ èñïîëüçîâàòü ëîêàëüíûå è ïàðàìåòðè÷åñêèå
4143
    î òîì, ÷òî â òàêèõ ïðîöåäóðàõ èñïîëüçîâàòü ëîêàëüíûå è ïàðàìåòðè÷åñêèå
4145
    ïåðåìåííûå íåëüçÿ.
4144
    ïåðåìåííûå íåëüçÿ.
4146
Return to contents.
4145
Return to contents.
4147
 
4146
 
4148
 
4147
 
4149
 
4148
 
4150
  11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
4149
  11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
4151
 
4150
 
4152
 
4151
 
4153
      Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé îïðåäåëÿþòñÿ ñëåäóþùèì ñïîñîáîì:
4152
      Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé îïðåäåëÿþòñÿ ñëåäóþùèì ñïîñîáîì:
4154
 
4153
 
4155
          interrupt procedure_name ()
4154
          interrupt procedure_name ()
4156
          {
4155
          {
4157
          // put code here (çäåñü äîëæåí áûòü êîä îáðàáîòêè)
4156
          // put code here (çäåñü äîëæåí áûòü êîä îáðàáîòêè)
4158
          }
4157
          }
4159
 
4158
 
4160
      Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé íå ñîõðàíÿþò íèêàêèõ ðåãèñòðîâ
4159
      Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé íå ñîõðàíÿþò íèêàêèõ ðåãèñòðîâ
4161
  àâòîìàòè÷åñêè, è íèêàêèå ðåãèñòðû ñàìè ïî ñåáå íå çàãðóæàþòñÿ ïåðåä
4160
  àâòîìàòè÷åñêè, è íèêàêèå ðåãèñòðû ñàìè ïî ñåáå íå çàãðóæàþòñÿ ïåðåä
4162
  ïåðåäà÷åé óïðàâëåíèÿ îáðàáîò÷èêó ïðåðûâàíèÿ, ñëåäîâàòåëüíî, íà Âàøåé
4161
  ïåðåäà÷åé óïðàâëåíèÿ îáðàáîò÷èêó ïðåðûâàíèÿ, ñëåäîâàòåëüíî, íà Âàøåé
4163
  ñîâåñòè ñîõðàíåíèå çíà÷åíèé ðåãèñòðîâ â ñòåêå è ïîñëåäóþùèé èõ âîçâðàò, à
4162
  ñîâåñòè ñîõðàíåíèå çíà÷åíèé ðåãèñòðîâ â ñòåêå è ïîñëåäóþùèé èõ âîçâðàò, à
4164
  òàêæå çàãðóçêà ðåãèñòðà DS íóæíûì çíà÷åíèåì.
4163
  òàêæå çàãðóçêà ðåãèñòðà DS íóæíûì çíà÷åíèåì.
4165
 
4164
 
4166
      Âîò ïðèìåð îáðàáîò÷èêà ïðåðûâàíèÿ, êîòîðûé ñîõðàíÿåò çíà÷åíèÿ âñåõ
4165
      Âîò ïðèìåð îáðàáîò÷èêà ïðåðûâàíèÿ, êîòîðûé ñîõðàíÿåò çíà÷åíèÿ âñåõ
4167
  ðåãèñòðîâ è çàãðóæàåò ðåãèñòð DS:
4166
  ðåãèñòðîâ è çàãðóæàåò ðåãèñòð DS:
4168
 
4167
 
4169
       interrupt safe_handle ()
4168
       interrupt safe_handle ()
4170
       {
4169
       {
4171
       $ PUSH DS
4170
       $ PUSH DS
4172
       $ PUSH ES
4171
       $ PUSH ES
4173
       $ PUSHA   // äëÿ âûïîëíåíèÿ ýòîé êîìàíäû íóæåí ïðîöåññîð íå õóæå 80286
4172
       $ PUSHA   // äëÿ âûïîëíåíèÿ ýòîé êîìàíäû íóæåí ïðîöåññîð íå õóæå 80286
4174
       DS = CS;  // çäåñü DS çàãðóæàåòñÿ äëÿ ðàáîòû ñ ìîäåëüþ ïàìÿòè òèïà tiny
4173
       DS = CS;  // çäåñü DS çàãðóæàåòñÿ äëÿ ðàáîòû ñ ìîäåëüþ ïàìÿòè òèïà tiny
4175
 
4174
 
4176
 
4175
 
4177
       /* do your thing here (çäåñü âû äåëàåòå ñâîþ îáðàáîòêó)*/
4176
       /* do your thing here (çäåñü âû äåëàåòå ñâîþ îáðàáîòêó)*/
4178
 
4177
 
4179
       $ POPA   // äëÿ âûïîëíåíèÿ ýòîé êîìàíäû íóæåí ïðîöåññîð íå õóæå 80286
4178
       $ POPA   // äëÿ âûïîëíåíèÿ ýòîé êîìàíäû íóæåí ïðîöåññîð íå õóæå 80286
4180
       $ POP ES
4179
       $ POP ES
4181
       $ POP DS
4180
       $ POP DS
4182
       }
4181
       }
4183
 
4182
 
4184
      Ïðè çàâåðøåíèè ïðîöåäóðû ïðåðûâàíèÿ áóäåò àâòîìàòè÷åñêè ñãåíåðèðîâàíà
4183
      Ïðè çàâåðøåíèè ïðîöåäóðû ïðåðûâàíèÿ áóäåò àâòîìàòè÷åñêè ñãåíåðèðîâàíà
4185
  èíñòðóêöèÿ âûõîäà èç îáðàáîò÷èêà ïðåðûâàíèÿ - IRET.
4184
  èíñòðóêöèÿ âûõîäà èç îáðàáîò÷èêà ïðåðûâàíèÿ - IRET.
4186
Return to contents.
4185
Return to contents.
4187
 
4186
 
4188
 
4187
 
4189
 
4188
 
4190
  11.7 Çàìåíà return íà goto.
4189
  11.7 Çàìåíà return íà goto.
4191
 
4190
 
4192
 
4191
 
4193
      Â íåêîòîðûõ ñèòóàöèÿõ, ïðè êîìïèëÿöèè ïðîãðàììû, îïåðàòîð return
4192
      Â íåêîòîðûõ ñèòóàöèÿõ, ïðè êîìïèëÿöèè ïðîãðàììû, îïåðàòîð return
4194
  áóäåò çàìåíÿòüñÿ íà goto. Ýòî ïðîèñõîäèò ïðè ðàçðåøåííîé îïòèìèçàöèè ïî
4193
  áóäåò çàìåíÿòüñÿ íà goto. Ýòî ïðîèñõîäèò ïðè ðàçðåøåííîé îïòèìèçàöèè ïî
4195
  ðàçìåðó êîäà äëÿ îïåðàòîðîâ return, êîòîðûå ðàñïîëîæåíû âíóòðè ïðîöåäóðû
4194
  ðàçìåðó êîäà äëÿ îïåðàòîðîâ return, êîòîðûå ðàñïîëîæåíû âíóòðè ïðîöåäóðû
4196
  è, åñòåñòâåííî, åñëè ðàçìåð êîäà äëÿ âûïîëíåíèÿ return áîëüøå, ÷åì ðàçìåð
4195
  è, åñòåñòâåííî, åñëè ðàçìåð êîäà äëÿ âûïîëíåíèÿ return áîëüøå, ÷åì ðàçìåð
4197
  êîäà äëÿ ðåàëèçàöèè goto. Äëÿ äèíàìè÷åñêèõ ïðîöåäóð, êîòîðûå èñïîëüçóþòñÿ
4196
  êîäà äëÿ ðåàëèçàöèè goto. Äëÿ äèíàìè÷åñêèõ ïðîöåäóð, êîòîðûå èñïîëüçóþòñÿ
4198
  êàê ìàêðîñû, òàêàÿ çàìåíà áóäåò ïðîèçâîäèòñÿ âñåãäà. Îïåðàòîð goto áóäåò
4197
  êàê ìàêðîñû, òàêàÿ çàìåíà áóäåò ïðîèçâîäèòñÿ âñåãäà. Îïåðàòîð goto áóäåò
4199
  âûïîëíåí íà êîíåö ïðîöåäóðû, òàì, ãäå áóäåò ðàñïîëàãàòüñÿ åäèíñòâåííûé
4198
  âûïîëíåí íà êîíåö ïðîöåäóðû, òàì, ãäå áóäåò ðàñïîëàãàòüñÿ åäèíñòâåííûé
4200
  âûõîä èç ïðîöåäóðû.  äèíàìè÷åñêèõ ïðîöåäóðàõ, èñïîëüçóåìûõ â êà÷åñòâå
4199
  âûõîä èç ïðîöåäóðû.  äèíàìè÷åñêèõ ïðîöåäóðàõ, èñïîëüçóåìûõ â êà÷åñòâå
4201
  ìàêðîñîâ, return â êîíöå ïðîöåäóðû áóäåò ïðîïóùåí êîìïèëÿòîðîì.
4200
  ìàêðîñîâ, return â êîíöå ïðîöåäóðû áóäåò ïðîïóùåí êîìïèëÿòîðîì.
4202
 
4201
 
4203
      Òàêèì îáðàçîì, ñíÿòî ïîñëåäíåå îãðàíè÷åíèå íà èñïîëüçîâàíèå
4202
      Òàêèì îáðàçîì, ñíÿòî ïîñëåäíåå îãðàíè÷åíèå íà èñïîëüçîâàíèå
4204
  äèíàìè÷åñêèõ ïðîöåäóð â êà÷åñòâå ìàêðîñîâ. Ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà
4203
  äèíàìè÷åñêèõ ïðîöåäóð â êà÷åñòâå ìàêðîñîâ. Ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà
4205
  ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4204
  ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4206
 
4205
 
4207
      Äëÿ îïåðàòîðà goto ñóùåñòâóåò åãî áîëåå êîðîòêèé àíàëîã - GOTO.
4206
      Äëÿ îïåðàòîðà goto ñóùåñòâóåò åãî áîëåå êîðîòêèé àíàëîã - GOTO.
4208
  Äëÿ ïîëó÷åíèÿ áîëåå êîìïàêòíîãî êîäà äëÿ îïåðàòîðà return ââåäåí òàêæå
4207
  Äëÿ ïîëó÷åíèÿ áîëåå êîìïàêòíîãî êîäà äëÿ îïåðàòîðà return ââåäåí òàêæå
4209
  áîëåå êîðîòêèé îïåðàòîð RETURN. Åãî ìîæíî èñïîëüçîâàòü, åñëè îò ìåñòà
4208
  áîëåå êîðîòêèé îïåðàòîð RETURN. Åãî ìîæíî èñïîëüçîâàòü, åñëè îò ìåñòà
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.
4216
 
4215
 
4217
 
4216
 
4218
 
4217
 
4219
  11.8 Âîçâðàùàåìûå çíà÷åíèÿ.
4218
  11.8 Âîçâðàùàåìûå çíà÷åíèÿ.
4220
 
4219
 
4221
 
4220
 
4222
      Âîçâðàùàåìûå èç ôóíêöèé çíà÷åíèÿ ðàñïîëàãàþòñÿ â ðåãèñòðàõ.  òàáëèöå
4221
      Âîçâðàùàåìûå èç ôóíêöèé çíà÷åíèÿ ðàñïîëàãàþòñÿ â ðåãèñòðàõ.  òàáëèöå
4223
  ïîêàçàíî, êàêîé ðåãèñòð èñïîëüçóåòñÿ äëÿ êàæäîãî èç âîçâðàùàåìûõ òèïîâ:
4222
  ïîêàçàíî, êàêîé ðåãèñòð èñïîëüçóåòñÿ äëÿ êàæäîãî èç âîçâðàùàåìûõ òèïîâ:
4224
 
4223
 
4225
      --------------------------------------------
4224
      --------------------------------------------
4226
      | âîçâðàùàåìûé òèï |  èñïîëüçóåìûé ðåãèñòð |
4225
      | âîçâðàùàåìûé òèï |  èñïîëüçóåìûé ðåãèñòð |
4227
      --------------------------------------------
4226
      --------------------------------------------
4228
      |        byte      |        AL             |
4227
      |        byte      |        AL             |
4229
      |        word      |        AX             |
4228
      |        word      |        AX             |
4230
      |        dword     |        EAX            |
4229
      |        dword     |        EAX            |
4231
      |        char      |        AL             |
4230
      |        char      |        AL             |
4232
      |        int       |        AX             |
4231
      |        int       |        AX             |
4233
      |        long      |        EAX            |
4232
      |        long      |        EAX            |
4234
      |        float     |        EAX            |
4233
      |        float     |        EAX            |
4235
      --------------------------------------------
4234
      --------------------------------------------
4236
 
4235
 
4237
      Ñàìûé ïðîñòîé ñïîñîá âåðíóòü çíà÷åíèå èç ôóíêöèè ñîñòîèò â òîì, ÷òîáû
4236
      Ñàìûé ïðîñòîé ñïîñîá âåðíóòü çíà÷åíèå èç ôóíêöèè ñîñòîèò â òîì, ÷òîáû
4238
  èñïîëüçîâàòü êîìàíäó return(), íî âìåñòî ýòîãî ìîæíî íàïðÿìóþ çàãðóçèòü
4237
  èñïîëüçîâàòü êîìàíäó return(), íî âìåñòî ýòîãî ìîæíî íàïðÿìóþ çàãðóçèòü
4239
  âîçâðàùàåìîå çíà÷åíèå â ñîîòâåòñòâóþùèé ðåãèñòð. Íàïðèìåð, ñëåäóþùèå äâå
4238
  âîçâðàùàåìîå çíà÷åíèå â ñîîòâåòñòâóþùèé ðåãèñòð. Íàïðèìåð, ñëåäóþùèå äâå
4240
  ôóíêöèè âîçâðàùàþò îäíî è òî æå çíà÷åíèå:
4239
  ôóíêöèè âîçâðàùàþò îäíî è òî æå çíà÷åíèå:
4241
 
4240
 
4242
           byte proc_one ()
4241
           byte proc_one ()
4243
           {
4242
           {
4244
           return (42);
4243
           return (42);
4245
           }
4244
           }
4246
 
4245
 
4247
           byte proc_two ()
4246
           byte proc_two ()
4248
           {
4247
           {
4249
           AL = 42;
4248
           AL = 42;
4250
           }
4249
           }
4251
 
4250
 
4252
      Ìíîãèå DOS ôóíêöèè 0x21 ïðåðûâàíèÿ â êà÷åñòâå èíäèêàòîðà óñïåøíîãî
4251
      Ìíîãèå DOS ôóíêöèè 0x21 ïðåðûâàíèÿ â êà÷åñòâå èíäèêàòîðà óñïåøíîãî
4253
  âûïîëíåíèÿ èñïîëüçóþò óñòàíîâêó èëè ñáðîñ carry ôëàãà. Èñïîëüçîâàòü ôëàãè
4252
  âûïîëíåíèÿ èñïîëüçóþò óñòàíîâêó èëè ñáðîñ carry ôëàãà. Èñïîëüçîâàòü ôëàãè
4254
  ïðîöåññîðà ïðè âîçâðàòå èç ïðîöåäóð ìîæíî è â äðóãèõ ñëó÷àÿõ, êîãäà íàäî
4253
  ïðîöåññîðà ïðè âîçâðàòå èç ïðîöåäóð ìîæíî è â äðóãèõ ñëó÷àÿõ, êîãäà íàäî
4255
  èìåòü ñòàòóñ óñïåøíîãî èëè íå óñïåøíîãî âûïîëíåíèÿ ïðîöåäóðû. Ýòî ïîçâîëèò
4254
  èìåòü ñòàòóñ óñïåøíîãî èëè íå óñïåøíîãî âûïîëíåíèÿ ïðîöåäóðû. Ýòî ïîçâîëèò
4256
  áîëåå ïîëíî èñïîëüçîâàòü âîçìîæíîñòè ïðîöåññîðà è ñîîòâåòñòâåííî óìåíüøèò
4255
  áîëåå ïîëíî èñïîëüçîâàòü âîçìîæíîñòè ïðîöåññîðà è ñîîòâåòñòâåííî óìåíüøèò
4257
  ðàçìåð êîäà è ïîâûñèò áûñòðîäåéñòâèå ïðîãðàììû.
4256
  ðàçìåð êîäà è ïîâûñèò áûñòðîäåéñòâèå ïðîãðàììû.
4258
 
4257
 
4259
      Íàðÿäó ñ ôëàãàìè, ïðè âîçâðàòå èç ïðîöåäóð, ïî ïðåæíåìó îñòàåòñÿ
4258
      Íàðÿäó ñ ôëàãàìè, ïðè âîçâðàòå èç ïðîöåäóð, ïî ïðåæíåìó îñòàåòñÿ
4260
  âîçâðàò ðàçëè÷íûõ òèïîâ è ÷åðåç ðåãèñòð AL/AX/EAX. Åñëè äëÿ ïðîöåäóðû
4259
  âîçâðàò ðàçëè÷íûõ òèïîâ è ÷åðåç ðåãèñòð AL/AX/EAX. Åñëè äëÿ ïðîöåäóðû
4261
  îáúÿâëåíî, ÷òî îíà èìååò òèï âîçâðàòà int è CARRYFLAG, òî ïðè èñïîëüçîâàíèè
4260
  îáúÿâëåíî, ÷òî îíà èìååò òèï âîçâðàòà int è CARRYFLAG, òî ïðè èñïîëüçîâàíèè
4262
  òàêîé ïðîöåäóðû â îïåðàöèÿõ ñðàâíåíèÿ IF, WHILE... áóäåò äåëàòüñÿ ïðîâåðêà
4261
  òàêîé ïðîöåäóðû â îïåðàöèÿõ ñðàâíåíèÿ IF, WHILE... áóäåò äåëàòüñÿ ïðîâåðêà
4263
  carry ôëàãà, à íå ñðàâíåíèå ðåãèñòðà AX. Ïðèìåð èñïîëüçîâàíèÿ âîçâðàòà
4262
  carry ôëàãà, à íå ñðàâíåíèå ðåãèñòðà AX. Ïðèìåð èñïîëüçîâàíèÿ âîçâðàòà
4264
  ôëàãîâ èç ïðîöåäóð:
4263
  ôëàãîâ èç ïðîöåäóð:
4265
 
4264
 
4266
  int CARRYFLAG FOPEN();	// îáúÿâëåíèå ïðîöåäóðû
4265
  int CARRYFLAG FOPEN();        // îáúÿâëåíèå ïðîöåäóðû
4267
 
4266
 
4268
  void proc()
4267
  void proc()
4269
  {
4268
  {
4270
    IF ( FOPEN(name,0) ) Error ( "Not open file" );
4269
    IF ( FOPEN(name,0) ) Error ( "Not open file" );
4271
  }
4270
  }
4272
 
4271
 
4273
      Âàðèàíòû äîïóñòèìîãî ñèíòàêñèñà äëÿ èñïîëüçîâàíèÿ âîçâðàòà ôëàãà:
4272
      Âàðèàíòû äîïóñòèìîãî ñèíòàêñèñà äëÿ èñïîëüçîâàíèÿ âîçâðàòà ôëàãà:
4274
 
4273
 
4275
  IF ( ! FOPEN() )...
4274
  IF ( ! FOPEN() )...
4276
  IF ( @ FOPEN() )...
4275
  IF ( @ FOPEN() )...
4277
  IF ( ! @ FOPEN() )...
4276
  IF ( ! @ FOPEN() )...
4278
  IF ( handl = FOPEN() )...
4277
  IF ( handl = FOPEN() )...
4279
  IF ( handl = @ FOPEN() )...
4278
  IF ( handl = @ FOPEN() )...
4280
  IF ( ! handl = FOPEN() )...
4279
  IF ( ! handl = FOPEN() )...
4281
  IF ( ! handl = @ FOPEN() )...
4280
  IF ( ! handl = @ FOPEN() )...
4282
 
4281
 
4283
      À âîò âàðèàíòû, â êîòîðûõ, íåñìîòðÿ íà òî, ÷òî äëÿ ïðîöåäóðû îáúÿâëåí
4282
      À âîò âàðèàíòû, â êîòîðûõ, íåñìîòðÿ íà òî, ÷òî äëÿ ïðîöåäóðû îáúÿâëåí
4284
  âîçâðàò ôëàãà, áóäåò ïðîèçâîäèòüñÿ ñðàâíåíèå ðåãèñòðà AX:
4283
  âîçâðàò ôëàãà, áóäåò ïðîèçâîäèòüñÿ ñðàâíåíèå ðåãèñòðà AX:
4285
 
4284
 
4286
  IF ( FOPEN() == 5 )...	// ïðîèçâîäèòñÿ ñðàâíåíèå
4285
  IF ( FOPEN() == 5 )...        // ïðîèçâîäèòñÿ ñðàâíåíèå
4287
  IF ( FOPEN() + 2 )...   // ðåçóëüòàò ïðîöåäóðû ïîäâåðãàåòñÿ äàëüíåéøåìó
4286
  IF ( FOPEN() + 2 )...   // ðåçóëüòàò ïðîöåäóðû ïîäâåðãàåòñÿ äàëüíåéøåìó
4288
                          // âû÷èñëåíèþ, â ðåçóëüòàòå êîòîðîãî ôëàãè áóäóò
4287
                          // âû÷èñëåíèþ, â ðåçóëüòàòå êîòîðîãî ôëàãè áóäóò
4289
  			// èçìåíåíû.
4288
                        // èçìåíåíû.
4290
Return to contents.
4289
Return to contents.
4291
 
4290
 
4292
 
4291
 
4293
 
4292
 
4294
  11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
4293
  11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
4295
 
4294
 
4296
 
4295
 
4297
      Ðàíåå êàæäîìó ïàðàìåòðó ðåãèñòðîâîé ïðîöåäóðû ñîîòâåòñòâîâàë ñòðîãî
4296
      Ðàíåå êàæäîìó ïàðàìåòðó ðåãèñòðîâîé ïðîöåäóðû ñîîòâåòñòâîâàë ñòðîãî
4298
  îïðåäåëåííûé ðåãèñòð. Íàïðèìåð, äëÿ ïåðåìåííûõ òèïà int èëè word ïåðâûé
4297
  îïðåäåëåííûé ðåãèñòð. Íàïðèìåð, äëÿ ïåðåìåííûõ òèïà int èëè word ïåðâûé
4299
  ïàðàìåòð ïåðåäàâàëñÿ ÷åðåç ðåãèñòð AX, 2-é - BX, 3-é - CX, 4-é - DX, 5-é -
4298
  ïàðàìåòð ïåðåäàâàëñÿ ÷åðåç ðåãèñòð AX, 2-é - BX, 3-é - CX, 4-é - DX, 5-é -
4300
  DI, 6-é - SI. Ïîýòîìó, åñëè Âàì áûëî íåîáõîäèìî ïåðåäàòü òîëüêî îäèí
4299
  DI, 6-é - SI. Ïîýòîìó, åñëè Âàì áûëî íåîáõîäèìî ïåðåäàòü òîëüêî îäèí
4301
  ïàðàìåòð ÷åðåç ðåãèñòð SI, òî ïðèõîäèëîñü ïåðåä íèì ïèñàòü ïÿòü çàïÿòûõ.
4300
  ïàðàìåòð ÷åðåç ðåãèñòð SI, òî ïðèõîäèëîñü ïåðåä íèì ïèñàòü ïÿòü çàïÿòûõ.
4302
  Âîò êàê, íàïðèìåð, âûãëÿäèò âûçîâ ïðîöåäóðû STRCPY:
4301
  Âîò êàê, íàïðèìåð, âûãëÿäèò âûçîâ ïðîöåäóðû STRCPY:
4303
 
4302
 
4304
  void main ()
4303
  void main ()
4305
  {
4304
  {
4306
    STRCPY ( , , , , #dest, #sourc ) ;
4305
    STRCPY ( , , , , #dest, #sourc ) ;
4307
  }
4306
  }
4308
 
4307
 
4309
      Òåïåðü ðåãèñòðû ìîãóò ðàñïîëàãàòüñÿ ïðè ïåðåäà÷å ïàðàìåòðîâ
4308
      Òåïåðü ðåãèñòðû ìîãóò ðàñïîëàãàòüñÿ ïðè ïåðåäà÷å ïàðàìåòðîâ
4310
  ïðîèçâîëüíûì îáðàçîì. Íàäî òîëüêî îáúÿâèòü êîìïèëÿòîðó î òîì, êàêîé ðåãèñòð
4309
  ïðîèçâîëüíûì îáðàçîì. Íàäî òîëüêî îáúÿâèòü êîìïèëÿòîðó î òîì, êàêîé ðåãèñòð
4311
  çàêðåïëåí çà êàêèì ïàðàìåòðîì äàííîé ïðîöåäóðû. Ïîñëå òàêîãî îáúÿâëåíèÿ
4310
  çàêðåïëåí çà êàêèì ïàðàìåòðîì äàííîé ïðîöåäóðû. Ïîñëå òàêîãî îáúÿâëåíèÿ
4312
  êîìïèëÿòîð áóäåò ñàì ñëåäèòü çà òåì, ÷åðåç êàêîé ðåãèñòð ïåðåäàâàòü
4311
  êîìïèëÿòîð áóäåò ñàì ñëåäèòü çà òåì, ÷åðåç êàêîé ðåãèñòð ïåðåäàâàòü
4313
  ïàðàìåòð ïðîöåäóðå, åãî ðàçìåðíîñòüþ è ÷èñëîì ïåðåäàâàåìûõ ïàðàìåòðîâ. Âîò
4312
  ïàðàìåòð ïðîöåäóðå, åãî ðàçìåðíîñòüþ è ÷èñëîì ïåðåäàâàåìûõ ïàðàìåòðîâ. Âîò
4314
  êàê áóäåò âûãëÿäåòü îáúÿâëåíèå è èñïîëüçîâàíèå ïðîöåäóðû STRCPY:
4313
  êàê áóäåò âûãëÿäåòü îáúÿâëåíèå è èñïîëüçîâàíèå ïðîöåäóðû STRCPY:
4315
 
4314
 
4316
  void STRCPY ( DI, SI ) ;	//ýòî îáúÿâëåíèå ïðîöåäóðû
4315
  void STRCPY ( DI, SI ) ;      //ýòî îáúÿâëåíèå ïðîöåäóðû
4317
 
4316
 
4318
  void main ()
4317
  void main ()
4319
  {
4318
  {
4320
    STRCPY ( #dest, #sourc ) ;	//à ýòî âûçîâ ïðîöåäóðû
4319
    STRCPY ( #dest, #sourc ) ;  //à ýòî âûçîâ ïðîöåäóðû
4321
  }
4320
  }
4322
 
4321
 
4323
      Ìîæíî íå äåëàòü îáúÿâëåíèÿ ïðîöåäóðû, à óêàçàòü ðàñïîëîæåíèå ðåãèñòðîâ
4322
      Ìîæíî íå äåëàòü îáúÿâëåíèÿ ïðîöåäóðû, à óêàçàòü ðàñïîëîæåíèå ðåãèñòðîâ
4324
  â çàãîëîâêå ïðîöåäóðû. Íî òîãäà òàêàÿ ïðîöåäóðà äîëæíà âûçûâàòüñÿ òîëüêî
4323
  â çàãîëîâêå ïðîöåäóðû. Íî òîãäà òàêàÿ ïðîöåäóðà äîëæíà âûçûâàòüñÿ òîëüêî
4325
  ïîñëå åå îïðåäåëåíèÿ. Âîò ïðèìåð ïðîöåäóðû âûâîäÿùåé íà ýêðàí íåñêîëüêî
4324
  ïîñëå åå îïðåäåëåíèÿ. Âîò ïðèìåð ïðîöåäóðû âûâîäÿùåé íà ýêðàí íåñêîëüêî
4326
  îäèíàêîâûõ ñèìâîëîâ:
4325
  îäèíàêîâûõ ñèìâîëîâ:
4327
 
4326
 
4328
  void PUTNCHAR(AL,CX,BL,BH)
4327
  void PUTNCHAR(AL,CX,BL,BH)
4329
  /* 1 ïàðàìåòð â AL - êîä ñèìâîëà, êîòîðûé áóäåò âûâåäåí
4328
  /* 1 ïàðàìåòð â AL - êîä ñèìâîëà, êîòîðûé áóäåò âûâåäåí
4330
     2 ïàðàìåòð â CX - ÷èñëî âûâîäèìûõ ñèìâîëîâ
4329
     2 ïàðàìåòð â CX - ÷èñëî âûâîäèìûõ ñèìâîëîâ
4331
     3 ïàðàìåòð â BL - öâåòîâîé àòðèáóò
4330
     3 ïàðàìåòð â BL - öâåòîâîé àòðèáóò
4332
     4 ïàðàìåòð â BH - íîìåð âèäåîñòðàíèöû
4331
     4 ïàðàìåòð â BH - íîìåð âèäåîñòðàíèöû
4333
  */
4332
  */
4334
  {
4333
  {
4335
    AH=9;
4334
    AH=9;
4336
    $INT 0x10
4335
    $INT 0x10
4337
  }
4336
  }
4338
 
4337
 
4339
      Ïðè îáúÿâëåíèè ðåãèñòðîâîé ïðîöåäóðû ìîæíî òàêæå óêàçûâàòü êàêîé òèï
4338
      Ïðè îáúÿâëåíèè ðåãèñòðîâîé ïðîöåäóðû ìîæíî òàêæå óêàçûâàòü êàêîé òèï
4340
  ïåðåìåííîé îæèäàåò ïðîöåäóðà (çíàêîâûé/áåç çíàêîâûé èëè âåùåñòâåííûé). Ïî
4339
  ïåðåìåííîé îæèäàåò ïðîöåäóðà (çíàêîâûé/áåç çíàêîâûé èëè âåùåñòâåííûé). Ïî
4341
  óìîë÷àíèþ ñ÷èòàåòñÿ áåç çíàêîâûé òèï. Îäíàêî çíàêîâûé òèï óêàçûâàòü åñòü
4340
  óìîë÷àíèþ ñ÷èòàåòñÿ áåç çíàêîâûé òèï. Îäíàêî çíàêîâûé òèï óêàçûâàòü åñòü
4342
  ñìûñë òîëüêî åñëè ïàðàìåòð ïåðåäàåòñÿ ÷åðåç ðåãèñòð AL/AX/EAX. ×åðåç äðóãèå
4341
  ñìûñë òîëüêî åñëè ïàðàìåòð ïåðåäàåòñÿ ÷åðåç ðåãèñòð AL/AX/EAX. ×åðåç äðóãèå
4343
  ðåãèñòðû ïåðåìåííàÿ âñåãäà ïåðåäàåòñÿ êàê áåç çíàêîâàÿ. Ïðèìåð îáúÿâëåíèÿ
4342
  ðåãèñòðû ïåðåìåííàÿ âñåãäà ïåðåäàåòñÿ êàê áåç çíàêîâàÿ. Ïðèìåð îáúÿâëåíèÿ
4344
  ðåãèñòðîâîé ïðîöåäóðû ñ óêàçàíèåì òèïîâ:
4343
  ðåãèñòðîâîé ïðîöåäóðû ñ óêàçàíèåì òèïîâ:
4345
 
4344
 
4346
  int fastcall Exampl( word CX, int AX, DX, float ESI ) ;
4345
  int fastcall Exampl( word CX, int AX, DX, float ESI ) ;
4347
   |    |        |        |         |   |   |
4346
   |    |        |        |         |   |   |
4348
   |    |        |        |         |   |   |---- 4-é ïàðàì. èìååò òèï float è
4347
   |    |        |        |         |   |   |---- 4-é ïàðàì. èìååò òèï float è
4349
   |    |        |        |         |   |         ïåðåä. ÷åðåç ðåãèñòð ESI.
4348
   |    |        |        |         |   |         ïåðåä. ÷åðåç ðåãèñòð ESI.
4350
   |    |        |        |         |   |-------- 3-é ïàðàì. èìååò ïî óìîë÷.
4349
   |    |        |        |         |   |-------- 3-é ïàðàì. èìååò ïî óìîë÷.
4351
   |    |        |        |         |             òèï word è ïåðåä. ÷åðåç DX.
4350
   |    |        |        |         |             òèï word è ïåðåä. ÷åðåç DX.
4352
   |    |        |        |         |------------ 2-é ïàðàì. èìååò òèï int è
4351
   |    |        |        |         |------------ 2-é ïàðàì. èìååò òèï int è
4353
   |    |        |        |                       ïåðåäàåòñÿ ÷åðåç ðåãèñòð AX.
4352
   |    |        |        |                       ïåðåäàåòñÿ ÷åðåç ðåãèñòð AX.
4354
   |    |        |        |---------------------- 1-é ïàðàì. èìååò òèï word è
4353
   |    |        |        |---------------------- 1-é ïàðàì. èìååò òèï word è
4355
   |    |        |                                ïåðåäàåòñÿ ÷åðåç ðåãèñòð CX.
4354
   |    |        |                                ïåðåäàåòñÿ ÷åðåç ðåãèñòð CX.
4356
   |    |        |------------------------------- Èìÿ îáúÿâëÿåìîé ïðîöåäóðû.
4355
   |    |        |------------------------------- Èìÿ îáúÿâëÿåìîé ïðîöåäóðû.
4357
   |    |---------------------------------------- Ìîäèôèêàòîð, óêàçûâàþùèé, ÷òî
4356
   |    |---------------------------------------- Ìîäèôèêàòîð, óêàçûâàþùèé, ÷òî
4358
   |                                              ýòà ïðîö. ÿâë. ðåãèñòðîâîé.
4357
   |                                              ýòà ïðîö. ÿâë. ðåãèñòðîâîé.
4359
   |--------------------------------------------- Ïðîöåäóðà âîçâðàùàåò ïåðåìåí.
4358
   |--------------------------------------------- Ïðîöåäóðà âîçâðàùàåò ïåðåìåí.
4360
  						                          òèïà int.
4359
                                                                          òèïà int.
4361
 
4360
 
4362
      Åñëè Âû ñäåëàëè îáúÿâëåíèå ðåãèñòðîâ ïðîöåäóðû, òî êîìïèëÿòîð áóäåò
4361
      Åñëè Âû ñäåëàëè îáúÿâëåíèå ðåãèñòðîâ ïðîöåäóðû, òî êîìïèëÿòîð áóäåò
4363
  ñòðîãî ñëåäèòü çà êîëè÷åñòâîì óêàçàííûõ ïàðàìåòðîâ ïðè âûçîâå ýòîé
4362
  ñòðîãî ñëåäèòü çà êîëè÷åñòâîì óêàçàííûõ ïàðàìåòðîâ ïðè âûçîâå ýòîé
4364
  ïðîöåäóðû è âûäàâàòü ñîîáùåíèÿ îá îøèáêå, åñëè èõ áóäåò ìåíüøå èëè áîëüøå.
4363
  ïðîöåäóðû è âûäàâàòü ñîîáùåíèÿ îá îøèáêå, åñëè èõ áóäåò ìåíüøå èëè áîëüøå.
4365
  Ñ îäíîé ñòîðîíû ýòî õîðîøî - åñòü êîíòðîëü çà òåì, ÷òî Âû íè÷åãî íå çàáûëè
4364
  Ñ îäíîé ñòîðîíû ýòî õîðîøî - åñòü êîíòðîëü çà òåì, ÷òî Âû íè÷åãî íå çàáûëè
4366
  èëè íå äîáàâèëè ëèøíåãî ïðè âûçîâå ïðîöåäóðû. Ñ äðóãîé ñòîðîíû èíîãäà
4365
  èëè íå äîáàâèëè ëèøíåãî ïðè âûçîâå ïðîöåäóðû. Ñ äðóãîé ñòîðîíû èíîãäà
4367
  áûâàþò íåîáÿçàòåëüíûå ïàðàìåòðû, à èõ òåïåðü ïðèäåòñÿ ïðîïèñûâàòü. Íî åñëè
4366
  áûâàþò íåîáÿçàòåëüíûå ïàðàìåòðû, à èõ òåïåðü ïðèäåòñÿ ïðîïèñûâàòü. Íî åñëè
4368
  Âû ïðè âûçîâå ïðîöåäóðû íå óêàæåòå íè îäíîãî ïàðàìåòðà, òî êîìïèëÿòîð íå
4367
  Âû ïðè âûçîâå ïðîöåäóðû íå óêàæåòå íè îäíîãî ïàðàìåòðà, òî êîìïèëÿòîð íå
4369
  áóäåò Âàì âûäàâàòü ñîîáùåíèå îá îøèáêå.  Ýòî äàåò Âàì âîçìîæíîñòü
4368
  áóäåò Âàì âûäàâàòü ñîîáùåíèå îá îøèáêå.  Ýòî äàåò Âàì âîçìîæíîñòü
4370
  ïðîèíèöèàëèçèðîâàòü ðåãèñòðû, ÷åðåç êîòîðûå Âû ïåðåäàåòå ïàðàìåòðû, âíå
4369
  ïðîèíèöèàëèçèðîâàòü ðåãèñòðû, ÷åðåç êîòîðûå Âû ïåðåäàåòå ïàðàìåòðû, âíå
4371
  âûçîâà ïðîöåäóðû.  Íî åñëè Âû óêàæåòå, õîòü îäèí ïàðàìåòð, òî Âàì ïðèäåòñÿ
4370
  âûçîâà ïðîöåäóðû.  Íî åñëè Âû óêàæåòå, õîòü îäèí ïàðàìåòð, òî Âàì ïðèäåòñÿ
4372
  óêàçûâàòü è îñòàëüíûå, èíà÷å êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî Âû èõ ñëó÷àéíî
4371
  óêàçûâàòü è îñòàëüíûå, èíà÷å êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî Âû èõ ñëó÷àéíî
4373
  ïðîïóñòèëè è âûäàñò ñîîáùåíèå îá îøèáêå.
4372
  ïðîïóñòèëè è âûäàñò ñîîáùåíèå îá îøèáêå.
4374
 
4373
 
4375
      Åñëè Âû íå îáúÿâèëè ðåãèñòðû íè ïðè îáúÿâëåíèè ðåãèñòðîâîé ïðîöåäóðû,
4374
      Åñëè Âû íå îáúÿâèëè ðåãèñòðû íè ïðè îáúÿâëåíèè ðåãèñòðîâîé ïðîöåäóðû,
4376
  íè â çàãîëîâêå ñàìîé ïðîöåäóðû, òî êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî ïàðàìåòðû
4375
  íè â çàãîëîâêå ñàìîé ïðîöåäóðû, òî êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî ïàðàìåòðû
4377
  â ýòó ïðîöåäóðó ïåðåäàþòñÿ ñòàðûì ñïîñîáîì. Òàêèì îáðàçîì, äîñòèãàåòñÿ
4376
  â ýòó ïðîöåäóðó ïåðåäàþòñÿ ñòàðûì ñïîñîáîì. Òàêèì îáðàçîì, äîñòèãàåòñÿ
4378
  ïîëíàÿ ñîâìåñòèìîñòü ñ ïðåäûäóùèìè âåðñèÿìè êîìïèëÿòîðà.
4377
  ïîëíàÿ ñîâìåñòèìîñòü ñ ïðåäûäóùèìè âåðñèÿìè êîìïèëÿòîðà.
4379
Return to contents.
4378
Return to contents.
4380
 
4379
 
4381
 
4380
 
4382
 
4381
 
4383
  11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
4382
  11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
4384
 
4383
 
4385
 
4384
 
4386
      Êàê èçâåñòíî, ðàíåå â C-- êîíòðîëü çà ÷èñëîì è òèïîì ïåðåäàâàåìûõ
4385
      Êàê èçâåñòíî, ðàíåå â C-- êîíòðîëü çà ÷èñëîì è òèïîì ïåðåäàâàåìûõ
4387
  ïðîöåäóðå ïàðàìåòðîâ âîçëàãàëñÿ íà ïðîãðàììèñòà. Ïîýòîìó âîçíèêëà íåïðîñòàÿ
4386
  ïðîöåäóðå ïàðàìåòðîâ âîçëàãàëñÿ íà ïðîãðàììèñòà. Ïîýòîìó âîçíèêëà íåïðîñòàÿ
4388
  çàäà÷à, ñîâìåñòèòü îäíîâðåìåííî îòñóòñòâèå êîíòðîëÿ çà ïàðàìåòðàìè (äëÿ
4387
  çàäà÷à, ñîâìåñòèòü îäíîâðåìåííî îòñóòñòâèå êîíòðîëÿ çà ïàðàìåòðàìè (äëÿ
4389
  ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè) è åå íàëè÷èå.  ðåçóëüòàòå
4388
  ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè) è åå íàëè÷èå.  ðåçóëüòàòå
4390
  êîìïðîìèññîâ ïîÿâèëñÿ âàðèàíò íåìíîãî îòëè÷àþùèéñÿ îò òðàäèöèîííî ïðèíÿòîãî
4389
  êîìïðîìèññîâ ïîÿâèëñÿ âàðèàíò íåìíîãî îòëè÷àþùèéñÿ îò òðàäèöèîííî ïðèíÿòîãî
4391
  â ÿçûêàõ C.
4390
  â ÿçûêàõ C.
4392
 
4391
 
4393
      Ãëàâíîå îòëè÷èå - ýòî òî, ÷òî ïàðàìåòðû, îïðåäåëÿåìûå ïðè îïðåäåëåíèè
4392
      Ãëàâíîå îòëè÷èå - ýòî òî, ÷òî ïàðàìåòðû, îïðåäåëÿåìûå ïðè îïðåäåëåíèè
4394
  ïðîöåäóðû, íå áóäóò âîñïðèíèìàòüñÿ êîìïèëÿòîðîì äëÿ êîíòðîëÿ çà íèìè. Âî
4393
  ïðîöåäóðû, íå áóäóò âîñïðèíèìàòüñÿ êîìïèëÿòîðîì äëÿ êîíòðîëÿ çà íèìè. Âî
4395
  âñåõ ÿçûêàõ C äîïóñêàåòñÿ ñîâìåùåíèå ïðîòîòèïà ïðîöåäóðû è åå îáúÿâëåíèÿ.
4394
  âñåõ ÿçûêàõ C äîïóñêàåòñÿ ñîâìåùåíèå ïðîòîòèïà ïðîöåäóðû è åå îáúÿâëåíèÿ.
4396
   C-- äëÿ òîãî, ÷òîáû âêëþ÷èëñÿ êîíòðîëü çà ïàðàìåòðàìè ñòåêîâîé ïðîöåäóðû,
4395
   C-- äëÿ òîãî, ÷òîáû âêëþ÷èëñÿ êîíòðîëü çà ïàðàìåòðàìè ñòåêîâîé ïðîöåäóðû,
4397
  íàäî ýòó ïðîöåäóðó îáÿçàòåëüíî îáúÿâèòü. Íî íå âñÿêîå îáúÿâëåíèå ïðîöåäóðû
4396
  íàäî ýòó ïðîöåäóðó îáÿçàòåëüíî îáúÿâèòü. Íî íå âñÿêîå îáúÿâëåíèå ïðîöåäóðû
4398
  áóäåò ñèãíàëîì êîìïèëÿòîðó î âêëþ÷åíèè êîíòðîëÿ çà ïàðàìåòðàìè ýòîé
4397
  áóäåò ñèãíàëîì êîìïèëÿòîðó î âêëþ÷åíèè êîíòðîëÿ çà ïàðàìåòðàìè ýòîé
4399
  ïðîöåäóðû. Åñëè ïðè îáúÿâëåíèè â êðóãëûõ ñêîáêàõ íè÷åãî íå áóäåò, òî
4398
  ïðîöåäóðû. Åñëè ïðè îáúÿâëåíèè â êðóãëûõ ñêîáêàõ íè÷åãî íå áóäåò, òî
4400
  êîìïèëÿòîð íå áóäåò îòñëåæèâàòü ïàðàìåòðû, ïåðåäàâàåìûå ýòîé ïðîöåäóðå. Â
4399
  êîìïèëÿòîð íå áóäåò îòñëåæèâàòü ïàðàìåòðû, ïåðåäàâàåìûå ýòîé ïðîöåäóðå. Â
4401
  C++ òàêîå îáúÿâëåíèå îçíà÷àåò, ÷òî ïðîöåäóðå íå ïåðåäàþòñÿ íèêàêèå
4400
  C++ òàêîå îáúÿâëåíèå îçíà÷àåò, ÷òî ïðîöåäóðå íå ïåðåäàþòñÿ íèêàêèå
4402
  ïàðàìåòðû. Â C-- äëÿ ýòîãî íàäî ïðè îáúÿâëåíèè ïðîöåäóðû â êðóãëûõ ñêîáêàõ
4401
  ïàðàìåòðû. Â C-- äëÿ ýòîãî íàäî ïðè îáúÿâëåíèè ïðîöåäóðû â êðóãëûõ ñêîáêàõ
4403
  îáÿçàòåëüíî íàïèñàòü void. Íàïðèìåð:
4402
  îáÿçàòåëüíî íàïèñàòü void. Íàïðèìåð:
4404
 
4403
 
4405
  int proc ( void ) ;
4404
  int proc ( void ) ;
4406
 
4405
 
4407
      Âñòðåòèâ òàêîå îáúÿâëåíèå ïðîöåäóðû, êîìïèëÿòîð áóäåò ñëåäèòü çà òåì,
4406
      Âñòðåòèâ òàêîå îáúÿâëåíèå ïðîöåäóðû, êîìïèëÿòîð áóäåò ñëåäèòü çà òåì,
4408
  ÷òîáû ýòîé ïðîöåäóðå íå áûëè ïåðåäàíû ïàðàìåòðû.
4407
  ÷òîáû ýòîé ïðîöåäóðå íå áûëè ïåðåäàíû ïàðàìåòðû.
4409
 
4408
 
4410
      Ïðè îáúÿâëåíèè ïðîöåäóðû èìåíà ïàðàìåòðîâ ìîæíî îïóñêàòü. Êàê èçâåñòíî,
4409
      Ïðè îáúÿâëåíèè ïðîöåäóðû èìåíà ïàðàìåòðîâ ìîæíî îïóñêàòü. Êàê èçâåñòíî,
4411
  â C-- ïàðàìåòðû ïðîöåäóðû îäíîãî òèïà çàïèñûâàþòñÿ ÷åðåç çàïÿòóþ. Äëÿ ñìåíû
4410
  â C-- ïàðàìåòðû ïðîöåäóðû îäíîãî òèïà çàïèñûâàþòñÿ ÷åðåç çàïÿòóþ. Äëÿ ñìåíû
4412
  òèïà èñïîëüçóþò òî÷êó ñ çàïÿòîé. Ïðè îáúÿâëåíèè ñìåíó òèïà ìîæíî
4411
  òèïà èñïîëüçóþò òî÷êó ñ çàïÿòîé. Ïðè îáúÿâëåíèè ñìåíó òèïà ìîæíî
4413
  ïðîèçâîäèòü è ïîñëå çàïÿòîé:
4412
  ïðîèçâîäèòü è ïîñëå çàïÿòîé:
4414
 
4413
 
4415
  void ptoc ( int a, b, c; word d );
4414
  void ptoc ( int a, b, c; word d );
4416
  void proc ( int, int, int, word );
4415
  void proc ( int, int, int, word );
4417
  void proc ( int, int, int; word );
4416
  void proc ( int, int, int; word );
4418
 
4417
 
4419
      Âñå ýòè ïðèìåðû îáúÿâëåíèé ÿâëÿþòñÿ èäåíòè÷íûìè è äîïóñòèìûìè.
4418
      Âñå ýòè ïðèìåðû îáúÿâëåíèé ÿâëÿþòñÿ èäåíòè÷íûìè è äîïóñòèìûìè.
4420
 
4419
 
4421
      Äëÿ êîíòðîëÿ çà ïðîöåäóðàìè ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ áûë ââåäåí
4420
      Äëÿ êîíòðîëÿ çà ïðîöåäóðàìè ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ áûë ââåäåí
4422
  íîâûé äëÿ C-- ýëåìåíò ñèíòàêñèñà - ìíîãîòî÷èå èëè åãî åùå íàçûâàþò ýëëèïñ.
4421
  íîâûé äëÿ C-- ýëåìåíò ñèíòàêñèñà - ìíîãîòî÷èå èëè åãî åùå íàçûâàþò ýëëèïñ.
4423
  Âîò êàê áóäåò âûãëÿäåòü îáúÿâëåíèå ïðîöåäóðû printf:
4422
  Âîò êàê áóäåò âûãëÿäåòü îáúÿâëåíèå ïðîöåäóðû printf:
4424
 
4423
 
4425
  void cdecl printf ( word, ... );
4424
  void cdecl printf ( word, ... );
4426
Return to contents.
4425
Return to contents.
4427
 
4426
 
4428
 
4427
 
4429
 
4428
 
4430
  11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.
4429
  11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.
4431
 
4430
 
4432
 
4431
 
4433
      Òåïåðü ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4432
      Òåïåðü ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4434
  Åñëè ïåðåä âûçîâîì äèíàìè÷åñêîé ïðîöåäóðû ïîñòàâèòü ñèìâîë @, òî êîä ýòîé
4433
  Åñëè ïåðåä âûçîâîì äèíàìè÷åñêîé ïðîöåäóðû ïîñòàâèòü ñèìâîë @, òî êîä ýòîé
4435
  ïðîöåäóðû áóäåò âñòàâëåí, à íå âûçâàí èíñòðóêöèåé CALL.
4434
  ïðîöåäóðû áóäåò âñòàâëåí, à íå âûçâàí èíñòðóêöèåé CALL.
4436
 
4435
 
4437
      Ïðè èñïîëüçîâàíèè ñòåêîâûõ äèíàìè÷åñêèõ ïðîöåäóð â êà÷åñòâå ìàêðîñîâ
4436
      Ïðè èñïîëüçîâàíèè ñòåêîâûõ äèíàìè÷åñêèõ ïðîöåäóð â êà÷åñòâå ìàêðîñîâ
4438
  î÷èñòêà ñòåêà îò ïåðåäàííûõ ïàðàìåòðîâ ïðîèçâîäèòñÿ àññåìáëåðíîé
4437
  î÷èñòêà ñòåêà îò ïåðåäàííûõ ïàðàìåòðîâ ïðîèçâîäèòñÿ àññåìáëåðíîé
4439
  èíñòðóêöèåé ADD SP,SIZE_PARAMETRS ñðàçó ïîñëå îêîí÷àíèÿ êîäà âñòàâëåííîãî
4438
  èíñòðóêöèåé ADD SP,SIZE_PARAMETRS ñðàçó ïîñëå îêîí÷àíèÿ êîäà âñòàâëåííîãî
4440
  ìàêðîñà. Ïîýòîìó, åñëè ýòà ïðîöåäóðà èñïîëüçîâàëà ôëàãè â êà÷åñòâå
4439
  ìàêðîñà. Ïîýòîìó, åñëè ýòà ïðîöåäóðà èñïîëüçîâàëà ôëàãè â êà÷åñòâå
4441
  âîçâðàòà, òî îíè áóäóò ðàçðóøåíû.
4440
  âîçâðàòà, òî îíè áóäóò ðàçðóøåíû.
4442
Return to contents.
4441
Return to contents.
4443
 
4442
 
4444
 
4443
 
4445
 
4444
 
4446
  11.12 Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.
4445
  11.12 Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.
4447
 
4446
 
4448
 
4447
 
4449
      Ïðè ïåðåäà÷å ïàðàìåòðîâ ÷åðåç ðåãèñòðû, ÷àùå âñåãî ïîëó÷àåòñÿ áîëåå
4448
      Ïðè ïåðåäà÷å ïàðàìåòðîâ ÷åðåç ðåãèñòðû, ÷àùå âñåãî ïîëó÷àåòñÿ áîëåå
4450
  êîìïàêòíûé è áûñòðûé êîä. Íî ñîäåðæèìîå ðåãèñòðîâ ìîæåò áûòü ëåãêî
4449
  êîìïàêòíûé è áûñòðûé êîä. Íî ñîäåðæèìîå ðåãèñòðîâ ìîæåò áûòü ëåãêî
4451
  ðàçðóøåíî. Åñëè â Âàøåé ïðîöåäóðå, êàêîé-òî èç ïàðàìåòðîâ èñïîëüçóåòñÿ
4450
  ðàçðóøåíî. Åñëè â Âàøåé ïðîöåäóðå, êàêîé-òî èç ïàðàìåòðîâ èñïîëüçóåòñÿ
4452
  îäíîêðàòíî äëÿ òîãî, ÷òîáû â íà÷àëå ïðîöåäóðû èíèöèàëèçèðîâàòü êàêîé-òî
4451
  îäíîêðàòíî äëÿ òîãî, ÷òîáû â íà÷àëå ïðîöåäóðû èíèöèàëèçèðîâàòü êàêîé-òî
4453
  ðåãèñòð, òî Âû ìîæåòå ïåðåäàòü ýòî çíà÷åíèå â ïðîöåäóðó ñðàçó ÷åðåç
4452
  ðåãèñòð, òî Âû ìîæåòå ïåðåäàòü ýòî çíà÷åíèå â ïðîöåäóðó ñðàçó ÷åðåç
4454
  ðåãèñòð, ìèíóÿ ñòàäèþ çàñîâûâàíèÿ è èçâëå÷åíèÿ ñîäåðæèìîãî â ñòåê. Ïðèìåð:
4453
  ðåãèñòð, ìèíóÿ ñòàäèþ çàñîâûâàíèÿ è èçâëå÷åíèÿ ñîäåðæèìîãî â ñòåê. Ïðèìåð:
4455
 
4454
 
4456
  int proc (int param1, param2, param3)
4455
  int proc (int param1, param2, param3)
4457
  {
4456
  {
4458
    (E)BX = param3;
4457
    (E)BX = param3;
4459
    (E)BX.TEG_STRUCT.var = proc2 (param1,papra2);
4458
    (E)BX.TEG_STRUCT.var = proc2 (param1,papra2);
4460
    proc3 (param1,param2);
4459
    proc3 (param1,param2);
4461
  }
4460
  }
4462
 
4461
 
4463
      Â ýòîì ïðèìåðå ïàðàìåòð param3 èñïîëüçóåòñÿ ëèøü äëÿ òîãî, ÷òîáû
4462
      Â ýòîì ïðèìåðå ïàðàìåòð param3 èñïîëüçóåòñÿ ëèøü äëÿ òîãî, ÷òîáû
4464
  èíèöèàëèçèðîâàòü ðåãèñòð (E)BX, ïîýòîìó åãî ìîæíî ñðàçó ïåðåäàòü ÷åðåç
4463
  èíèöèàëèçèðîâàòü ðåãèñòð (E)BX, ïîýòîìó åãî ìîæíî ñðàçó ïåðåäàòü ÷åðåç
4465
  ðåãèñòð:
4464
  ðåãèñòð:
4466
 
4465
 
4467
  int proc (int param1, param2, (E)BX)
4466
  int proc (int param1, param2, (E)BX)
4468
  {
4467
  {
4469
    (E)BX.TEG_STRUCT.var = proc2 (param1,papra2);
4468
    (E)BX.TEG_STRUCT.var = proc2 (param1,papra2);
4470
    proc3 (param1,param2);
4469
    proc3 (param1,param2);
4471
  }
4470
  }
4472
 
4471
 
4473
      Êàê Âû âèäèòå, ïðîöåäóðà íåìíîãî óïðîñòèëàñü.
4472
      Êàê Âû âèäèòå, ïðîöåäóðà íåìíîãî óïðîñòèëàñü.
4474
 
4473
 
4475
      Â ïðèíöèïå, ïîðÿäîê ðàñïîëîæåíèÿ ñòåêîâûõ è ðåãèñòðîâûõ ïàðàìåòðîâ íå
4474
      Â ïðèíöèïå, ïîðÿäîê ðàñïîëîæåíèÿ ñòåêîâûõ è ðåãèñòðîâûõ ïàðàìåòðîâ íå
4476
  ïðèíöèïèàëåí. Íî íàäî ïîìíèòü, ÷òî ñîäåðæèìîå ðåãèñòðîâ ìîæåò áûòü ëåãêî
4475
  ïðèíöèïèàëåí. Íî íàäî ïîìíèòü, ÷òî ñîäåðæèìîå ðåãèñòðîâ ìîæåò áûòü ëåãêî
4477
  ðàçðóøåíî, è ïîýòîìó ëó÷øå âñåãî ðåãèñòðîâûå ïàðàìåòðû èíèöèàëèçèðîâàòü
4476
  ðàçðóøåíî, è ïîýòîìó ëó÷øå âñåãî ðåãèñòðîâûå ïàðàìåòðû èíèöèàëèçèðîâàòü
4478
  ëèøü ïîñëå òîãî, êàê áûëè çàñóíóòû â ñòåê âñå ñòåêîâûå ïàðàìåòðû. Äëÿ
4477
  ëèøü ïîñëå òîãî, êàê áûëè çàñóíóòû â ñòåê âñå ñòåêîâûå ïàðàìåòðû. Äëÿ
4479
  ïðîöåäóð òèïà pascal ðåãèñòðîâûå ïàðàìåòðû ëó÷øå ðàñïîëàãàòü ïîñëå
4478
  ïðîöåäóð òèïà pascal ðåãèñòðîâûå ïàðàìåòðû ëó÷øå ðàñïîëàãàòü ïîñëå
4480
  ñòåêîâûõ ïàðàìåòðîâ. Äëÿ ïðîöåäóð òèïà cdecl è stdcall ñíà÷àëà ëó÷øå
4479
  ñòåêîâûõ ïàðàìåòðîâ. Äëÿ ïðîöåäóð òèïà cdecl è stdcall ñíà÷àëà ëó÷øå
4481
  ðàñïîëàãàòü ðåãèñòðîâûå ïàðàìåòðû.
4480
  ðàñïîëàãàòü ðåãèñòðîâûå ïàðàìåòðû.
4482
Return to contents.
4481
Return to contents.
4483
 
4482
 
4484
 
4483
 
4485
 
4484
 
4486
  11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
4485
  11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
4487
 
4486
 
4488
 
4487
 
4489
      Â C-- äîïóñòèìî äåëàòü âûçîâ ïðîöåäóðû, àäðåñ êîòîðîé íàõîäèòñÿ â
4488
      Â C-- äîïóñòèìî äåëàòü âûçîâ ïðîöåäóðû, àäðåñ êîòîðîé íàõîäèòñÿ â
4490
  ðåãèñòðå. Ïàðàìåòðû äëÿ òàêîãî âûçîâà ïåðåäàþòñÿ òîëüêî ÷åðåç ñòåê. Òèï
4489
  ðåãèñòðå. Ïàðàìåòðû äëÿ òàêîãî âûçîâà ïåðåäàþòñÿ òîëüêî ÷åðåç ñòåê. Òèï
4491
  âûçîâà ïðîöåäóðû äëÿ ïðîãðàìì ïîä Windows stdcall, äëÿ îñòàëüíûõ pascal.
4490
  âûçîâà ïðîöåäóðû äëÿ ïðîãðàìì ïîä Windows stdcall, äëÿ îñòàëüíûõ pascal.
4492
  Àäðåñ ïðîöåäóðû äëÿ 32-áèòíûõ ïðîãðàìì äîëæåí íàõîäèòñÿ â 32-áèòíîì
4491
  Àäðåñ ïðîöåäóðû äëÿ 32-áèòíûõ ïðîãðàìì äîëæåí íàõîäèòñÿ â 32-áèòíîì
4493
  ðåãèñòðå, à äëÿ 16-áèòíûõ ïðîãðàìì â 16-áèòíîì ðåãèñòðå. Ñ÷èòàåòñÿ, ÷òî
4492
  ðåãèñòðå, à äëÿ 16-áèòíûõ ïðîãðàìì â 16-áèòíîì ðåãèñòðå. Ñ÷èòàåòñÿ, ÷òî
4494
  òàêîé âûçîâ èìååò âîçâðàò òèïà unsigned int. Ïðèìåð:
4493
  òàêîé âûçîâ èìååò âîçâðàò òèïà unsigned int. Ïðèìåð:
4495
 
4494
 
4496
    BX = # proc;
4495
    BX = # proc;
4497
    BX (a);
4496
    BX (a);
4498
    IF ( BX(b) == 0 ) AX=2;
4497
    IF ( BX(b) == 0 ) AX=2;
4499
 
4498
 
4500
    Âû ïîëó÷èòå ñëåäóþùèé êîä:
4499
    Âû ïîëó÷èòå ñëåäóþùèé êîä:
4501
 
4500
 
4502
  test.c-- 8: BX=#proc;
4501
  test.c-- 8: BX=#proc;
4503
  0104 BB1A01                   mov     bx,11Ah
4502
  0104 BB1A01                   mov     bx,11Ah
4504
 
4503
 
4505
  test.c-- 9: BX(a);
4504
  test.c-- 9: BX(a);
4506
  0107 FF76FC                   push    word ptr [bp-4]
4505
  0107 FF76FC                   push    word ptr [bp-4]
4507
  010A FFD3                     call    near bx
4506
  010A FFD3                     call    near bx
4508
 
4507
 
4509
  test.c-- 10: IF (BX(b) == 0)AX=2;
4508
  test.c-- 10: IF (BX(b) == 0)AX=2;
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.
4516
 
4515
 
4517
 
4516
 
4518
 
4517
 
4519
  11.14 Âñòðîåííûå â êîìïèëÿòîð ïðîöåäóðû.
4518
  11.14 Âñòðîåííûå â êîìïèëÿòîð ïðîöåäóðû.
4520
 
4519
 
4521
 
4520
 
4522
      Äëÿ íåêîòîðûõ ïðîöåäóð Âû íå íàéäåòå èõ èñõîäíûå òåêñòû â áèáëèîòåêàõ
4521
      Äëÿ íåêîòîðûõ ïðîöåäóð Âû íå íàéäåòå èõ èñõîäíûå òåêñòû â áèáëèîòåêàõ
4523
  êîìïèëÿòîðà. Êîä ýòèõ ïðîöåäóð ãåíåðèðóåò êîìïèëÿòîð. Âîò ñïèñîê ýòèõ
4522
  êîìïèëÿòîðà. Êîä ýòèõ ïðîöåäóð ãåíåðèðóåò êîìïèëÿòîð. Âîò ñïèñîê ýòèõ
4524
  ïðîöåäóð:
4523
  ïðîöåäóð:
4525
 
4524
 
4526
  ABORT             Ïðåêðàùåíèå âûïîëíåíèÿ ïðîãðàììû
4525
  ABORT             Ïðåêðàùåíèå âûïîëíåíèÿ ïðîãðàììû
4527
  atan              Âû÷èñëèòü àðêòàíãåíñ ÷èñëà
4526
  atan              Âû÷èñëèòü àðêòàíãåíñ ÷èñëà
4528
  atan2             Âû÷èñëèòü àðêòàíãåíñ ÷èñëà
4527
  atan2             Âû÷èñëèòü àðêòàíãåíñ ÷èñëà
4529
  ATEXIT            Çàðåãèñòðèðîâàòü ôóíêöèþ âûïîëíÿþùóþñÿ ïðè âûõîäå.
4528
  ATEXIT            Çàðåãèñòðèðîâàòü ôóíêöèþ âûïîëíÿþùóþñÿ ïðè âûõîäå.
4530
  cos               Âîçâðàùàåò êîñèíóñ óãëà
4529
  cos               Âîçâðàùàåò êîñèíóñ óãëà
4531
  EXIT              Çàêîí÷èòü ïðîãðàììó ñ êîäîì îøèáêè
4530
  EXIT              Çàêîí÷èòü ïðîãðàììó ñ êîäîì îøèáêè
4532
  exp               Âîçâðàùàåò ýêñïîíåíòó ÷èñëà
4531
  exp               Âîçâðàùàåò ýêñïîíåíòó ÷èñëà
4533
  inp/inportb       Ñ÷èòàòü îäèí áàéò èç ïîðòà
4532
  inp/inportb       Ñ÷èòàòü îäèí áàéò èç ïîðòà
4534
  inport            Ñ÷èòàòü ñëîâî èç ïîðòà
4533
  inport            Ñ÷èòàòü ñëîâî èç ïîðòà
4535
  inportd           Ñ÷èòàòü äâîéíîå ñëîâî èç ïîðòà
4534
  inportd           Ñ÷èòàòü äâîéíîå ñëîâî èç ïîðòà
4536
  fabs              Âîçâðàùàåò àáñîëþòíîå çíà÷åíèå ÷èñëà
4535
  fabs              Âîçâðàùàåò àáñîëþòíîå çíà÷åíèå ÷èñëà
4537
  log               Âû÷èñëÿåò íàòóðàëüíûé ëîãàðèôì ÷èñëà
4536
  log               Âû÷èñëÿåò íàòóðàëüíûé ëîãàðèôì ÷èñëà
4538
  log10             Âû÷èñëÿåò äåñÿòè÷íûé ëîãàðèôì ÷èñëà
4537
  log10             Âû÷èñëÿåò äåñÿòè÷íûé ëîãàðèôì ÷èñëà
4539
  outp/outportb     Çàïèñàòü îäèí áàéò â ïîðò
4538
  outp/outportb     Çàïèñàòü îäèí áàéò â ïîðò
4540
  outport           Çàïèñàòü ñëîâî â ïîðò
4539
  outport           Çàïèñàòü ñëîâî â ïîðò
4541
  outportd          Çàïèñàòü äâîéíîå ñëîâî â ïîðò
4540
  outportd          Çàïèñàòü äâîéíîå ñëîâî â ïîðò
4542
  sin               Âîçâðàùàåò ñèíóñ óãëà
4541
  sin               Âîçâðàùàåò ñèíóñ óãëà
4543
  sqrt              Èçâëå÷ü êâàäðàòíûé êîðåíü ÷åðåç FPU.
4542
  sqrt              Èçâëå÷ü êâàäðàòíûé êîðåíü ÷åðåç FPU.
4544
  tan               Âîçâðàùàåò òàíãåíñ óãëà
4543
  tan               Âîçâðàùàåò òàíãåíñ óãëà
4545
 
4544
 
4546
      Ðàçìåùåíèå ýòèõ ïðîöåäóð íåïîñðåäñòâåííî â êîìïèëÿòîðå, ñâÿçàíî ñ òåì,
4545
      Ðàçìåùåíèå ýòèõ ïðîöåäóð íåïîñðåäñòâåííî â êîìïèëÿòîðå, ñâÿçàíî ñ òåì,
4547
  ÷òî â íàñòîÿùèé ìîìåíò êîìïèëÿòîð ìîæåò òàêèì îáðàçîì ãåíåðèðîâàòü áîëåå
4546
  ÷òî â íàñòîÿùèé ìîìåíò êîìïèëÿòîð ìîæåò òàêèì îáðàçîì ãåíåðèðîâàòü áîëåå
4548
  ýôôåêòèâíûé êîä, ÷åì åñëè áû ýòè ïðîöåäóðû ðàñïîëàãàëèñü â áèáëèîòåêàõ.
4547
  ýôôåêòèâíûé êîä, ÷åì åñëè áû ýòè ïðîöåäóðû ðàñïîëàãàëèñü â áèáëèîòåêàõ.
4549
  Â áóäóùåì, ïî ìåðå ðàçâèòèÿ êîìïèëÿòîðà, ýòè ïðîöåäóðû ïîñòåïåííî áóäóò
4548
  Â áóäóùåì, ïî ìåðå ðàçâèòèÿ êîìïèëÿòîðà, ýòè ïðîöåäóðû ïîñòåïåííî áóäóò
4550
  âûíîñèòñÿ èç êîìïèëÿòîðà â áèáëèîòåêè.
4549
  âûíîñèòñÿ èç êîìïèëÿòîðà â áèáëèîòåêè.
4551
 
4550
 
4552
      Íî íè÷òî íå ìåøàåò Âàì óæå ñåé÷àñ íàïèñàòü ñâîè îäíîèìåííûå
4551
      Íî íè÷òî íå ìåøàåò Âàì óæå ñåé÷àñ íàïèñàòü ñâîè îäíîèìåííûå
4553
  áèáëèîòå÷íûå ïðîöåäóðû. Âñòðåòèâ îïðåäåëåíèå òàêîé ïðîöåäóðû, êîìïèëÿòîð íå
4552
  áèáëèîòå÷íûå ïðîöåäóðû. Âñòðåòèâ îïðåäåëåíèå òàêîé ïðîöåäóðû, êîìïèëÿòîð íå
4554
  áóäåò âûäàâàòü íèêàêèõ ñîîáùåíèå, îí ïðîñòî áóäåò ïðèìåíÿòü Âàø âàðèàíò
4553
  áóäåò âûäàâàòü íèêàêèõ ñîîáùåíèå, îí ïðîñòî áóäåò ïðèìåíÿòü Âàø âàðèàíò
4555
  ïðîöåäóðû.
4554
  ïðîöåäóðû.
4556
Return to contents.
4555
Return to contents.
4557
 
4556
 
4558
 
4557
 
4559
 
4558
 
4560
    11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
4559
    11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
4561
 
4560
 
4562
 
4561
 
4563
        Ïðîöåäóðû ABORT è EXIT ñâÿçàíû ñ ðàáîòîé äèðåêòèâû #atexit è
4562
        Ïðîöåäóðû ABORT è EXIT ñâÿçàíû ñ ðàáîòîé äèðåêòèâû #atexit è
4564
    ïðîöåäóðîé ATEXIT. Íàèáîëåå îïòèìàëüíóþ èõ ðåàëèçàöèþ è âçàèìíóþ
4563
    ïðîöåäóðîé ATEXIT. Íàèáîëåå îïòèìàëüíóþ èõ ðåàëèçàöèþ è âçàèìíóþ
4565
    èíòåãðàöèþ ìîæåò ñäåëàòü òîëüêî êîìïèëÿòîð. Èìåííî ïîýòîìó ýòè ïðîöåäóðû
4564
    èíòåãðàöèþ ìîæåò ñäåëàòü òîëüêî êîìïèëÿòîð. Èìåííî ïîýòîìó ýòè ïðîöåäóðû
4566
    ïîääåðæèâàþòñÿ êîìïèëÿòîðîì.
4565
    ïîääåðæèâàþòñÿ êîìïèëÿòîðîì.
4567
 
4566
 
4568
        Ïðîöåäóðà ATEXIT - ðåãèñòðîâàÿ ïðîöåäóðà, êîòîðàÿ ðåãèñòðèðóåò
4567
        Ïðîöåäóðà ATEXIT - ðåãèñòðîâàÿ ïðîöåäóðà, êîòîðàÿ ðåãèñòðèðóåò
4569
    ôóíêöèþ, àäðåñ êîòîðîé ïåðåäàåòñÿ åé â êà÷åñòâå ïàðàìåòðà, ò.å. ÷åðåç
4568
    ôóíêöèþ, àäðåñ êîòîðîé ïåðåäàåòñÿ åé â êà÷åñòâå ïàðàìåòðà, ò.å. ÷åðåç
4570
    ðåãèñòð (E)AX, êàê ôóíêöèþ çàâåðøåíèÿ ïðîãðàììû. Ïðè óñïåøíîé ðåãèñòðàöèè
4569
    ðåãèñòð (E)AX, êàê ôóíêöèþ çàâåðøåíèÿ ïðîãðàììû. Ïðè óñïåøíîé ðåãèñòðàöèè
4571
    ATEXIT âîçâðàùàåò 0. Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ôóíêöèé.
4570
    ATEXIT âîçâðàùàåò 0. Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ôóíêöèé.
4572
 
4571
 
4573
        Çàâåðøàþùèå ôóíêöèè íå äîëæíû èìåòü ïàðàìåòðîâ è âîçâðàòà. Ýòè
4572
        Çàâåðøàþùèå ôóíêöèè íå äîëæíû èìåòü ïàðàìåòðîâ è âîçâðàòà. Ýòè
4574
    ôóíêöèè áóäóò âûïîëíÿòüñÿ â ïîðÿäêå îáðàòíîì î÷åðåäíîñòè ðåãèñòðàöèè â
4573
    ôóíêöèè áóäóò âûïîëíÿòüñÿ â ïîðÿäêå îáðàòíîì î÷åðåäíîñòè ðåãèñòðàöèè â
4575
    ñëó÷àå, åñëè Âû áóäåòå çàâåðøàòü ðàáîòó ïðîãðàììû ÷åðåç âûçîâû ïðîöåäóð
4574
    ñëó÷àå, åñëè Âû áóäåòå çàâåðøàòü ðàáîòó ïðîãðàììû ÷åðåç âûçîâû ïðîöåäóð
4576
    ABORT èëè EXIT èëè çàêîí÷èòñÿ ðàáîòà ïðîöåäóðû main. Åñëè Âû
4575
    ABORT èëè EXIT èëè çàêîí÷èòñÿ ðàáîòà ïðîöåäóðû main. Åñëè Âû
4577
    çàâåðøèòå ðàáîòó ïðîãðàììû âûçîâîì ïðîöåäóðû ExitProcess ïîä Windows èëè
4576
    çàâåðøèòå ðàáîòó ïðîãðàììû âûçîâîì ïðîöåäóðû ExitProcess ïîä Windows èëè
4578
    âûçîâîì AH=0x4C; $int 0x21 ïîä DOS, âûõîä èç ïðîãðàììû ïðîèçîéäåò áåç
4577
    âûçîâîì AH=0x4C; $int 0x21 ïîä DOS, âûõîä èç ïðîãðàììû ïðîèçîéäåò áåç
4579
    çàïóñêà çàðåãèñòðèðîâàííûõ ôóíêöèé.
4578
    çàïóñêà çàðåãèñòðèðîâàííûõ ôóíêöèé.
4580
 
4579
 
4581
        Ïðîöåäóðà ABORT è EXIT, åñëè íå âêëþ÷åíà äèðåêòèâà #atexit äåëàþò
4580
        Ïðîöåäóðà ABORT è EXIT, åñëè íå âêëþ÷åíà äèðåêòèâà #atexit äåëàþò
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.
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 è
4592
                                                                    outportd
4591
                                                                    outportd
4593
 
4592
 
4594
 
4593
 
4595
        Ýòè ïðîöåäóðû âñåãäà âñòàâëÿþòñÿ â êîä êàê ìàêðîñû, ò.å. äëÿ ýòèõ
4594
        Ýòè ïðîöåäóðû âñåãäà âñòàâëÿþòñÿ â êîä êàê ìàêðîñû, ò.å. äëÿ ýòèõ
4596
    ïðîöåäóð íèêîãäà íå ãåíåðèðóåòñÿ âûçîâ ïðîöåäóðû. Â çàâèñèìîñòè îò
4595
    ïðîöåäóð íèêîãäà íå ãåíåðèðóåòñÿ âûçîâ ïðîöåäóðû. Â çàâèñèìîñòè îò
4597
    çíà÷åíèÿ ïîðòà, ñ êîòîðûì ðàáîòàþò ýòè ïðîöåäóðû, ãåíåðèðóåòñÿ ðàçíûé
4596
    çíà÷åíèÿ ïîðòà, ñ êîòîðûì ðàáîòàþò ýòè ïðîöåäóðû, ãåíåðèðóåòñÿ ðàçíûé
4598
    êîä. Âñå ýòî ïîçâîëÿåò ïîëó÷àòü áîëåå êîìïàêòíûé êîä.
4597
    êîä. Âñå ýòî ïîçâîëÿåò ïîëó÷àòü áîëåå êîìïàêòíûé êîä.
4599
 
4598
 
4600
        Ïðîöåäóðû ÷òåíèÿ èç ïîðòà èìåþò òàêîé ïðîòîòèï:
4599
        Ïðîöåäóðû ÷òåíèÿ èç ïîðòà èìåþò òàêîé ïðîòîòèï:
4601
 
4600
 
4602
    byte inp ( word port );
4601
    byte inp ( word port );
4603
    word inport ( word port );
4602
    word inport ( word port );
4604
    dword inportd ( word port );
4603
    dword inportd ( word port );
4605
 
4604
 
4606
        Ïðîöåäóðû çàïèñè â ïîðò èìåþò òàêîé ïðîòîòèï:
4605
        Ïðîöåäóðû çàïèñè â ïîðò èìåþò òàêîé ïðîòîòèï:
4607
 
4606
 
4608
    void outp ( byte val; word port );
4607
    void outp ( byte val; word port );
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 );
4611
 
4610
 
4612
        Èìåíà ïðîöåäóð inp è inportb, òàêæå êàê è èìåíà outp è outportb
4611
        Èìåíà ïðîöåäóð inp è inportb, òàêæå êàê è èìåíà outp è outportb
4613
    ÿâëÿþòñÿ ñèíîíèìàìè.
4612
    ÿâëÿþòñÿ ñèíîíèìàìè.
4614
Return to contents.
4613
Return to contents.
4615
 
4614
 
4616
 
4615
 
4617
 
4616
 
4618
    11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
4617
    11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
4619
 
4618
 
4620
 
4619
 
4621
        Ýòè ïðîöåäóðû ðåàëèçóþòñÿ êîìïèëÿòîðîì è âñåãäà âñòàâëÿþòñÿ â êîä êàê
4620
        Ýòè ïðîöåäóðû ðåàëèçóþòñÿ êîìïèëÿòîðîì è âñåãäà âñòàâëÿþòñÿ â êîä êàê
4622
    ìàêðîñû, ò.å. äëÿ íèõ íèêîãäà íå ãåíåðèðóåòñÿ âûçîâ ïðîöåäóðû. Êðîìå
4621
    ìàêðîñû, ò.å. äëÿ íèõ íèêîãäà íå ãåíåðèðóåòñÿ âûçîâ ïðîöåäóðû. Êðîìå
4623
    ýòîãî, åñëè ïàðàìåòðîì îäíîé ïðîöåäóðû ÿâëÿåòñÿ âûçîâ äðóãîé, òî
4622
    ýòîãî, åñëè ïàðàìåòðîì îäíîé ïðîöåäóðû ÿâëÿåòñÿ âûçîâ äðóãîé, òî
4624
    ðåçóëüòàò ðàáîòû âòîðîé ïðîöåäóðû îñòàåòñÿ â ñòåêå FPU, à ïåðâàÿ
4623
    ðåçóëüòàò ðàáîòû âòîðîé ïðîöåäóðû îñòàåòñÿ â ñòåêå FPU, à ïåðâàÿ
4625
    ïðîöåäóðà èñïîëüçóåò ýòîò ðåçóëüòàò íåïîñðåäñòâåííî èç ñòåêà. Òàêèì
4624
    ïðîöåäóðà èñïîëüçóåò ýòîò ðåçóëüòàò íåïîñðåäñòâåííî èç ñòåêà. Òàêèì
4626
    îáðàçîì ïîëó÷àþòñÿ áîëåå êîìïàêòíûé êîä. Âîò âûìûøëåííûé ïðèìåð:
4625
    îáðàçîì ïîëó÷àþòñÿ áîëåå êîìïàêòíûé êîä. Âîò âûìûøëåííûé ïðèìåð:
4627
 
4626
 
4628
    test.c-- 7: f = sin( sqrt(1) );
4627
    test.c-- 7: f = sin( sqrt(1) );
4629
    0100 D9061C01                 fld     [11Ch]
4628
    0100 D9061C01                 fld     [11Ch]
4630
    0104 D9FA                     fsqrt
4629
    0104 D9FA                     fsqrt
4631
    0106 D9FE                     fsin
4630
    0106 D9FE                     fsin
4632
    0108 D91E2001                 fstp    [120h]
4631
    0108 D91E2001                 fstp    [120h]
4633
    010C 9B                       fwait
4632
    010C 9B                       fwait
4634
 
4633
 
4635
        Ýòè ïðîöåäóðû èìåþò ñëåäóþùèé ïðîòîòèï:
4634
        Ýòè ïðîöåäóðû èìåþò ñëåäóþùèé ïðîòîòèï:
4636
 
4635
 
4637
    float atan ( float val );
4636
    float atan ( float val );
4638
    float atan ( float val, val2 );
4637
    float atan ( float val, val2 );
4639
    float cos ( float val );
4638
    float cos ( float val );
4640
    float exp ( float val );
4639
    float exp ( float val );
4641
    float fabs ( float val );
4640
    float fabs ( float val );
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.
4648
 
4647
 
4649
 
4648
 
4650
 
4649
 
4651
  11.15 Êëàññû.
4650
  11.15 Êëàññû.
4652
 
4651
 
4653
    11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
4652
    11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
4654
 
4653
 
4655
 
4654
 
4656
        Ñ ââåäåíèå ïîääåðæêè îáúÿâëåíèÿ ïðîöåäóð â ñòðóêòóðàõ, ñòðóêòóðà
4655
        Ñ ââåäåíèå ïîääåðæêè îáúÿâëåíèÿ ïðîöåäóð â ñòðóêòóðàõ, ñòðóêòóðà
4657
    ñòàíîâèòñÿ ïîäîáíîé êëàññó â C++. Ò.å. òàêàÿ ïðîöåäóðà ñòàíîâèòñÿ ìåòîäîì
4656
    ñòàíîâèòñÿ ïîäîáíîé êëàññó â C++. Ò.å. òàêàÿ ïðîöåäóðà ñòàíîâèòñÿ ìåòîäîì
4658
    êëàññà. Ïðèìåð:
4657
    êëàññà. Ïðèìåð:
4659
 
4658
 
4660
    struct Point  // îáúÿâëåíèå êëàññà
4659
    struct Point  // îáúÿâëåíèå êëàññà
4661
    {
4660
    {
4662
    	int x; // ýëåìåíòû äàííûõ
4661
        int x; // ýëåìåíòû äàííûõ
4663
    	int y; // êëàññà òèïà Point
4662
        int y; // êëàññà òèïà Point
4664
    	void SetX(int);  // îáúÿâëåíèå ìåòîäîâ
4663
        void SetX(int);  // îáúÿâëåíèå ìåòîäîâ
4665
    	void SetY(int);  // êëàññà Point
4664
        void SetY(int);  // êëàññà Point
4666
    };
4665
    };
4667
 
4666
 
4668
    void Point::SetX(int _x)  //îïðåäåëåíèå ïðîöåäóðû êëàññà Point
4667
    void Point::SetX(int _x)  //îïðåäåëåíèå ïðîöåäóðû êëàññà Point
4669
    {
4668
    {
4670
    	IF((_x>=0)&&(_x<=MAX_X)) x=_x;
4669
        IF((_x>=0)&&(_x<=MAX_X)) x=_x;
4671
    // ïåðåìåííûå x, y ÿâëÿþòñÿ ÷ëåíàìè ýòîãî êëàññà è ïîýòîìó äîñòóï ê íèì èç
4670
    // ïåðåìåííûå x, y ÿâëÿþòñÿ ÷ëåíàìè ýòîãî êëàññà è ïîýòîìó äîñòóï ê íèì èç
4672
    // ïðîöåäóð ýòîãî æå êëàññà îñóùåñòâëÿåòñÿ íàïðÿìóþ.
4671
    // ïðîöåäóð ýòîãî æå êëàññà îñóùåñòâëÿåòñÿ íàïðÿìóþ.
4673
     }
4672
     }
4674
 
4673
 
4675
    void main()
4674
    void main()
4676
    Point p;  //îïðåäåëÿåì ñòðóêòóðó â ñòåêå
4675
    Point p;  //îïðåäåëÿåì ñòðóêòóðó â ñòåêå
4677
    {
4676
    {
4678
      p.y = p.x = 0;
4677
      p.y = p.x = 0;
4679
      p.SetX(1);
4678
      p.SetX(1);
4680
    }
4679
    }
4681
 
4680
 
4682
        Ïðè âûçîâå ïðîöåäóðû ÿâëÿþùåéñÿ ìåòîäîì êëàññà åé íåÿâíûì îáðàçîì
4681
        Ïðè âûçîâå ïðîöåäóðû ÿâëÿþùåéñÿ ìåòîäîì êëàññà åé íåÿâíûì îáðàçîì
4683
    ïåðåäàåòñÿ àäðåñ ýòîãî êëàññà (ñòðóêòóðû). Â ñàìîé ïðîöåäóðå ýòîò àäðåñ
4682
    ïåðåäàåòñÿ àäðåñ ýòîãî êëàññà (ñòðóêòóðû). Â ñàìîé ïðîöåäóðå ýòîò àäðåñ
4684
    äîñòóïåí ÷åðåç èìÿ ïàðàìåòðè÷åñêîé ïåðåìåííîé this. Ýòó ïåðåìåííóþ
4683
    äîñòóïåí ÷åðåç èìÿ ïàðàìåòðè÷åñêîé ïåðåìåííîé this. Ýòó ïåðåìåííóþ
4685
    àâòîìàòè÷åñêè ãåíåðèðóåò êîìïèëÿòîð. Åñëè â îáúÿâëåíèå ïðîöåäóðû â
4684
    àâòîìàòè÷åñêè ãåíåðèðóåò êîìïèëÿòîð. Åñëè â îáúÿâëåíèå ïðîöåäóðû â
4686
    ñòðóêòóðå óêàçàòü êëþ÷åâîå ñëîâî static, òî òàêîé ïðîöåäóðå àäðåñ
4685
    ñòðóêòóðå óêàçàòü êëþ÷åâîå ñëîâî static, òî òàêîé ïðîöåäóðå àäðåñ
4687
    êëàññà íå ïåðåäàåòñÿ è ïåðåìåííàÿ this íå ãåíåðèðóåòñÿ.
4686
    êëàññà íå ïåðåäàåòñÿ è ïåðåìåííàÿ this íå ãåíåðèðóåòñÿ.
4688
 
4687
 
4689
        Ïðîöåäóðà îáúÿâëåííàÿ â ñòðóêòóðå ìîæåò áûòü äèíàìè÷åñêîé. Äëÿ ýòîãî,
4688
        Ïðîöåäóðà îáúÿâëåííàÿ â ñòðóêòóðå ìîæåò áûòü äèíàìè÷åñêîé. Äëÿ ýòîãî,
4690
    ïðè åå îïðåäåëåíèè, â ñàìîì åå íà÷àëå, íàäî íàïèñàòü ñèìâîë äâîåòî÷èÿ :
4689
    ïðè åå îïðåäåëåíèè, â ñàìîì åå íà÷àëå, íàäî íàïèñàòü ñèìâîë äâîåòî÷èÿ :
4691
    (òàêæå êàê è äëÿ îáû÷íûõ äèíàìè÷åñêèõ ïðîöåäóð). Íî òàêàÿ äèíàìè÷åñêàÿ
4690
    (òàêæå êàê è äëÿ îáû÷íûõ äèíàìè÷åñêèõ ïðîöåäóð). Íî òàêàÿ äèíàìè÷åñêàÿ
4692
    ïðîöåäóðà íå ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4691
    ïðîöåäóðà íå ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
4693
Return to contents.
4692
Return to contents.
4694
 
4693
 
4695
 
4694
 
4696
 
4695
 
4697
    11.15.2 Íàñëåäîâàíèå.
4696
    11.15.2 Íàñëåäîâàíèå.
4698
 
4697
 
4699
 
4698
 
4700
        Â C-- ïîääåðæèâàþòñÿ ïðîñòûå è ìíîæåñòâåííûå íàñëåäîâàíèÿ. Îáúÿâëåíèå
4699
        Â C-- ïîääåðæèâàþòñÿ ïðîñòûå è ìíîæåñòâåííûå íàñëåäîâàíèÿ. Îáúÿâëåíèå
4701
    ñòðóêòóðû ñ íàñëåäîâàíèåì èìååò ñëåäóþùèé ñèíòàêñèñ:
4700
    ñòðóêòóðû ñ íàñëåäîâàíèåì èìååò ñëåäóþùèé ñèíòàêñèñ:
4702
 
4701
 
4703
    struct Derived : Base1, Base2, ... Basen
4702
    struct Derived : Base1, Base2, ... Basen
4704
    {
4703
    {
4705
      int x0;
4704
      int x0;
4706
    };
4705
    };
4707
 
4706
 
4708
        ×èñëî áàçîâûõ ñòðóêòóð â ïðîèçâîäíîì íå îãðàíè÷åíî. Ïðè ìíîæåñòâåííîì
4707
        ×èñëî áàçîâûõ ñòðóêòóð â ïðîèçâîäíîì íå îãðàíè÷åíî. Ïðè ìíîæåñòâåííîì
4709
    íàñëåäîâàíèè ñòðóêòóðà ìîæåò íàñëåäîâàòü äâà è áîëåå ýêçåìïëÿðà áàçîâîé
4708
    íàñëåäîâàíèè ñòðóêòóðà ìîæåò íàñëåäîâàòü äâà è áîëåå ýêçåìïëÿðà áàçîâîé
4710
    ñòðóêòóðû. Ïðè ýòîì âîçíèêàåò íåîäíîçíà÷íîñòü. Ïðèìåð:
4709
    ñòðóêòóðû. Ïðè ýòîì âîçíèêàåò íåîäíîçíà÷íîñòü. Ïðèìåð:
4711
 
4710
 
4712
    struct A
4711
    struct A
4713
    {
4712
    {
4714
      int x,y;
4713
      int x,y;
4715
      . . .
4714
      . . .
4716
    };
4715
    };
4717
 
4716
 
4718
    struct B : A  //ñòðóêòóðà B íàñëåäóåò A
4717
    struct B : A  //ñòðóêòóðà B íàñëåäóåò A
4719
    {
4718
    {
4720
      . . .
4719
      . . .
4721
 
4720
 
4722
    };
4721
    };
4723
 
4722
 
4724
    struct C : A  //ñòðóêòóðà C íàñëåäóåò A
4723
    struct C : A  //ñòðóêòóðà C íàñëåäóåò A
4725
    {
4724
    {
4726
      . . .
4725
      . . .
4727
    };
4726
    };
4728
 
4727
 
4729
    struct D : B, C //ñòðóêòóðà D íàñëåäóåò B è C
4728
    struct D : B, C //ñòðóêòóðà D íàñëåäóåò B è C
4730
    {
4729
    {
4731
      . . .
4730
      . . .
4732
    };
4731
    };
4733
 
4732
 
4734
    void main()
4733
    void main()
4735
    D d;  //âûäåëÿåì äëÿ ñòðóêòóðû D ïàìÿòü â ñòåêå è ïðèñâàèâàåì åé èìÿ d
4734
    D d;  //âûäåëÿåì äëÿ ñòðóêòóðû D ïàìÿòü â ñòåêå è ïðèñâàèâàåì åé èìÿ d
4736
    {
4735
    {
4737
      d.x0=0;
4736
      d.x0=0;
4738
 
4737
 
4739
        Â ýòîì ïðèìåðå ñòðóêòóðà D íàñëåäóåò äâà ýêçåìïëÿðà ñòðóêòóðû A è
4738
        Â ýòîì ïðèìåðå ñòðóêòóðà D íàñëåäóåò äâà ýêçåìïëÿðà ñòðóêòóðû A è
4740
    â íåé íàõîäÿòñÿ äâà ýëåìåíòà ñ èìåíåì x0. Êîìïèëÿòîðû C++ ïðè çàïèñè
4739
    â íåé íàõîäÿòñÿ äâà ýëåìåíòà ñ èìåíåì x0. Êîìïèëÿòîðû C++ ïðè çàïèñè
4741
    òèïà d.x0=0 âûäàþò ñîîáùåíèå îá îøèáêå. C-- ýòó çàïèñü îáðàáàòûâàåò,
4740
    òèïà d.x0=0 âûäàþò ñîîáùåíèå îá îøèáêå. C-- ýòó çàïèñü îáðàáàòûâàåò,
4742
    ïðèñâàèâàíèå ïðîèçâîäèòñÿ ïî óìîë÷àíèþ â ýëåìåíò èç ïîñëåäíåé áàçîâîé
4741
    ïðèñâàèâàíèå ïðîèçâîäèòñÿ ïî óìîë÷àíèþ â ýëåìåíò èç ïîñëåäíåé áàçîâîé
4743
    ñòðóêòóðû, èìåþùåé ýëåìåíò x0. Äëÿ òîãî ÷òîáû ïîëó÷èòü äîñòóï êî
4742
    ñòðóêòóðû, èìåþùåé ýëåìåíò x0. Äëÿ òîãî ÷òîáû ïîëó÷èòü äîñòóï êî
4744
    âòîðîìó ýëåìåíòó x0 (ôèçè÷åñêè ýòîò ýëåìåíò íàõîäèòñÿ â ñòðóêòóðå
4743
    âòîðîìó ýëåìåíòó x0 (ôèçè÷åñêè ýòîò ýëåìåíò íàõîäèòñÿ â ñòðóêòóðå
4745
    ïåðâûì), íåîáõîäèìî ïðèìåíèòü îïåðàöèþ ðàçðåøåíèÿ âèäèìîñòè:
4744
    ïåðâûì), íåîáõîäèìî ïðèìåíèòü îïåðàöèþ ðàçðåøåíèÿ âèäèìîñòè:
4746
 
4745
 
4747
      d.B::x0=0;
4746
      d.B::x0=0;
4748
 
4747
 
4749
        Èç âñåãî ýòîãî ñëåäóåò, ÷òî çàïèñè:
4748
        Èç âñåãî ýòîãî ñëåäóåò, ÷òî çàïèñè:
4750
 
4749
 
4751
      d.x0=0;
4750
      d.x0=0;
4752
    è
4751
    è
4753
      d.C::x0=0;
4752
      d.C::x0=0;
4754
 
4753
 
4755
         ÿâëÿþòñÿ ðàâíîçíà÷íûìè.
4754
         ÿâëÿþòñÿ ðàâíîçíà÷íûìè.
4756
Return to contents.
4755
Return to contents.
4757
 
4756
 
4758
 
4757
 
4759
 
4758
 
4760
    11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
4759
    11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
4761
 
4760
 
4762
 
4761
 
4763
	Åñëè â áàçîâîì êëàññå åñòü ïðîöåäóðà, à â ïðîèçâîäíîì êëàññå Âû ýòó
4762
        Åñëè â áàçîâîì êëàññå åñòü ïðîöåäóðà, à â ïðîèçâîäíîì êëàññå Âû ýòó
4764
    ïðîöåäóðó ïåðåîïðåäåëèëè, òî ýòà ïðîöåäóðà áóäåò ïåðåîïðåäåëåíà è â
4763
    ïðîöåäóðó ïåðåîïðåäåëèëè, òî ýòà ïðîöåäóðà áóäåò ïåðåîïðåäåëåíà è â
4765
    áàçîâîì êëàññå. Òàêèì îáðàçîì ïðîöåäóðà îïðåäåëåííàÿ â áàçîâîì êëàññå
4764
    áàçîâîì êëàññå. Òàêèì îáðàçîì ïðîöåäóðà îïðåäåëåííàÿ â áàçîâîì êëàññå
4766
    áóäåò ïîòåðÿíà. Ïðèìåð:
4765
    áóäåò ïîòåðÿíà. Ïðèìåð:
4767
 
4766
 
4768
    struct Point  // áàçîâûé êëàññ
4767
    struct Point  // áàçîâûé êëàññ
4769
    {
4768
    {
4770
    	int x; // ýëåìåíòû äàííûõ
4769
        int x; // ýëåìåíòû äàííûõ
4771
    	int y; // êëàññà òèïà Point
4770
        int y; // êëàññà òèïà Point
4772
    	void SetX(int);  // îáúÿâëåíèå ìåòîäîâ
4771
        void SetX(int);  // îáúÿâëåíèå ìåòîäîâ
4773
    	void SetY(int);  // êëàññà Point
4772
        void SetY(int);  // êëàññà Point
4774
    };
4773
    };
4775
 
4774
 
4776
    void Point::SetX(int _x)  // îïðåäåëåíèå ïðîöåäóðû êëàññà Point
4775
    void Point::SetX(int _x)  // îïðåäåëåíèå ïðîöåäóðû êëàññà Point
4777
    {
4776
    {
4778
    	IF((_x>=0)&&(_x<=MAX_X)) x=_x;
4777
        IF((_x>=0)&&(_x<=MAX_X)) x=_x;
4779
    }
4778
    }
4780
 
4779
 
4781
    struct Point2 : Point  // ïðîèçâîäíûé êëàññ
4780
    struct Point2 : Point  // ïðîèçâîäíûé êëàññ
4782
    {
4781
    {
4783
      int x2;
4782
      int x2;
4784
    }
4783
    }
4785
 
4784
 
4786
    struct Point3 : Point  // åùå îäèí ïðîèçâîäíûé êëàññ
4785
    struct Point3 : Point  // åùå îäèí ïðîèçâîäíûé êëàññ
4787
    {
4786
    {
4788
      int z;
4787
      int z;
4789
    }
4788
    }
4790
 
4789
 
4791
    void Point3::SetX(int _x)  // â ýòîì ïðîèçâîäíîì êëàññå ïåðåîïðåäåëÿåì
4790
    void Point3::SetX(int _x)  // â ýòîì ïðîèçâîäíîì êëàññå ïåðåîïðåäåëÿåì
4792
    {                          // ïðîöåäóðó SetX
4791
    {                          // ïðîöåäóðó SetX
4793
    	IF((_x>=80)&&(_x<=MAX_X)) x=_x;
4792
        IF((_x>=80)&&(_x<=MAX_X)) x=_x;
4794
    }
4793
    }
4795
 
4794
 
4796
	Ïðîöåäóðà SetX, îïðåäåëåííàÿ â áàçîâîì êëàññå Point, òåïåðü áóäåò
4795
        Ïðîöåäóðà SetX, îïðåäåëåííàÿ â áàçîâîì êëàññå Point, òåïåðü áóäåò
4797
    íåäîñòóïíà. Âìåñòî êîäà îïðåäåëåííîãî â ýòîì êëàññå, áóäåò âûçûâàòüñÿ êîä
4796
    íåäîñòóïíà. Âìåñòî êîäà îïðåäåëåííîãî â ýòîì êëàññå, áóäåò âûçûâàòüñÿ êîä
4798
    ïðîöåäóðû, îïðåäåëåííûé â íàñëåäóåìîì êëàññå Point3. Ïðè âûçîâå ïðîöåäóðû
4797
    ïðîöåäóðû, îïðåäåëåííûé â íàñëåäóåìîì êëàññå Point3. Ïðè âûçîâå ïðîöåäóðû
4799
    SetX èç äðóãîãî ïðîèçâîäíîãî êëàññà Point2 áóäåò òàêæå âûçûâàòüñÿ êîä
4798
    SetX èç äðóãîãî ïðîèçâîäíîãî êëàññà Point2 áóäåò òàêæå âûçûâàòüñÿ êîä
4800
    ïðîöåäóðû, îïðåäåëåííûé â ïðîèçâîäíîì êëàññå Point3. Ïåðåîïðåäåëÿÿ
4799
    ïðîöåäóðû, îïðåäåëåííûé â ïðîèçâîäíîì êëàññå Point3. Ïåðåîïðåäåëÿÿ
4801
    ïðîöåäóðó òàêèì îáðàçîì, Âû çàìåíèòå êîä ýòîé ïðîöåäóðû â áàçîâîì êëàññå è
4800
    ïðîöåäóðó òàêèì îáðàçîì, Âû çàìåíèòå êîä ýòîé ïðîöåäóðû â áàçîâîì êëàññå è
4802
    âî âñåõ åãî íàñëåäóåìûõ êëàññàõ.
4801
    âî âñåõ åãî íàñëåäóåìûõ êëàññàõ.
4803
 
4802
 
4804
	Åñëè Âàì íåîáõîäèìî, ÷òîáû êîä íîâîé ïðîöåäóðû áûë äîñòóïåí
4803
        Åñëè Âàì íåîáõîäèìî, ÷òîáû êîä íîâîé ïðîöåäóðû áûë äîñòóïåí
4805
    îäíîâðåìåííî ñ êîäîì ñòàðîé ïðîöåäóðû, òî â ïðîèçâîäíîì êëàññå Âàì
4804
    îäíîâðåìåííî ñ êîäîì ñòàðîé ïðîöåäóðû, òî â ïðîèçâîäíîì êëàññå Âàì
4806
    íåîáõîäèìî ñäåëàòü åùå îäíî îáúÿâëåíèå ýòîé ïðîöåäóðû. Ïðèìåð:
4805
    íåîáõîäèìî ñäåëàòü åùå îäíî îáúÿâëåíèå ýòîé ïðîöåäóðû. Ïðèìåð:
4807
 
4806
 
4808
    struct Point  // áàçîâûé êëàññ
4807
    struct Point  // áàçîâûé êëàññ
4809
    {
4808
    {
4810
    	int x; // ýëåìåíòû äàííûõ
4809
        int x; // ýëåìåíòû äàííûõ
4811
    	int y; // êëàññà òèïà Point
4810
        int y; // êëàññà òèïà Point
4812
    	void SetX(int);  // îáúÿâëåíèå ìåòîäîâ
4811
        void SetX(int);  // îáúÿâëåíèå ìåòîäîâ
4813
    	void SetY(int);  // êëàññà Point
4812
        void SetY(int);  // êëàññà Point
4814
    };
4813
    };
4815
 
4814
 
4816
    void Point::SetX(int _x)  // îïðåäåëåíèå ïðîöåäóðû êëàññà Point
4815
    void Point::SetX(int _x)  // îïðåäåëåíèå ïðîöåäóðû êëàññà Point
4817
    {
4816
    {
4818
    	IF((_x>=0)&&(_x<=MAX_X)) x=_x;
4817
        IF((_x>=0)&&(_x<=MAX_X)) x=_x;
4819
    }
4818
    }
4820
 
4819
 
4821
    struct Point2 : Point  // ïðîèçâîäíûé êëàññ
4820
    struct Point2 : Point  // ïðîèçâîäíûé êëàññ
4822
    {
4821
    {
4823
      int x2;
4822
      int x2;
4824
    }
4823
    }
4825
 
4824
 
4826
    struct Point3 : Point  // åùå îäèí ïðîèçâîäíûé êëàññ
4825
    struct Point3 : Point  // åùå îäèí ïðîèçâîäíûé êëàññ
4827
    {
4826
    {
4828
      int z;
4827
      int z;
4829
      void SetX(int);  // â íàñëåäóåìîì êëàññå äåëàåì åùå îäíî îáúÿâëåíèå
4828
      void SetX(int);  // â íàñëåäóåìîì êëàññå äåëàåì åùå îäíî îáúÿâëåíèå
4830
                       // ïðîöåäóðû SetX
4829
                       // ïðîöåäóðû SetX
4831
    }
4830
    }
4832
 
4831
 
4833
    void Point3::SetX(int _x)  // â ýòîì ïðîèçâîäíîì êëàññå ïåðåîïðåäåëÿåì
4832
    void Point3::SetX(int _x)  // â ýòîì ïðîèçâîäíîì êëàññå ïåðåîïðåäåëÿåì
4834
    {                          // ïðîöåäóðó SetX
4833
    {                          // ïðîöåäóðó SetX
4835
    	IF((_x>=80)&&(_x<=MAX_X)) x=_x;
4834
        IF((_x>=80)&&(_x<=MAX_X)) x=_x;
4836
	EDI=this;
4835
        EDI=this;
4837
	EDI.Point.SetX(_x);  // äåëàåì âûçîâ îäíîèìåííîé ïðîöåäóðû èç
4836
        EDI.Point.SetX(_x);  // äåëàåì âûçîâ îäíîèìåííîé ïðîöåäóðû èç
4838
			     // áàçîâîãî êëàññà
4837
                             // áàçîâîãî êëàññà
4839
    }
4838
    }
4840
 
4839
 
4841
	Òåïåðü èç ïðîèçâîäíîãî êëàññà Point3 Âàì äîñòóïíû äâå ðàçëè÷íûå
4840
        Òåïåðü èç ïðîèçâîäíîãî êëàññà Point3 Âàì äîñòóïíû äâå ðàçëè÷íûå
4842
    ïðîöåäóðû ñ îäíèì èìåíåì SetX. À èç áàçîâîãî êëàññà Point è èç äðóãîãî
4841
    ïðîöåäóðû ñ îäíèì èìåíåì SetX. À èç áàçîâîãî êëàññà Point è èç äðóãîãî
4843
    ïðîèçâîäíîãî êëàññà Point2 áóäåò ïî ïðåæíåìó äîñòóïåí òîëüêî áàçîâûé
4842
    ïðîèçâîäíîãî êëàññà Point2 áóäåò ïî ïðåæíåìó äîñòóïåí òîëüêî áàçîâûé
4844
    âàðèàíò ïðîöåäóðû SetX.
4843
    âàðèàíò ïðîöåäóðû SetX.
4845
Return to contents.
4844
Return to contents.
4846
 
4845
 
4847
 
4846
 
4848
 
4847
 
4849
12. Òèïû âûõîäíûõ ôàéëîâ.
4848
12. Òèïû âûõîäíûõ ôàéëîâ.
4850
 
4849
 
4851
  12.1 Âûõîäíûå ôàéëû òèïà COM.
4850
  12.1 Âûõîäíûå ôàéëû òèïà COM.
4852
 
4851
 
4853
 
4852
 
4854
      Ýòîò òèï âûõîäíîãî ôàéëà ïîëó÷àåòñÿ àâòîìàòè÷åñêè ïî óìîë÷àíèþ.
4853
      Ýòîò òèï âûõîäíîãî ôàéëà ïîëó÷àåòñÿ àâòîìàòè÷åñêè ïî óìîë÷àíèþ.
4855
 
4854
 
4856
      Èçíà÷àëüíî C-- ìîã äåëàòü òîëüêî ôàéëû ôîðìàòà òèïà COM.  íàñòîÿùåå
4855
      Èçíà÷àëüíî C-- ìîã äåëàòü òîëüêî ôàéëû ôîðìàòà òèïà COM.  íàñòîÿùåå
4857
  âðåìÿ ïîÿâèëàñü âîçìîæíîñòü ïîëó÷àòü ôàéëà òèïà EXE ñ ìîäåëÿìè ïàìÿòè tiny
4856
  âðåìÿ ïîÿâèëàñü âîçìîæíîñòü ïîëó÷àòü ôàéëà òèïà EXE ñ ìîäåëÿìè ïàìÿòè tiny
4858
  è small äëÿ 16-áèòíîãî êîäà, à òàêæå 32-áèòíûå äëÿ DOS è Windows. Òàêæå
4857
  è small äëÿ 16-áèòíîãî êîäà, à òàêæå 32-áèòíûå äëÿ DOS è Windows. Òàêæå
4859
  åñòü âîçìîæíîñòü ïîëó÷åíèÿ âûõîäíîãî ôàéëà â ôîðìàòå OBJ, ÷òî ïîçâîëÿåò
4858
  åñòü âîçìîæíîñòü ïîëó÷åíèÿ âûõîäíîãî ôàéëà â ôîðìàòå OBJ, ÷òî ïîçâîëÿåò
4860
  ñâÿçûâàòü ïðîãðàììû íà C-- ñ ïðîãðàììàìè íà äðóãèõ ÿçûêàõ.
4859
  ñâÿçûâàòü ïðîãðàììû íà C-- ñ ïðîãðàììàìè íà äðóãèõ ÿçûêàõ.
4861
Return to contents.
4860
Return to contents.
4862
 
4861
 
4863
 
4862
 
4864
 
4863
 
4865
  12.2 Âûõîäíûå ôàéëû òèïà EXE.
4864
  12.2 Âûõîäíûå ôàéëû òèïà EXE.
4866
 
4865
 
4867
 
4866
 
4868
      Ýòîò ôîðìàò ôàéëà ìîæíî ïîëó÷èòü, åñëè êîìïèëèðîâàòü ñ êëþ÷îì êîìàíäíîé
4867
      Ýòîò ôîðìàò ôàéëà ìîæíî ïîëó÷èòü, åñëè êîìïèëèðîâàòü ñ êëþ÷îì êîìàíäíîé
4869
  ñòðîêè /exe èëè /e.
4868
  ñòðîêè /exe èëè /e.
4870
 
4869
 
4871
      Âîçìîæíî òàêæå ïîääåðæêà EXE-ôîðìàòà ÷åðåç âûõîäíîé ôàéë ôîðìàòà OBJ,
4870
      Âîçìîæíî òàêæå ïîääåðæêà EXE-ôîðìàòà ÷åðåç âûõîäíîé ôàéë ôîðìàòà OBJ,
4872
  êîòîðûé ìîæíî çàòåì îáðàáîòàòü ëèíêîâùèêîì, íå âõîäÿùèì â ïàêåò C--.
4871
  êîòîðûé ìîæíî çàòåì îáðàáîòàòü ëèíêîâùèêîì, íå âõîäÿùèì â ïàêåò C--.
4873
Return to contents.
4872
Return to contents.
4874
 
4873
 
4875
 
4874
 
4876
 
4875
 
4877
  12.3 Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.
4876
  12.3 Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.
4878
 
4877
 
4879
 
4878
 
4880
      Ôàêòè÷åñêè êîä ôàéëà *.exe ìîäåëè tiny íè÷åì íå îòëè÷àåòñÿ îò êîäà
4879
      Ôàêòè÷åñêè êîä ôàéëà *.exe ìîäåëè tiny íè÷åì íå îòëè÷àåòñÿ îò êîäà
4881
  *.com. Â ñóùíîñòè, ýòî òîò æå com-ôàéë, ê êîòîðîìó äîáàâëåí 32-áàéòíûé
4880
  *.com. Â ñóùíîñòè, ýòî òîò æå com-ôàéë, ê êîòîðîìó äîáàâëåí 32-áàéòíûé
4882
  çàãîëîâîê exe-ôàéëà. Åäèíñòâåííîå îòëè÷èå âîçíèêàåò, êîãäà Âû êîìïèëèðóåòå
4881
  çàãîëîâîê exe-ôàéëà. Åäèíñòâåííîå îòëè÷èå âîçíèêàåò, êîãäà Âû êîìïèëèðóåòå
4883
  ôàéë ñ äèðåêòèâîé ?resize TRUE. Â com-ôàéëå, ïî ýòîé äèðåêòèâå, â êîä
4882
  ôàéë ñ äèðåêòèâîé ?resize TRUE. Â com-ôàéëå, ïî ýòîé äèðåêòèâå, â êîä
4884
  ïðîãðàììû äîáàâëÿåòñÿ ñîîòâåòñòâóþùèé êîä, èçìåíÿþùèé ðàçìåð äîñòóïíîé
4883
  ïðîãðàììû äîáàâëÿåòñÿ ñîîòâåòñòâóþùèé êîä, èçìåíÿþùèé ðàçìåð äîñòóïíîé
4885
  ïàìÿòè. Â exe-ôàéëå äëÿ ýòèõ öåëåé áóäåò ñêîððåêòèðîâàí çàãîëîâîê
4884
  ïàìÿòè. Â exe-ôàéëå äëÿ ýòèõ öåëåé áóäåò ñêîððåêòèðîâàí çàãîëîâîê
4886
  exe-ôàéëà.
4885
  exe-ôàéëà.
4887
 
4886
 
4888
      ×òîáû ïîëó÷èòü exe-ôàéë ñ ìîäåëüþ ïàìÿòè tiny, íàäî çàïóñòèòü
4887
      ×òîáû ïîëó÷èòü exe-ôàéë ñ ìîäåëüþ ïàìÿòè tiny, íàäî çàïóñòèòü
4889
  êîìïèëÿòîð ñ êëþ÷îì â êîìàíäíîé ñòðîêå /TEXE.
4888
  êîìïèëÿòîð ñ êëþ÷îì â êîìàíäíîé ñòðîêå /TEXE.
4890
Return to contents.
4889
Return to contents.
4891
 
4890
 
4892
 
4891
 
4893
 
4892
 
4894
  12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.
4893
  12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.
4895
 
4894
 
4896
 
4895
 
4897
      Â íàñòîÿùåå âðåìÿ C-- ìîæåò òîëüêî ñîçäàâàòü OBJ-ôàéëû, íî íå ìîæåò èõ
4896
      Â íàñòîÿùåå âðåìÿ C-- ìîæåò òîëüêî ñîçäàâàòü OBJ-ôàéëû, íî íå ìîæåò èõ
4898
  êîìïîíîâàòü.
4897
  êîìïîíîâàòü.
4899
 
4898
 
4900
      Ðàíåå C-- ñîçäàâàë obj-ôàéëû, êîòîðûå ìîãëè áûòü ïîäêëþ÷åíû ê ïðîåêòàì
4899
      Ðàíåå C-- ñîçäàâàë obj-ôàéëû, êîòîðûå ìîãëè áûòü ïîäêëþ÷åíû ê ïðîåêòàì
4901
  ñîçäàííûì íà äðóãèõ ÿçûêàõ, ò.å. âåäîìûå (slave) ìîäóëè. Ïðè÷åì èç C--
4900
  ñîçäàííûì íà äðóãèõ ÿçûêàõ, ò.å. âåäîìûå (slave) ìîäóëè. Ïðè÷åì èç C--
4902
  ìîäóëåé äëÿ îñíîâíîãî ïðîåêòà áûëè äîñòóïíû òîëüêî ïðîöåäóðû è ýòè
4901
  ìîäóëåé äëÿ îñíîâíîãî ïðîåêòà áûëè äîñòóïíû òîëüêî ïðîöåäóðû è ýòè
4903
  ïðîöåäóðû íå äîëæíû áûëè èñïîëüçîâàòü ãëîáàëüíûå ïåðåìåííûå.
4902
  ïðîöåäóðû íå äîëæíû áûëè èñïîëüçîâàòü ãëîáàëüíûå ïåðåìåííûå.
4904
 
4903
 
4905
      Òåïåðü æå C-- ìîæåò ñîçäàâàòü îñíîâíîé ìîäóëü (master), êîòîðûé ìîæåò
4904
      Òåïåðü æå C-- ìîæåò ñîçäàâàòü îñíîâíîé ìîäóëü (master), êîòîðûé ìîæåò
4906
  áûòü ñëèíêîâàí â ñàìîñòîÿòåëüíûé ôàéë.
4905
  áûòü ñëèíêîâàí â ñàìîñòîÿòåëüíûé ôàéë.
4907
 
4906
 
4908
      Äëÿ obj-ôàéëîâ ïîÿâèëàñü âîçìîæíîñòü èñïîëüçîâàòü âíåøíèå (extern)
4907
      Äëÿ obj-ôàéëîâ ïîÿâèëàñü âîçìîæíîñòü èñïîëüçîâàòü âíåøíèå (extern)
4909
  ïðîöåäóðû, ïåðåìåííûå èëè ñòðóêòóðû. Äëÿ ýòîãî äîñòàòî÷íî èõ îáúÿâèòü êàê
4908
  ïðîöåäóðû, ïåðåìåííûå èëè ñòðóêòóðû. Äëÿ ýòîãî äîñòàòî÷íî èõ îáúÿâèòü êàê
4910
  extern. Ïðè÷åì êëþ÷åâîå ñëîâî extern äîëæíî áûòü âñåãäà ïåðâûì. Ïðèìåð
4909
  extern. Ïðè÷åì êëþ÷åâîå ñëîâî extern äîëæíî áûòü âñåãäà ïåðâûì. Ïðèìåð
4911
  îáúÿâëåíèÿ âíåøíèõ îáúåêòîâ:
4910
  îáúÿâëåíèÿ âíåøíèõ îáúåêòîâ:
4912
 
4911
 
4913
  extern void cdecl _printf(); // îáúÿâëåíèå âíåøíåé ïðîöåäóðû _printf èìåþùåé
4912
  extern void cdecl _printf(); // îáúÿâëåíèå âíåøíåé ïðîöåäóðû _printf èìåþùåé
4914
                               // òèï cdecl  è òèï âîçâðàòà void
4913
                               // òèï cdecl  è òèï âîçâðàòà void
4915
  extern int buts,cubs;        // îáúÿâëåíèå äâóõ âíåøíèõ ïåðåìåííûõ òèïà int
4914
  extern int buts,cubs;        // îáúÿâëåíèå äâóõ âíåøíèõ ïåðåìåííûõ òèïà int
4916
  extern struct IPXL ipxl;     // îáúÿâëåíèå âíåøíåé ñòðóêòóðû ipxl èìåþùåé òåã
4915
  extern struct IPXL ipxl;     // îáúÿâëåíèå âíåøíåé ñòðóêòóðû ipxl èìåþùåé òåã
4917
  			     // IPXL,  ïðè÷åì òåã ýòîé ñòðóêòóðû äîëæåí áûòü
4916
                             // IPXL,  ïðè÷åì òåã ýòîé ñòðóêòóðû äîëæåí áûòü
4918
  			     // îïèñàí ðàíåå.
4917
                             // îïèñàí ðàíåå.
4919
 
4918
 
4920
      Ïîÿâëåíèå âîçìîæíîñòè îáúÿâëÿòü âíåøíèå îáúåêòû ïîçâîëÿåò ïîäêëþ÷àòü ê
4919
      Ïîÿâëåíèå âîçìîæíîñòè îáúÿâëÿòü âíåøíèå îáúåêòû ïîçâîëÿåò ïîäêëþ÷àòü ê
4921
  obj-ìîäóëþ íà C-- ìîäóëè íàïèñàííûå íà äðóãèõ ÿçûêàõ èëè ïîäêëþ÷àòü ê
4920
  obj-ìîäóëþ íà C-- ìîäóëè íàïèñàííûå íà äðóãèõ ÿçûêàõ èëè ïîäêëþ÷àòü ê
4922
  ïðîãðàììå íà C-- ïðîöåäóðû èç áèáëèîòåê íà äðóãèõ ÿçûêàõ. Ïðè îáúÿâëåíèè
4921
  ïðîãðàììå íà C-- ïðîöåäóðû èç áèáëèîòåê íà äðóãèõ ÿçûêàõ. Ïðè îáúÿâëåíèè
4923
  âíåøíèõ îáúåêòîâ î÷åíü âàæíî ïðàâèëüíî óêàçàòü òèï ïðîöåäóðû è åå èìÿ. Åñëè
4922
  âíåøíèõ îáúåêòîâ î÷åíü âàæíî ïðàâèëüíî óêàçàòü òèï ïðîöåäóðû è åå èìÿ. Åñëè
4924
  Âû áóäåòå èñïîëüçîâàòü âíåøíèå ïðîöåäóðû, íàïèñàííûå íà C òî ÷àùå âñåãî,
4923
  Âû áóäåòå èñïîëüçîâàòü âíåøíèå ïðîöåäóðû, íàïèñàííûå íà C òî ÷àùå âñåãî,
4925
  Âàì íóæíî áóäåò óêàçûâàòü ìîäèôèêàòîð cdecl, à ê èìåíè ïðîöåäóðû èëè
4924
  Âàì íóæíî áóäåò óêàçûâàòü ìîäèôèêàòîð cdecl, à ê èìåíè ïðîöåäóðû èëè
4926
  ïåðåìåííîé äîáàâëÿòü ïðåôèêñ _.
4925
  ïåðåìåííîé äîáàâëÿòü ïðåôèêñ _.
4927
 
4926
 
4928
      Èç îñíîâíîãî (master) obj-ôàéëà íàïèñàííîãî íà C-- äëÿ äðóãèõ
4927
      Èç îñíîâíîãî (master) obj-ôàéëà íàïèñàííîãî íà C-- äëÿ äðóãèõ
4929
  obj-ìîäóëåé äîñòóïíû âñå ïðîöåäóðû, ãëîáàëüíûå ïåðåìåííûå è ãëîáàëüíûå
4928
  obj-ìîäóëåé äîñòóïíû âñå ïðîöåäóðû, ãëîáàëüíûå ïåðåìåííûå è ãëîáàëüíûå
4930
  ñòðóêòóðû.
4929
  ñòðóêòóðû.
4931
 
4930
 
4932
      ×òîáû ïîëó÷èòü âåäîìûé obj-ìîäóëü ïðè êîìïèëÿöèè íàäî èñïîëüçîâàòü êëþ÷
4931
      ×òîáû ïîëó÷èòü âåäîìûé obj-ìîäóëü ïðè êîìïèëÿöèè íàäî èñïîëüçîâàòü êëþ÷
4933
  /sobj.
4932
  /sobj.
4934
 
4933
 
4935
      C-- ìîæåò ñîçäàâàòü obj-ôàéëû ñ ìîäåëüþ ïàìÿòè tiny è small. Ïî
4934
      C-- ìîæåò ñîçäàâàòü obj-ôàéëû ñ ìîäåëüþ ïàìÿòè tiny è small. Ïî
4936
  óìîë÷àíèþ ñîçäàþòñÿ ìîäóëè ñ ìîäåëüþ tiny. ×òîáû ïîëó÷èòü obj-ôàéë ñ
4935
  óìîë÷àíèþ ñîçäàþòñÿ ìîäóëè ñ ìîäåëüþ tiny. ×òîáû ïîëó÷èòü obj-ôàéë ñ
4937
  ìîäåëüþ ïàìÿòè small íàäî çàïóñòèòü êîìïèëÿòîð ñ êëþ÷àìè /obj è /exe.
4936
  ìîäåëüþ ïàìÿòè small íàäî çàïóñòèòü êîìïèëÿòîð ñ êëþ÷àìè /obj è /exe.
4938
 
4937
 
4939
      Äëÿ ñîçäàíèÿ obj-ôàéëîâ äëÿ 32-áèòíîãî DOS â êîìàíäíîé ñòðîêå Âàì
4938
      Äëÿ ñîçäàíèÿ obj-ôàéëîâ äëÿ 32-áèòíîãî DOS â êîìàíäíîé ñòðîêå Âàì
4940
  íåîáõîäèìî óêàçàòü êëþ÷è /d32 è /obj. Èñïîëüçîâàòü ïîëó÷åííûé obj-ôàéë ìíå
4939
  íåîáõîäèìî óêàçàòü êëþ÷è /d32 è /obj. Èñïîëüçîâàòü ïîëó÷åííûé obj-ôàéë ìíå
4941
  óäàëîñü ëèøü ñ ïîìîùüþ wlink è ðàñøèðèòåëÿ zrdx.exe.
4940
  óäàëîñü ëèøü ñ ïîìîùüþ wlink è ðàñøèðèòåëÿ zrdx.exe.
4942
 
4941
 
4943
      Ñîçäàíèå obj-ôàéëîâ ïîä windows íå ïðåäóñìîòðåíî.
4942
      Ñîçäàíèå obj-ôàéëîâ ïîä windows íå ïðåäóñìîòðåíî.
4944
Return to contents.
4943
Return to contents.
4945
 
4944
 
4946
 
4945
 
4947
 
4946
 
4948
  12.5 COM ôàéë symbiosis.
4947
  12.5 COM ôàéë symbiosis.
4949
 
4948
 
4950
    12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
4949
    12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
4951
 
4950
 
4952
 
4951
 
4953
        Òðàíñëÿòîð C-- èìååò êëþ÷, ïîçâîëÿþùèé äîáàâëÿòü êîìïèëèðóåìóþ
4952
        Òðàíñëÿòîð C-- èìååò êëþ÷, ïîçâîëÿþùèé äîáàâëÿòü êîìïèëèðóåìóþ
4954
    ïðîãðàììó ê êîíöó óæå èìåþùåãîñÿ COM ôàéëà. Ýòî íàçûâàþò COM-ôàéë
4953
    ïðîãðàììó ê êîíöó óæå èìåþùåãîñÿ COM ôàéëà. Ýòî íàçûâàþò COM-ôàéë
4955
    Symbiosis. Êîãäà òàêàÿ ïðîãðàììà çàïóñêàåòñÿ, óïðàâëåíèå ñíà÷àëà ïîëó÷àåò
4954
    Symbiosis. Êîãäà òàêàÿ ïðîãðàììà çàïóñêàåòñÿ, óïðàâëåíèå ñíà÷àëà ïîëó÷àåò
4956
    äîáàâëåííûé êîä C--, è òîëüêî ïîñëå âûïîëíåíèÿ åãî ïðîöåäóðû main()
4955
    äîáàâëåííûé êîä C--, è òîëüêî ïîñëå âûïîëíåíèÿ åãî ïðîöåäóðû main()
4957
    óïðàâëåíèå ïîëó÷èò ïåðâîíà÷àëüíûé êîä COM-ôàéëà.
4956
    óïðàâëåíèå ïîëó÷èò ïåðâîíà÷àëüíûé êîä COM-ôàéëà.
4958
 
4957
 
4959
        Åñëè äîáàâëåííûé âàìè êîä çàâåðøàåòñÿ EXIT() èëè ABORT(), ïðîãðàììà
4958
        Åñëè äîáàâëåííûé âàìè êîä çàâåðøàåòñÿ EXIT() èëè ABORT(), ïðîãðàììà
4960
    ïðåêðàòèòñÿ, è ïåðâîíà÷àëüíûé êîä COM-ôàéëà íå áóäåò âûïîëíåí. Ýòî
4959
    ïðåêðàòèòñÿ, è ïåðâîíà÷àëüíûé êîä COM-ôàéëà íå áóäåò âûïîëíåí. Ýòî
4961
    ïîçâîëÿåò ïðîãðàììå, äîáàâëåííîé ê COM ôàéëó, îïðåäåëÿòü, áóäåò ëè
4960
    ïîçâîëÿåò ïðîãðàììå, äîáàâëåííîé ê COM ôàéëó, îïðåäåëÿòü, áóäåò ëè
4962
    óïðàâëåíèå ïåðåäàíî íà ïåðâîíà÷àëüíûé êîä.
4961
    óïðàâëåíèå ïåðåäàíî íà ïåðâîíà÷àëüíûé êîä.
4963
Return to contents.
4962
Return to contents.
4964
 
4963
 
4965
 
4964
 
4966
 
4965
 
4967
    12.5.2 Êàê ýòî äåëàòü.
4966
    12.5.2 Êàê ýòî äåëàòü.
4968
 
4967
 
4969
 
4968
 
4970
        ×òîáû ñäåëàòü ýòî, Âû äîëæíû èñïîëüçîâàòü êëþ÷ /SYM â êîìàíäíîé
4969
        ×òîáû ñäåëàòü ýòî, Âû äîëæíû èñïîëüçîâàòü êëþ÷ /SYM â êîìàíäíîé
4971
    ñòðîêå êîìïèëÿòîðà, â êîòîðîé óêàçûâàåòñÿ ïîëíîå èìÿ COM-ôàéëà, ê
4970
    ñòðîêå êîìïèëÿòîðà, â êîòîðîé óêàçûâàåòñÿ ïîëíîå èìÿ COM-ôàéëà, ê
4972
    êîòîðîìó ÷òî-òî äîáàâëÿåòñÿ. Ïðè ýòîì îðèãèíàë COM-ôàéëà íå ìåíÿåòñÿ, à
4971
    êîòîðîìó ÷òî-òî äîáàâëÿåòñÿ. Ïðè ýòîì îðèãèíàë COM-ôàéëà íå ìåíÿåòñÿ, à
4973
    íîâûé ôàéë ñîäåðæèò åãî â ñåáå. Íàïðèìåð, ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó
4972
    íîâûé ôàéë ñîäåðæèò åãî â ñåáå. Íàïðèìåð, ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó
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--
4977
 
4976
 
4978
    Áóäåò ñîçäàí âûõîäíîé ôàéë HELLO.COM .
4977
    Áóäåò ñîçäàí âûõîäíîé ôàéë HELLO.COM .
4979
Return to contents.
4978
Return to contents.
4980
 
4979
 
4981
 
4980
 
4982
 
4981
 
4983
    12.5.3 Èñïîëüçîâàíèå.
4982
    12.5.3 Èñïîëüçîâàíèå.
4984
 
4983
 
4985
 
4984
 
4986
        Âû ìîæåòå, âåðîÿòíî, ïðèäóìàòü áîëüøîå êîëè÷åñòâî ïóòåé èñïîëüçîâàíèÿ
4985
        Âû ìîæåòå, âåðîÿòíî, ïðèäóìàòü áîëüøîå êîëè÷åñòâî ïóòåé èñïîëüçîâàíèÿ
4987
    ýòîé ôóíêöèè, òèïà:
4986
    ýòîé ôóíêöèè, òèïà:
4988
 
4987
 
4989
             - Äîáàâëåíèå çàùèòû ñ èñïîëüçîâàíèåì ïàðîëÿ ê íåêîòîðûì
4988
             - Äîáàâëåíèå çàùèòû ñ èñïîëüçîâàíèåì ïàðîëÿ ê íåêîòîðûì
4990
	       ñïåöèàëüíûì COM ôàéëàì.
4989
               ñïåöèàëüíûì COM ôàéëàì.
4991
             - Óìåíüøåíèå ïàìÿòè, äîñòóïíîé COM ôàéëó ïðè çàïóñêå.
4990
             - Óìåíüøåíèå ïàìÿòè, äîñòóïíîé COM ôàéëó ïðè çàïóñêå.
4992
             - Èíèöèàëèçàöèÿ ðåæèìà âèäåî äëÿ COM ôàéëà.
4991
             - Èíèöèàëèçàöèÿ ðåæèìà âèäåî äëÿ COM ôàéëà.
4993
Return to contents.
4992
Return to contents.
4994
 
4993
 
4995
 
4994
 
4996
 
4995
 
4997
    12.5.4 Çëîóïîòðåáëåíèÿ.
4996
    12.5.4 Çëîóïîòðåáëåíèÿ.
4998
 
4997
 
4999
 
4998
 
5000
        Ëþáîé çëîóìûøëåííèê ìîæåò ïðèäóìàòü è âðåäíûå ïðèìåíåíèÿ äëÿ ýòîé
4999
        Ëþáîé çëîóìûøëåííèê ìîæåò ïðèäóìàòü è âðåäíûå ïðèìåíåíèÿ äëÿ ýòîé
5001
    ôóíêöèè. Íàèáîëåå î÷åâèäíîå èç íèõ - ñîçäàíèå òðîÿíñêèõ êîíåé. ß õîòåë áû
5000
    ôóíêöèè. Íàèáîëåå î÷åâèäíîå èç íèõ - ñîçäàíèå òðîÿíñêèõ êîíåé. ß õîòåë áû
5002
    óêàçàòü, ÷òî ýòî íåêîíñòðóêòèâíîå èñïîëüçîâàíèå C--, è ëþáîå
5001
    óêàçàòü, ÷òî ýòî íåêîíñòðóêòèâíîå èñïîëüçîâàíèå C--, è ëþáîå
5003
    ðàçðóøèòåëüíîå èñïîëüçîâàíèå ñèìáèîçîâ COM-ôàéëîâ çàïðåùåíî.
5002
    ðàçðóøèòåëüíîå èñïîëüçîâàíèå ñèìáèîçîâ COM-ôàéëîâ çàïðåùåíî.
5004
Return to contents.
5003
Return to contents.
5005
 
5004
 
5006
 
5005
 
5007
 
5006
 
5008
  12.6 SYS - äðàéâåðû óñòðîéñòâ.
5007
  12.6 SYS - äðàéâåðû óñòðîéñòâ.
5009
 
5008
 
5010
 
5009
 
5011
      Êîìïèëÿòîð çíà÷èòåëüíî îáëåã÷èò Âàø òðóä ïðè íàïèñàíèè äðàéâåðîâ.
5010
      Êîìïèëÿòîð çíà÷èòåëüíî îáëåã÷èò Âàø òðóä ïðè íàïèñàíèè äðàéâåðîâ.
5012
  Êîìïèëÿòîð ñàì ñîçäàñò çàãîëîâîê äðàéâåðà è ïðîöåäóðû ÑÒÐÀÒÅÃÈß è
5011
  Êîìïèëÿòîð ñàì ñîçäàñò çàãîëîâîê äðàéâåðà è ïðîöåäóðû ÑÒÐÀÒÅÃÈß è
5013
  ÏÐÅÐÛÂÀÍÈÅ. Âàì îñòàåòñÿ ëèøü íàïèñàòü êîä îáðàáîòêè êîìàíä.
5012
  ÏÐÅÐÛÂÀÍÈÅ. Âàì îñòàåòñÿ ëèøü íàïèñàòü êîä îáðàáîòêè êîìàíä.
5014
 
5013
 
5015
      ×òî áû îòêîìïèëèðîâàòü ôàéë äðàéâåðà óñòðîéñòâà, íàäî äîáàâèòü â
5014
      ×òî áû îòêîìïèëèðîâàòü ôàéë äðàéâåðà óñòðîéñòâà, íàäî äîáàâèòü â
5016
  êîìàíäíóþ ñòðîêó êëþ÷ /SYS. Êðîìå òîãî, ïîÿâèëèñü íîâûå äèðåêòèâû
5015
  êîìàíäíóþ ñòðîêó êëþ÷ /SYS. Êðîìå òîãî, ïîÿâèëèñü íîâûå äèðåêòèâû
5017
  êîìïèëÿòîðó, êîòîðûå äåéñòâóþò òîëüêî ñ ýòèì êëþ÷îì. Âîò îíè:
5016
  êîìïèëÿòîðó, êîòîðûå äåéñòâóþò òîëüêî ñ ýòèì êëþ÷îì. Âîò îíè:
5018
 
5017
 
5019
      ?sysattribute çíà÷åíèå  - ýòà  äèðåêòèâà ïåðåäàåò  êîìïèëÿòîðó
5018
      ?sysattribute çíà÷åíèå  - ýòà  äèðåêòèâà ïåðåäàåò  êîìïèëÿòîðó
5020
  àòðèáóò ñîçäàâàåìîãî äðàéâåðà. Ïî óìîë÷àíèþ óñòàíàâëèâàåòñÿ çíà÷åíèå
5019
  àòðèáóò ñîçäàâàåìîãî äðàéâåðà. Ïî óìîë÷àíèþ óñòàíàâëèâàåòñÿ çíà÷åíèå
5021
  0x2000.
5020
  0x2000.
5022
 
5021
 
5023
      ?sysname <òåêñòîâàÿ  ñòðîêà> -  ýòà äèðåêòèâà  ïåðåäàåò êîìïèëÿòîðó
5022
      ?sysname <òåêñòîâàÿ  ñòðîêà> -  ýòà äèðåêòèâà  ïåðåäàåò êîìïèëÿòîðó
5024
  èìÿ áóäóùåãî äðàéâåðà. Ïî óìîë÷àíèþ ïðèñâàèâàåòñÿ èìÿ "NO_NAME". Äëèíà
5023
  èìÿ áóäóùåãî äðàéâåðà. Ïî óìîë÷àíèþ ïðèñâàèâàåòñÿ èìÿ "NO_NAME". Äëèíà
5025
  èìåíè  íå áîëåå 8 ñèìâîëîâ.
5024
  èìåíè  íå áîëåå 8 ñèìâîëîâ.
5026
 
5025
 
5027
      ?syscommand command_0,command_1, ... command_n; - ýòà äèðåêòèâà
5026
      ?syscommand command_0,command_1, ... command_n; - ýòà äèðåêòèâà
5028
  ÿâëÿåòñÿ îáÿçàòåëüíîé. Ïî ýòîé äèðåêòèâå êîìïèëÿòîðó ïåðåäàåòñÿ ñïèñîê èìåí
5027
  ÿâëÿåòñÿ îáÿçàòåëüíîé. Ïî ýòîé äèðåêòèâå êîìïèëÿòîðó ïåðåäàåòñÿ ñïèñîê èìåí
5029
  ïðîöåäóð îáðàáîòêè êîìàíä äðàéâåðà. Èìåíà ðàçäåëåíû çàïÿòûìè. Ñïèñîê äîëæåí
5028
  ïðîöåäóð îáðàáîòêè êîìàíä äðàéâåðà. Èìåíà ðàçäåëåíû çàïÿòûìè. Ñïèñîê äîëæåí
5030
  çàêàí÷èâàòüñÿ ñèìâîëîì òî÷êà-ñ-çàïÿòîé. Ìîæíî ïåðåäàòü íå áîëåå 25 êîìàíä.
5029
  çàêàí÷èâàòüñÿ ñèìâîëîì òî÷êà-ñ-çàïÿòîé. Ìîæíî ïåðåäàòü íå áîëåå 25 êîìàíä.
5031
  Åñëè êàêàÿ-òî êîìàíäà íå èìååò êîäà ïîääåðæêè, òî â ñïèñîê íàäî çàïèñàòü
5030
  Åñëè êàêàÿ-òî êîìàíäà íå èìååò êîäà ïîääåðæêè, òî â ñïèñîê íàäî çàïèñàòü
5032
  ñëîâî NONE.
5031
  ñëîâî NONE.
5033
 
5032
 
5034
      Ïî óìîë÷àíèþ êîìïèëÿòîð äëÿ äðàéâåðà íå ñîçäàåò ñòåê. Äðàéâåð ìîæåò
5033
      Ïî óìîë÷àíèþ êîìïèëÿòîð äëÿ äðàéâåðà íå ñîçäàåò ñòåê. Äðàéâåð ìîæåò
5035
  ïîëüçîâàòüñÿ ñèñòåìíûì ñòåêîì. Íî, ãîâîðÿò, ÷òî îí èìååò ìàëåíüêóþ ãëóáèíó.
5034
  ïîëüçîâàòüñÿ ñèñòåìíûì ñòåêîì. Íî, ãîâîðÿò, ÷òî îí èìååò ìàëåíüêóþ ãëóáèíó.
5036
  Åñëè Âàøè ïðîöåäóðû àêòèâíî èñïîëüçóþò ñòåê, è Âû íå íàäååòåñü íà ñèñòåìíûé,
5035
  Åñëè Âàøè ïðîöåäóðû àêòèâíî èñïîëüçóþò ñòåê, è Âû íå íàäååòåñü íà ñèñòåìíûé,
5037
  òî äèðåêòèâîé ?stack <âåëè÷èíà> ìîæíî çàñòàâèòü äðàéâåð ïîëüçîâàòüñÿ ñâîèì
5036
  òî äèðåêòèâîé ?stack <âåëè÷èíà> ìîæíî çàñòàâèòü äðàéâåð ïîëüçîâàòüñÿ ñâîèì
5038
  ñòåêîì.
5037
  ñòåêîì.
5039
 
5038
 
5040
      Âàøèì ïðîöåäóðàì îáðàáîòêè êîìàíä ïðè ïåðåäà÷å óïðàâëåíèÿ â ðåãèñòðàõ
5039
      Âàøèì ïðîöåäóðàì îáðàáîòêè êîìàíä ïðè ïåðåäà÷å óïðàâëåíèÿ â ðåãèñòðàõ
5041
  ES:BX áóäåò ïåðåäàí àäðåñ çàãîëîâêà çàïðîñà. Ðåãèñòð DS ðàâåí CS. Ïðè
5040
  ES:BX áóäåò ïåðåäàí àäðåñ çàãîëîâêà çàïðîñà. Ðåãèñòð DS ðàâåí CS. Ïðè
5042
  âîçâðàòå óïðàâëåíèÿ âàøè ïðîöåäóðû äîëæíû ñîõðàíèòü ðåãèñòð DS. Â ðåãèñòðå
5041
  âîçâðàòå óïðàâëåíèÿ âàøè ïðîöåäóðû äîëæíû ñîõðàíèòü ðåãèñòð DS. Â ðåãèñòðå
5043
  AX äîëæåí íàõîäèòüñÿ êîä âîçâðàòà. Îñòàëüíûå ðåãèñòðû ìîãóò áûòü
5042
  AX äîëæåí íàõîäèòüñÿ êîä âîçâðàòà. Îñòàëüíûå ðåãèñòðû ìîãóò áûòü
5044
  èñïîëüçîâàíû ïðîèçâîëüíûì îáðàçîì.
5043
  èñïîëüçîâàíû ïðîèçâîëüíûì îáðàçîì.
5045
 
5044
 
5046
      Ïðîöåäóðó îáðàáîòêè êîìàíäû èíèöèàëèçàöèè æåëàòåëüíî ðàñïîëàãàòü
5045
      Ïðîöåäóðó îáðàáîòêè êîìàíäû èíèöèàëèçàöèè æåëàòåëüíî ðàñïîëàãàòü
5047
  ïîñëåäíåé (÷òîáû èìåòü âîçìîæíîñòü îòäàòü àäðåñíîå ïðîñòðàíñòâî çàíèìàåìîå
5046
  ïîñëåäíåé (÷òîáû èìåòü âîçìîæíîñòü îòäàòü àäðåñíîå ïðîñòðàíñòâî çàíèìàåìîå
5048
  ýòîé ïðîöåäóðîé îïåðàöèîííîé ñèñòåìå). Ïåðåä ýòîé ïðîöåäóðîé, åñëè Âû â
5047
  ýòîé ïðîöåäóðîé îïåðàöèîííîé ñèñòåìå). Ïåðåä ýòîé ïðîöåäóðîé, åñëè Âû â
5049
  äðóãèõ ïðîöåäóðàõ îáðàáîòêè êîìàíä èñïîëüçóåòå äèíàìè÷åñêèå ïðîöåäóðû,
5048
  äðóãèõ ïðîöåäóðàõ îáðàáîòêè êîìàíä èñïîëüçóåòå äèíàìè÷åñêèå ïðîöåäóðû,
5050
  îáÿçàòåëüíî äîëæíà áûòü äèðåêòèâà ?setdinproc. Ãëîáàëüíûå ïåðåìåííûå äîëæíû
5049
  îáÿçàòåëüíî äîëæíà áûòü äèðåêòèâà ?setdinproc. Ãëîáàëüíûå ïåðåìåííûå äîëæíû
5051
  áûòü îáÿçàòåëüíî ïðîèíèöèàëèçèðîâàíû.
5050
  áûòü îáÿçàòåëüíî ïðîèíèöèàëèçèðîâàíû.
5052
Return to contents.
5051
Return to contents.
5053
 
5052
 
5054
 
5053
 
5055
 
5054
 
5056
  12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
5055
  12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
5057
 
5056
 
5058
 
5057
 
5059
      Ðàñøèðèòåëè ROM-BIOS (BIOS âèäåîêîíòðîëëåðîâ, ñåòåâûõ êàðò...) èìåþò
5058
      Ðàñøèðèòåëè ROM-BIOS (BIOS âèäåîêîíòðîëëåðîâ, ñåòåâûõ êàðò...) èìåþò
5060
  îïðåäåëåííóþ ñòðóêòóðó è òðåáîâàíèÿ. C-- òåïåðü ìîæåò îáëåã÷èòü Âàì ïðîöåññ
5059
  îïðåäåëåííóþ ñòðóêòóðó è òðåáîâàíèÿ. C-- òåïåðü ìîæåò îáëåã÷èòü Âàì ïðîöåññ
5061
  ñîçäàíèÿ êîäà ROM-BIOS. Åñëè çàïóñòèòü êîìïèëÿòîð íà êîìïèëÿöèþ ñ êëþ÷îì
5060
  ñîçäàíèÿ êîäà ROM-BIOS. Åñëè çàïóñòèòü êîìïèëÿòîð íà êîìïèëÿöèþ ñ êëþ÷îì
5062
  êîìàíäíîé ñòðîêè /ROM, òî êîìïèëÿòîð ñîçäàñò ñèãíàòóðó (çàãîëîâîê)
5061
  êîìàíäíîé ñòðîêè /ROM, òî êîìïèëÿòîð ñîçäàñò ñèãíàòóðó (çàãîëîâîê)
5063
  ROM-BIOS, çàïîëíèò îñòàâøååñÿ ñâîáîäíîå ìåñòî äî óêàçàííîãî ðàçìåðà ÏÇÓ
5062
  ROM-BIOS, çàïîëíèò îñòàâøååñÿ ñâîáîäíîå ìåñòî äî óêàçàííîãî ðàçìåðà ÏÇÓ
5064
  êîäîì çàïîëíåíèÿ, ïîäñ÷èòàåò è ñêîððåêòèðóåò êîíòðîëüíóþ ñóììó ÏÇÓ.
5063
  êîäîì çàïîëíåíèÿ, ïîäñ÷èòàåò è ñêîððåêòèðóåò êîíòðîëüíóþ ñóììó ÏÇÓ.
5065
 
5064
 
5066
      Äëÿ ýòîãî ðåæèìà êîìïèëÿöèè åñòü íåñêîëüêî ñïåöèôè÷åñêèõ äèðåêòèâ:
5065
      Äëÿ ýòîãî ðåæèìà êîìïèëÿöèè åñòü íåñêîëüêî ñïåöèôè÷åñêèõ äèðåêòèâ:
5067
 
5066
 
5068
    1.  ?sizerom value - ýòà äèðåêòèâà ñîîáùàåò êîìïèëÿòîðó ðàçìåð ÏÇÓ â
5067
    1.  ?sizerom value - ýòà äèðåêòèâà ñîîáùàåò êîìïèëÿòîðó ðàçìåð ÏÇÓ â
5069
  áàéòàõ. Åñëè ýòà äèðåêòèâà íå óêàçàíà, òî êîìïèëÿòîð ñàì âûáåðåò
5068
  áàéòàõ. Åñëè ýòà äèðåêòèâà íå óêàçàíà, òî êîìïèëÿòîð ñàì âûáåðåò
5070
  ìèíèìàëüíûé ïîäõîäÿùèé ðàçìåð ÏÇÓ èç ðÿäà: 1024, 2048, 4096, 8192, 16384,
5069
  ìèíèìàëüíûé ïîäõîäÿùèé ðàçìåð ÏÇÓ èç ðÿäà: 1024, 2048, 4096, 8192, 16384,
5071
  32762 èëè 65536. Ñâîáîäíîå îò êîäà è äàííûõ ìåñòî áóäóò çàïîëíåíû äî êîíöà
5070
  32762 èëè 65536. Ñâîáîäíîå îò êîäà è äàííûõ ìåñòî áóäóò çàïîëíåíû äî êîíöà
5072
  ðàçìåðà ÏÇÓ áàéòîì çàïîëíåíèÿ îïðåäåëÿåìîãî äèðåêòèâîé ?aligner. Ïî
5071
  ðàçìåðà ÏÇÓ áàéòîì çàïîëíåíèÿ îïðåäåëÿåìîãî äèðåêòèâîé ?aligner. Ïî
5073
  óìîë÷àíèþ îí ðàâåí íóëþ, äëÿ ÐÏÇÓ òèïà 27õõõ ýòîò áàéò èìååò ñìûñë ñäåëàòü
5072
  óìîë÷àíèþ îí ðàâåí íóëþ, äëÿ ÐÏÇÓ òèïà 27õõõ ýòîò áàéò èìååò ñìûñë ñäåëàòü
5074
  ðàâíûì 0xFF. Ïîñëåäíèé áàéò ÏÇÓ áóäåò ñêîððåêòèðîâàí êîìïèëÿòîðîì òàêèì
5073
  ðàâíûì 0xFF. Ïîñëåäíèé áàéò ÏÇÓ áóäåò ñêîððåêòèðîâàí êîìïèëÿòîðîì òàêèì
5075
  îáðàçîì, ÷òîáû êîíòðîëüíàÿ ñóììà ðàâíÿëàñü íóëþ.
5074
  îáðàçîì, ÷òîáû êîíòðîëüíàÿ ñóììà ðàâíÿëàñü íóëþ.
5076
 
5075
 
5077
    2.  ?movedatarom TRUE/FALSE - ýòà äèðåêòèâà ñîîáùàåò êîìïèëÿòîðó åñòü ëè
5076
    2.  ?movedatarom TRUE/FALSE - ýòà äèðåêòèâà ñîîáùàåò êîìïèëÿòîðó åñòü ëè
5078
  íåîáõîäèìîñòü êîïèðîâàòü äàííûå èç ÏÇÓ â ÎÇÓ. Ïî óìîë÷àíèþ îíà óñòàíîâëåíà
5077
  íåîáõîäèìîñòü êîïèðîâàòü äàííûå èç ÏÇÓ â ÎÇÓ. Ïî óìîë÷àíèþ îíà óñòàíîâëåíà
5079
  â FALSE. Åñëè ýòó äèðåêòèâó îïðåäåëèòü TRUE, òî êîìïèëÿòîð âñòàâèò â
5078
  â FALSE. Åñëè ýòó äèðåêòèâó îïðåäåëèòü TRUE, òî êîìïèëÿòîð âñòàâèò â
5080
  îáëàñòü èíèöèàëèçàöèè êîä ïåðåìåùàþùèé äàííûå èç ÏÇÓ â ÎÇÓ. Ïðè ýòîì
5079
  îáëàñòü èíèöèàëèçàöèè êîä ïåðåìåùàþùèé äàííûå èç ÏÇÓ â ÎÇÓ. Ïðè ýòîì
5081
  ðåãèñòð DS áóäåò óñòàíîâëåí íà ñåãìåíò ÎÇÓ. Ñòåê òàêæå áóäåò ïåðåóñòàíîâëåí
5080
  ðåãèñòð DS áóäåò óñòàíîâëåí íà ñåãìåíò ÎÇÓ. Ñòåê òàêæå áóäåò ïåðåóñòàíîâëåí
5082
  íà ýòîò ñåãìåíò. Òàêèì îáðàçîì, ïðîöåäóðà main ïîëó÷èò óïðàâëåíèå ñ
5081
  íà ýòîò ñåãìåíò. Òàêèì îáðàçîì, ïðîöåäóðà main ïîëó÷èò óïðàâëåíèå ñ
5083
  ðåãèñòðàìè AX = ES = DS = SS = ñåãìåíòó ÎÇÓ ñ ïåðåíåñåííûìè â íåãî äàííûìè.
5082
  ðåãèñòðàìè AX = ES = DS = SS = ñåãìåíòó ÎÇÓ ñ ïåðåíåñåííûìè â íåãî äàííûìè.
5084
  Åñëè ýòó äèðåêòèâó óñòàíîâèòü â FALSE, ðåãèñòð DS âñå ðàâíî áóäåò
5083
  Åñëè ýòó äèðåêòèâó óñòàíîâèòü â FALSE, ðåãèñòð DS âñå ðàâíî áóäåò
5085
  ïåðåóñòàíîâëåí íà àäðåñ ñåãìåíòà ÎÇÓ, òàê êàê Âàø êîä áóäåò èñïîëüçîâàòü
5084
  ïåðåóñòàíîâëåí íà àäðåñ ñåãìåíòà ÎÇÓ, òàê êàê Âàø êîä áóäåò èñïîëüçîâàòü
5086
  ýòîò ñåãìåíò äëÿ íåèíèöèàëèçèðîâàííûõ ãëîáàëüíûõ ïåðåìåííûõ.
5085
  ýòîò ñåãìåíò äëÿ íåèíèöèàëèçèðîâàííûõ ãëîáàëüíûõ ïåðåìåííûõ.
5087
  Èíèöèàëèçèðîâàííûå ïåðåìåííûå îñòàíóòñÿ â ÏÇÓ è âñå îáðàùåíèÿ ê íèì áóäóò
5086
  Èíèöèàëèçèðîâàííûå ïåðåìåííûå îñòàíóòñÿ â ÏÇÓ è âñå îáðàùåíèÿ ê íèì áóäóò
5088
  ïðîèçâîäèòüñÿ ÷åðåç ðåãèñòð CS. Òàê æå îñòàíåòñÿ íå òðîíóòûì (òàêèì, êàêèì
5087
  ïðîèçâîäèòüñÿ ÷åðåç ðåãèñòð CS. Òàê æå îñòàíåòñÿ íå òðîíóòûì (òàêèì, êàêèì
5089
  åãî óñòàíîâèë ãëàâíûé BIOS) è ñòåê.
5088
  åãî óñòàíîâèë ãëàâíûé BIOS) è ñòåê.
5090
 
5089
 
5091
    3.  ?dataseg value - ýòîé äèðåêòèâîé êîìïèëÿòîðó ñîîáùàåòñÿ ñåãìåíòíûé
5090
    3.  ?dataseg value - ýòîé äèðåêòèâîé êîìïèëÿòîðó ñîîáùàåòñÿ ñåãìåíòíûé
5092
  àäðåñ ÎÇÓ, êîòîðûé ìîæåò áûòü èñïîëüçîâàí âàøèì êîäîì. Ïî óìîë÷àíèþ îí
5091
  àäðåñ ÎÇÓ, êîòîðûé ìîæåò áûòü èñïîëüçîâàí âàøèì êîäîì. Ïî óìîë÷àíèþ îí
5093
  ðàâåí 0x70. Ýòîò àäðåñ âû ìîæåòå óçíàòü â ëþáîé ìîìåíò, ñ÷èòàâ åãî èç âàøåãî
5092
  ðàâåí 0x70. Ýòîò àäðåñ âû ìîæåòå óçíàòü â ëþáîé ìîìåíò, ñ÷èòàâ åãî èç âàøåãî
5094
  êîäà ïî ñìåùåíèþ 4. Íàïðèìåð: DS = CSWORD[4];
5093
  êîäà ïî ñìåùåíèþ 4. Íàïðèìåð: DS = CSWORD[4];
5095
 
5094
 
5096
      Íåêîòîðûå çàìå÷àíèÿ:
5095
      Íåêîòîðûå çàìå÷àíèÿ:
5097
 
5096
 
5098
    1.  Íå çàáûâàéòå, ÷òî â ìîìåíò èíèöèàëèçàöèè ROM-BIOS, DOS åùå íå
5097
    1.  Íå çàáûâàéòå, ÷òî â ìîìåíò èíèöèàëèçàöèè ROM-BIOS, DOS åùå íå
5099
  çàãðóæåí, è ñîîòâåòñòâåííî âñå ïðîöåäóðû èñïîëüçóþùèå âûçîâû DOS ðàáîòàòü
5098
  çàãðóæåí, è ñîîòâåòñòâåííî âñå ïðîöåäóðû èñïîëüçóþùèå âûçîâû DOS ðàáîòàòü
5100
  íå áóäóò.
5099
  íå áóäóò.
5101
 
5100
 
5102
    2. Íåëüçÿ çàâåðøàòü ðàáîòó ïðîãðàììû ïðîöåäóðàìè ABORT() èëè EXIT() è èì
5101
    2. Íåëüçÿ çàâåðøàòü ðàáîòó ïðîãðàììû ïðîöåäóðàìè ABORT() èëè EXIT() è èì
5103
  ïîäîáíûì. Ðàáîòà ðàñøèðèòåëÿ ROM-BIOS äîëæíà çàâåðøàòüñÿ òîëüêî âûõîäîì èç
5102
  ïîäîáíûì. Ðàáîòà ðàñøèðèòåëÿ ROM-BIOS äîëæíà çàâåðøàòüñÿ òîëüêî âûõîäîì èç
5104
  ïðîöåäóðû main().
5103
  ïðîöåäóðû main().
5105
 
5104
 
5106
    3. Åñëè äèðåêòèâà ?movedatarom óñòàíîâëåíà â FALSE, òî áóäüòå âíèìàòåëüíû
5105
    3. Åñëè äèðåêòèâà ?movedatarom óñòàíîâëåíà â FALSE, òî áóäüòå âíèìàòåëüíû
5107
  ïðè ðàáîòå ñ èíèöèàëèçèðîâàííûìè ïåðåìåííûìè. Îíè â ýòîì ðåæèìå äîñòóïíû
5106
  ïðè ðàáîòå ñ èíèöèàëèçèðîâàííûìè ïåðåìåííûìè. Îíè â ýòîì ðåæèìå äîñòóïíû
5108
  òîëüêî äëÿ ÷òåíèÿ, è àäðåñóþòñÿ ÷åðåç ðåãèñòð CS.
5107
  òîëüêî äëÿ ÷òåíèÿ, è àäðåñóþòñÿ ÷åðåç ðåãèñòð CS.
5109
Return to contents.
5108
Return to contents.
5110
 
5109
 
5111
 
5110
 
5112
 
5111
 
5113
  12.8 32-áèòíûå ôàéëû.
5112
  12.8 32-áèòíûå ôàéëû.
5114
 
5113
 
5115
    12.8.1 32-áèòíûé êîä ïîä DOS.
5114
    12.8.1 32-áèòíûé êîä ïîä DOS.
5116
 
5115
 
5117
 
5116
 
5118
        Äëÿ òîãî ÷òîáû îòêîìïèëèðîâàòü 32-áèòíóþ ïðîãðàììó ïîä DOS íàäî
5117
        Äëÿ òîãî ÷òîáû îòêîìïèëèðîâàòü 32-áèòíóþ ïðîãðàììó ïîä DOS íàäî
5119
    çàïóñòèòü êîìïèëÿòîð ñ êëþ÷îì êîìàíäíîé ñòðîêè /d32. Íî ðàáîòà 32-áèòíîé
5118
    çàïóñòèòü êîìïèëÿòîð ñ êëþ÷îì êîìàíäíîé ñòðîêè /d32. Íî ðàáîòà 32-áèòíîé
5120
    ïðîãðàììû ïîä DOS-îì íåâîçìîæíà áåç ðàñøèðèòåëÿ DOS. Äëÿ C-- ìîæíî
5119
    ïðîãðàììû ïîä DOS-îì íåâîçìîæíà áåç ðàñøèðèòåëÿ DOS. Äëÿ C-- ìîæíî
5121
    èñïîëüçîâàòü DOS4GW èëè zrdx.exe èëè ëþáîé äðóãîé ðàñøèðèòåëü DOS. ×òîáû
5120
    èñïîëüçîâàòü DOS4GW èëè zrdx.exe èëè ëþáîé äðóãîé ðàñøèðèòåëü DOS. ×òîáû
5122
    êîìïèëÿòîð çíàë, ãäå èñêàòü stub ôàéë è åãî èìÿ, íàäî â ôàéë c--.ini
5121
    êîìïèëÿòîð çíàë, ãäå èñêàòü stub ôàéë è åãî èìÿ, íàäî â ôàéë c--.ini
5123
    ïðîïèñàòü ñòðîêó stub=path_name_to_stub_file.  Ïðèìåð:
5122
    ïðîïèñàòü ñòðîêó stub=path_name_to_stub_file.  Ïðèìåð:
5124
 
5123
 
5125
        stub=c:\c--\zrdx.exe
5124
        stub=c:\c--\zrdx.exe
5126
 
5125
 
5127
        Åñëè íå äîáàâëÿòü â c--.ini ýòó ñòðîêó, òî êîìïèëÿòîð ñãåíåðèðóåò
5126
        Åñëè íå äîáàâëÿòü â c--.ini ýòó ñòðîêó, òî êîìïèëÿòîð ñãåíåðèðóåò
5128
    32-áèòíûé exe-ôàéë, íî áåç ðàñøèðèòåëÿ DOS. Åñëè â êîìàíäíîé ñòðîêå
5127
    32-áèòíûé exe-ôàéë, íî áåç ðàñøèðèòåëÿ DOS. Åñëè â êîìàíäíîé ñòðîêå
5129
    âìåñòå ñ êëþ÷îì /d32 óêàçàòü è êëþ÷ /ns, òî ñòðîêà ñ ïåðåìåííîé stub èç
5128
    âìåñòå ñ êëþ÷îì /d32 óêàçàòü è êëþ÷ /ns, òî ñòðîêà ñ ïåðåìåííîé stub èç
5130
    ôàéëà c--.ini áóäåò àííóëèðîâàíà, è âû ïîëó÷èòå ôàéë áåç ðàñøèðèòåëÿ DOS.
5129
    ôàéëà c--.ini áóäåò àííóëèðîâàíà, è âû ïîëó÷èòå ôàéë áåç ðàñøèðèòåëÿ DOS.
5131
 
5130
 
5132
        Äëÿ 32-áèòíîãî DOS-ôàéëà ìîæíî èñïîëüçîâàòü äèðåêòèâû êîìïèëÿòîðà
5131
        Äëÿ 32-áèòíîãî DOS-ôàéëà ìîæíî èñïîëüçîâàòü äèðåêòèâû êîìïèëÿòîðà
5133
    ?parsecommandline TRUE/FALSE èëè åãî ðàñøèðåííûé âàðèàíò ?argc
5132
    ?parsecommandline TRUE/FALSE èëè åãî ðàñøèðåííûé âàðèàíò ?argc
5134
    TRUE/FALSE.  Ðåàëèçîâàíà è ïîääåðæêà äèðåêòèâû ?atexit TRUE/FALSE.
5133
    TRUE/FALSE.  Ðåàëèçîâàíà è ïîääåðæêà äèðåêòèâû ?atexit TRUE/FALSE.
5135
 
5134
 
5136
        Ñåé÷àñ äëÿ 32-áèòíûõ DOS-ôàéëîâ èñïîëüçóåòñÿ LE-ôîðìàò. Òàê êàê LE
5135
        Ñåé÷àñ äëÿ 32-áèòíûõ DOS-ôàéëîâ èñïîëüçóåòñÿ LE-ôîðìàò. Òàê êàê LE
5137
    ôîðìàò ÿâëÿåòñÿ ñòàíäàðòíûì, òî òåïåðü ìîæíî èñïîëüçîâàòü ïî÷òè ëþáîé
5136
    ôîðìàò ÿâëÿåòñÿ ñòàíäàðòíûì, òî òåïåðü ìîæíî èñïîëüçîâàòü ïî÷òè ëþáîé
5138
    stub, ïîíèìàþùèé ýòîò ôîðìàò. Ôàéëû LE ôîðìàòà ìîæíî ñæèìàòü ïðîãðàììàìè
5137
    stub, ïîíèìàþùèé ýòîò ôîðìàò. Ôàéëû LE ôîðìàòà ìîæíî ñæèìàòü ïðîãðàììàìè
5139
    òèïà UPX.EXE è åé ïîäîáíûìè.
5138
    òèïà UPX.EXE è åé ïîäîáíûìè.
5140
 
5139
 
5141
        Åñëè Âû èñïîëüçóåòå stub, êîòîðûé çàòåì çàãðóæàåò DOS4GW.EXE, òî
5140
        Åñëè Âû èñïîëüçóåòå stub, êîòîðûé çàòåì çàãðóæàåò DOS4GW.EXE, òî
5142
    íà÷àëî Âàøåé ïðîãðàììû äîëæíî èìåòü ñïåöèàëüíóþ ñèãíàòóðó. Êîìïèëÿòîð
5141
    íà÷àëî Âàøåé ïðîãðàììû äîëæíî èìåòü ñïåöèàëüíóþ ñèãíàòóðó. Êîìïèëÿòîð
5143
    àâòîìàòè÷åñêè ñôîðìèðóåò åå, åñëè Âû â êîìàíäíîé ñòðîêå èëè â c--.ini
5142
    àâòîìàòè÷åñêè ñôîðìèðóåò åå, åñëè Âû â êîìàíäíîé ñòðîêå èëè â c--.ini
5144
    ôàéëå óêàæåòå êëþ÷ /DOS4GW. Òàêîé êëþ÷ Âàì íåîáõîäèìî áóäåò ïðèìåíÿòü,
5143
    ôàéëå óêàæåòå êëþ÷ /DOS4GW. Òàêîé êëþ÷ Âàì íåîáõîäèìî áóäåò ïðèìåíÿòü,
5145
    åñëè Âû áóäåòå èñïîëüçîâàòü â êà÷åñòâå stub 4gs.exe.
5144
    åñëè Âû áóäåòå èñïîëüçîâàòü â êà÷åñòâå stub 4gs.exe.
5146
 
5145
 
5147
        Ñóùåñòâóåò òàêæå ïîääåðæêà áëîêà êîäà èñïîëüçóþùåãî äëÿ ïåðåõîäà è
5146
        Ñóùåñòâóåò òàêæå ïîääåðæêà áëîêà êîäà èñïîëüçóþùåãî äëÿ ïåðåõîäà è
5148
    ðàáîòû â 32-áèòíîì ðåæèìå âîçìîæíîñòè DPMI ñåðâèñà. Èñõîäíûé òåêñò ýòîãî
5147
    ðàáîòû â 32-áèòíîì ðåæèìå âîçìîæíîñòè DPMI ñåðâèñà. Èñõîäíûé òåêñò ýòîãî
5149
    áëîêà íàõîäèòñÿ â ôàéëå startup.h-- è êîìïèëèðóåòñÿ, åñëè â êîìàíäíîé
5148
    áëîêà íàõîäèòñÿ â ôàéëå startup.h-- è êîìïèëèðóåòñÿ, åñëè â êîìàíäíîé
5150
    ñòðîêå óêàçàíà îïöèÿ /stub=dpmi èëè â ôàéëå c--.ini íàïèñàòü ñòðîêó
5149
    ñòðîêå óêàçàíà îïöèÿ /stub=dpmi èëè â ôàéëå c--.ini íàïèñàòü ñòðîêó
5151
    stub=dpmi.  Íåäîñòàòêîì ýòîãî ñïîñîáà ïåðåõîäà è ðàáîòû â 32-áèòíîì
5150
    stub=dpmi.  Íåäîñòàòêîì ýòîãî ñïîñîáà ïåðåõîäà è ðàáîòû â 32-áèòíîì
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.
5158
 
5157
 
5159
 
5158
 
5160
 
5159
 
5161
    12.8.2 32-áèòíûé êîä ïîä Windows.
5160
    12.8.2 32-áèòíûé êîä ïîä Windows.
5162
 
5161
 
5163
 
5162
 
5164
        Äëÿ òîãî ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó, íàïèñàííóþ ïîä Windows íàäî
5163
        Äëÿ òîãî ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó, íàïèñàííóþ ïîä Windows íàäî
5165
    çàïóñòèòü êîìïèëÿòîð ñ êëþ÷îì êîìàíäíîé ñòðîêè /w32.
5164
    çàïóñòèòü êîìïèëÿòîð ñ êëþ÷îì êîìàíäíîé ñòðîêè /w32.
5166
 
5165
 
5167
        Åñëè Âû â ñâîåé ïðîãðàììå èñïîëüçóåòå âûçîâû API-ïðîöåäóð, òî ýòè
5166
        Åñëè Âû â ñâîåé ïðîãðàììå èñïîëüçóåòå âûçîâû API-ïðîöåäóð, òî ýòè
5168
    ïðîöåäóðû íàäî ïðåäâàðèòåëüíî îáÿçàòåëüíî îáúÿâèòü. Îáúÿâëåíèå ïðîöåäóð
5167
    ïðîöåäóðû íàäî ïðåäâàðèòåëüíî îáÿçàòåëüíî îáúÿâèòü. Îáúÿâëåíèå ïðîöåäóð
5169
    èìååò ñëåäóþùóþ ôîðìó:
5168
    èìååò ñëåäóþùóþ ôîðìó:
5170
 
5169
 
5171
    extern WINAPI "DLL_name"
5170
    extern WINAPI "DLL_name"
5172
    {
5171
    {
5173
        returncode procname1();
5172
        returncode procname1();
5174
        returncode procname2();
5173
        returncode procname2();
5175
        procname3();
5174
        procname3();
5176
    }
5175
    }
5177
 
5176
 
5178
      ãäå:
5177
      ãäå:
5179
           DLL_name - èìÿ è ðàñøèðåíèå dll-áèáëèîòåêè, â êîòîðîé íàõîäÿòñÿ ýòè
5178
           DLL_name - èìÿ è ðàñøèðåíèå dll-áèáëèîòåêè, â êîòîðîé íàõîäÿòñÿ ýòè
5180
                      ïðîöåäóðû.
5179
                      ïðîöåäóðû.
5181
         returncode - òèï âîçâðàòà èç api-ïðîöåäóð. Ïî óìîë÷àíèþ îí ðàâåí dword.
5180
         returncode - òèï âîçâðàòà èç api-ïðîöåäóð. Ïî óìîë÷àíèþ îí ðàâåí dword.
5182
 
5181
 
5183
        Ïðîãðàììû, íàïèñàííûå ïîä Windows, èìåþò îäíó íåìàëîâàæíóþ
5182
        Ïðîãðàììû, íàïèñàííûå ïîä Windows, èìåþò îäíó íåìàëîâàæíóþ
5184
    îñîáåííîñòü - âñå ïàðàìåòðû â ñòåêîâûå ïðîöåäóðû ïåðåäàþòñÿ â îáðàòíîì
5183
    îñîáåííîñòü - âñå ïàðàìåòðû â ñòåêîâûå ïðîöåäóðû ïåðåäàþòñÿ â îáðàòíîì
5185
    ïîðÿäêå (òàê íàçûâàåìûé C-ñòèëü), íî î÷èñòêà ñòåêà îò ïàðàìåòðîâ
5184
    ïîðÿäêå (òàê íàçûâàåìûé C-ñòèëü), íî î÷èñòêà ñòåêà îò ïàðàìåòðîâ
5186
    ïðîèñõîäèò â ñàìèõ ïðîöåäóðàõ. Ïîëó÷àåòñÿ ñâîåîáðàçíûé ãèáðèä C è pascal
5185
    ïðîèñõîäèò â ñàìèõ ïðîöåäóðàõ. Ïîëó÷àåòñÿ ñâîåîáðàçíûé ãèáðèä C è pascal
5187
    ñòèëåé - stdcall.
5186
    ñòèëåé - stdcall.
5188
 
5187
 
5189
        Ñ ïîìîùþ êëþ÷à /W32C êîìïèëÿòîð ñîçäàåò êîíñîëüíûé ôàéë ïîä Windows.
5188
        Ñ ïîìîùþ êëþ÷à /W32C êîìïèëÿòîð ñîçäàåò êîíñîëüíûé ôàéë ïîä Windows.
5190
 
5189
 
5191
	Åñëè ïðè êîìïèëÿöèè óêàçûâàëè îïöèþ êîìàíäíîé ñòðîêè /j0 èëè
5190
        Åñëè ïðè êîìïèëÿöèè óêàçûâàëè îïöèþ êîìàíäíîé ñòðîêè /j0 èëè
5192
    äèðåêòèâó #jumptomain NONE, òî Âàøà ïðîãðàììà áóäåò êîìïèëèðîâàòüñÿ áåç
5191
    äèðåêòèâó #jumptomain NONE, òî Âàøà ïðîãðàììà áóäåò êîìïèëèðîâàòüñÿ áåç
5193
    èñïîëüçîâàíèÿ êîäà íà÷àëüíîé èíèöèàëèçàöèè, îïèñàíèå êîòîðîãî íàõîäèòñÿ â
5192
    èñïîëüçîâàíèÿ êîäà íà÷àëüíîé èíèöèàëèçàöèè, îïèñàíèå êîòîðîãî íàõîäèòñÿ â
5194
    ôàéëå startup.h--.
5193
    ôàéëå startup.h--.
5195
 
5194
 
5196
	Êîä íà÷àëüíîé èíèöèàëèçàöèè äëÿ ïðîãðàìì ïîä Windows èìååò ñëåäóþùèé
5195
        Êîä íà÷àëüíîé èíèöèàëèçàöèè äëÿ ïðîãðàìì ïîä Windows èìååò ñëåäóþùèé
5197
    âèä:
5196
    âèä:
5198
 
5197
 
5199
	hThisInst=GetModuleHandleA(0);
5198
        hThisInst=GetModuleHandleA(0);
5200
      #ifdef __CONSOLE__
5199
      #ifdef __CONSOLE__
5201
	hStdOut=GetStdHandle(-11);
5200
        hStdOut=GetStdHandle(-11);
5202
      #endif
5201
      #endif
5203
        lpszArgs=GetCommandLineA();
5202
        lpszArgs=GetCommandLineA();
5204
      #ifdef __environ;
5203
      #ifdef __environ;
5205
	environ=GetEnvironmentStringsA();
5204
        environ=GetEnvironmentStringsA();
5206
      #endif
5205
      #endif
5207
	main();
5206
        main();
5208
	ExitProcess(EAX);
5207
        ExitProcess(EAX);
5209
 
5208
 
5210
	Òàêèì îáðàçîì, â ãëîáàëüíûõ ïåðåìåííûõ hThisInst áóäåò íàõîäèòñÿ
5209
        Òàêèì îáðàçîì, â ãëîáàëüíûõ ïåðåìåííûõ hThisInst áóäåò íàõîäèòñÿ
5211
    handl çàïóùåííîãî ôàéëà, à â lpszArgs àäðåñ êîìàíäíîé ñòðîêè Âàøåãî
5210
    handl çàïóùåííîãî ôàéëà, à â lpszArgs àäðåñ êîìàíäíîé ñòðîêè Âàøåãî
5212
    ôàéëà. Åñëè Âû â êîìàíäíîé ñòðîêå óêàçàëè îïöèè /p èëè /argc èëè â
5211
    ôàéëà. Åñëè Âû â êîìàíäíîé ñòðîêå óêàçàëè îïöèè /p èëè /argc èëè â
5213
    íà÷àëå âàøåãî ôàéëà åñòü äèðåêòèâû #parsecommandline TRUE èëè argc TRUE,
5212
    íà÷àëå âàøåãî ôàéëà åñòü äèðåêòèâû #parsecommandline TRUE èëè argc TRUE,
5214
	òî êîìïèëÿòîð ñîçäàñò äîïîëíèòåëüíûé êîä ñäåëàþùèé ðàçáîðêó ýòîé
5213
        òî êîìïèëÿòîð ñîçäàñò äîïîëíèòåëüíûé êîä ñäåëàþùèé ðàçáîðêó ýòîé
5215
    êîìàíäíîé ñòðîêè íà ÷àñòè. Åñëè Âû êîìïèëèðóåòå êîíñîëüíóþ ïðîãðàììó, òî
5214
    êîìàíäíîé ñòðîêè íà ÷àñòè. Åñëè Âû êîìïèëèðóåòå êîíñîëüíóþ ïðîãðàììó, òî
5216
    â âàøåé ïðîãðàììå áóäåò åùå îäíà ãëîáàëüíàÿ ïåðåìåííàÿ - hStdOut. Â ýòîé
5215
    â âàøåé ïðîãðàììå áóäåò åùå îäíà ãëîáàëüíàÿ ïåðåìåííàÿ - hStdOut. Â ýòîé
5217
    ïåðåìåííîé õðàíèòñÿ handl ñòàíäàðòíîãî âûâîäà (ýêðàíà). Åñëè Âû ïðè
5216
    ïåðåìåííîé õðàíèòñÿ handl ñòàíäàðòíîãî âûâîäà (ýêðàíà). Åñëè Âû ïðè
5218
    êîìïèëÿöèè ïðîãðàììû óêàçàëè îïöèþ /env, òî â ãëîáàëüíîé ïåðåìåííîé
5217
    êîìïèëÿöèè ïðîãðàììû óêàçàëè îïöèþ /env, òî â ãëîáàëüíîé ïåðåìåííîé
5219
    environ õðàíèòñÿ àäðåñ ïåðåìåííîé îêðóæåíèÿ ïðîãðàììû.
5218
    environ õðàíèòñÿ àäðåñ ïåðåìåííîé îêðóæåíèÿ ïðîãðàììû.
5220
 
5219
 
5221
	Ïîñëå çàâåðøåíèÿ ðàáîòû ïðîöåäóðû main âûïîëíÿòñÿ ïðîöåäóðà
5220
        Ïîñëå çàâåðøåíèÿ ðàáîòû ïðîöåäóðû main âûïîëíÿòñÿ ïðîöåäóðà
5222
    ExitProcess, êîòîðîé â êà÷åñòâå ïàðàìåòðà ïåðåäàåòñÿ ðåãèñòð EAX. Ò.î.
5221
    ExitProcess, êîòîðîé â êà÷åñòâå ïàðàìåòðà ïåðåäàåòñÿ ðåãèñòð EAX. Ò.î.
5223
    Âàì äëÿ çàâåðøåíèÿ ðàáîòû ïðîãðàììû áóäåò äîñòàòî÷íî ñäåëàòü âûõîä èç
5222
    Âàì äëÿ çàâåðøåíèÿ ðàáîòû ïðîãðàììû áóäåò äîñòàòî÷íî ñäåëàòü âûõîä èç
5224
    ïðîöåäóðû main, ïðåäâàðèòåëüíî çàãðóçèâ â ðåãèñòð EAX íóæíûé Âàì êîä
5223
    ïðîöåäóðû main, ïðåäâàðèòåëüíî çàãðóçèâ â ðåãèñòð EAX íóæíûé Âàì êîä
5225
    âîçâðàòà.
5224
    âîçâðàòà.
5226
 
5225
 
5227
        Íåêîòîðûå êîìïèëÿòîðû ñîçäàþò DLL, â êîòîðûõ èìåíà ýêñïîðòèðóåìûõ
5226
        Íåêîòîðûå êîìïèëÿòîðû ñîçäàþò DLL, â êîòîðûõ èìåíà ýêñïîðòèðóåìûõ
5228
    ïðîöåäóð èìåþò òàêîé ôîðìàò:
5227
    ïðîöåäóð èìåþò òàêîé ôîðìàò:
5229
 
5228
 
5230
       ProcName@8
5229
       ProcName@8
5231
 
5230
 
5232
        Â ýòîì èìåíè ïîñëå ñèìâîëà @ óêàçûâàåòñÿ ðàçìåð ñòåêà ñ
5231
        Â ýòîì èìåíè ïîñëå ñèìâîëà @ óêàçûâàåòñÿ ðàçìåð ñòåêà ñ
5233
    ïàðàìåòðàìè, ïåðåäàâàåìûõ ïðîöåäóðå.
5232
    ïàðàìåòðàìè, ïåðåäàâàåìûõ ïðîöåäóðå.
5234
 
5233
 
5235
        Îáúÿâëÿòü òàêèå ïðîöåäóðû íóæíî òàê:
5234
        Îáúÿâëÿòü òàêèå ïðîöåäóðû íóæíî òàê:
5236
 
5235
 
5237
    extern WINAPI "name.dll"
5236
    extern WINAPI "name.dll"
5238
    {
5237
    {
5239
       ProcName@8 ;
5238
       ProcName@8 ;
5240
    }
5239
    }
5241
 
5240
 
5242
    ò.å. áåç êðóãëûõ ñêîáîê. Â ïðîãðàììå, ïðè îáðàùåíèè ê òàêîé ïðîöåäóðå, åå
5241
    ò.å. áåç êðóãëûõ ñêîáîê. Â ïðîãðàììå, ïðè îáðàùåíèè ê òàêîé ïðîöåäóðå, åå
5243
    èìÿ íàäî ïèñàòü áåç ñóôôèêñà @8, ò.å. âîò òàê - ProcName(param1,param2);
5242
    èìÿ íàäî ïèñàòü áåç ñóôôèêñà @8, ò.å. âîò òàê - ProcName(param1,param2);
5244
Return to contents.
5243
Return to contents.
5245
 
5244
 
5246
 
5245
 
5247
 
5246
 
5248
    12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
5247
    12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
5249
 
5248
 
5250
 
5249
 
5251
         äèíàìè÷åñêè ïîäêëþ÷àåìûõ áèáëèîòåêàõ (DLL) êàæäîé ïðîöåäóðå, êðîìå
5250
         äèíàìè÷åñêè ïîäêëþ÷àåìûõ áèáëèîòåêàõ (DLL) êàæäîé ïðîöåäóðå, êðîìå
5252
    åå èìåíè, ñîîòâåòñòâóåò óíèêàëüíîå ÷èñëî, êîòîðîå íàçûâàåòñÿ îðäèíàëîì. È
5251
    åå èìåíè, ñîîòâåòñòâóåò óíèêàëüíîå ÷èñëî, êîòîðîå íàçûâàåòñÿ îðäèíàëîì. È
5253
    ïîýòîìó, êðîìå îáùåïðèíÿòîãî âûçîâà API-ïðîöåäóðû ïî èìåíè, ìîæíî äåëàòü
5252
    ïîýòîìó, êðîìå îáùåïðèíÿòîãî âûçîâà API-ïðîöåäóðû ïî èìåíè, ìîæíî äåëàòü
5254
    âûçîâ è ïî îðäèíàëó. Òåîðåòè÷åñêè, ïðè èñïîëüçîâàíèè âûçîâà ïî îðäèíàëó,
5253
    âûçîâ è ïî îðäèíàëó. Òåîðåòè÷åñêè, ïðè èñïîëüçîâàíèè âûçîâà ïî îðäèíàëó,
5255
    çàãðóçêà ôàéëà äîëæíà ïðîèñõîäèòü áûñòðåå. Òàê êàê â âûõîäíîé ôàéë íå
5254
    çàãðóçêà ôàéëà äîëæíà ïðîèñõîäèòü áûñòðåå. Òàê êàê â âûõîäíîé ôàéë íå
5256
    áóäóò âêëþ÷åíû ñïèñêè èìåí ïðîöåäóð, âûçîâ êîòîðûõ ïðîèçâîäèòñÿ ïî
5255
    áóäóò âêëþ÷åíû ñïèñêè èìåí ïðîöåäóð, âûçîâ êîòîðûõ ïðîèçâîäèòñÿ ïî
5257
    îðäèíàëàì, òî âûõîäíîé ôàéë ìîæåò ïîëó÷èòüñÿ íåìíîãî ìåíüøèì ïî ðàçìåðó.
5256
    îðäèíàëàì, òî âûõîäíîé ôàéë ìîæåò ïîëó÷èòüñÿ íåìíîãî ìåíüøèì ïî ðàçìåðó.
5258
 
5257
 
5259
        ×òîáû êîìïèëÿòîð ñîçäàë ôàéë, èñïîëüçóþùèé âûçîâ API-ïðîöåäóð ïî
5258
        ×òîáû êîìïèëÿòîð ñîçäàë ôàéë, èñïîëüçóþùèé âûçîâ API-ïðîöåäóð ïî
5260
    îðäèíàëàì, íàäî ñäåëàòü äâå âåùè:
5259
    îðäèíàëàì, íàäî ñäåëàòü äâå âåùè:
5261
 
5260
 
5262
     1. Ðàçðåøèòü êîìïèëÿòîðó ýòî äåëàòü. Äëÿ ýòîãî íàäî â îïöèÿõ êîìàíäíîé
5261
     1. Ðàçðåøèòü êîìïèëÿòîðó ýòî äåëàòü. Äëÿ ýòîãî íàäî â îïöèÿõ êîìàíäíîé
5263
    ñòðîêè (èëè â ôàéëå C--.INI) óêàçàòü êëþ÷ WO.
5262
    ñòðîêè (èëè â ôàéëå C--.INI) óêàçàòü êëþ÷ WO.
5264
 
5263
 
5265
     2. Ñîîáùèòü êîìïèëÿòîðó - êàêîé íîìåð îðäèíàëà ñîîòâåòñòâóåò êàêîìó
5264
     2. Ñîîáùèòü êîìïèëÿòîðó - êàêîé íîìåð îðäèíàëà ñîîòâåòñòâóåò êàêîìó
5266
    èìåíè ïðîöåäóðû. Ïðîöåäóðû, äëÿ êîòîðûõ íå áûë óêàçàí îðäèíàë, áóäåò
5265
    èìåíè ïðîöåäóðû. Ïðîöåäóðû, äëÿ êîòîðûõ íå áûë óêàçàí îðäèíàë, áóäåò
5267
    ñîçäàí âûçîâ ïî èìåíè. Óñòàíîâèòü ñîîòâåòñòâèå èìåí ïðîöåäóð îðäèíàëó
5266
    ñîçäàí âûçîâ ïî èìåíè. Óñòàíîâèòü ñîîòâåòñòâèå èìåí ïðîöåäóð îðäèíàëó
5268
    ìîæíî äâóìÿ ñïîñîáàìè:
5267
    ìîæíî äâóìÿ ñïîñîáàìè:
5269
 
5268
 
5270
        a). Àâòîìàòè÷åñêè, ñ ïîìîùüþ îïöèè êîìàíäíîé ñòðîêè IND=name.dll,
5269
        a). Àâòîìàòè÷åñêè, ñ ïîìîùüþ îïöèè êîìàíäíîé ñòðîêè IND=name.dll,
5271
	ïî êîòîðîé êîìïèëÿòîð ïðîñêàíèðóåò ýòó áèáëèîòåêó è èìïîðòèðóåò èç
5270
        ïî êîòîðîé êîìïèëÿòîð ïðîñêàíèðóåò ýòó áèáëèîòåêó è èìïîðòèðóåò èç
5272
	íåå âñå èìåíà è îðäèíàëû ïðîöåäóð. (Èìïîðò âîçìîæåò òîëüêî èç
5271
        íåå âñå èìåíà è îðäèíàëû ïðîöåäóð. (Èìïîðò âîçìîæåò òîëüêî èç
5273
	áèáëèîòåê èìåþùèõ ôîðìàò PE).
5272
        áèáëèîòåê èìåþùèõ ôîðìàò PE).
5274
 
5273
 
5275
        b).  ðó÷íóþ óêàçàòü â îáúÿâëåíèè API-ïðîöåäóð è åå îðäèíàë. Äåëàåòñÿ
5274
        b).  ðó÷íóþ óêàçàòü â îáúÿâëåíèè API-ïðîöåäóð è åå îðäèíàë. Äåëàåòñÿ
5276
	ýòî òàê: ïîñëå èìåíè ïðîöåäóðû ñòàâèòñÿ òî÷êà, à çà íåé óêàçûâàåòñÿ
5275
        ýòî òàê: ïîñëå èìåíè ïðîöåäóðû ñòàâèòñÿ òî÷êà, à çà íåé óêàçûâàåòñÿ
5277
	íîìåð îðäèíàëà. Âîò ïðèìåð îáúÿâëåíèÿ API-ïðîöåäóðû ñ óêàçàíèåì åå
5276
        íîìåð îðäèíàëà. Âîò ïðèìåð îáúÿâëåíèÿ API-ïðîöåäóðû ñ óêàçàíèåì åå
5278
	îðäèíàëà:
5277
        îðäèíàëà:
5279
 
5278
 
5280
    extern WINAPI "user32.dll"
5279
    extern WINAPI "user32.dll"
5281
    {
5280
    {
5282
      ............
5281
      ............
5283
      long  MessageBoxA.429();
5282
      long  MessageBoxA.429();
5284
      ............
5283
      ............
5285
    }
5284
    }
5286
 
5285
 
5287
        Â áèáëèîòåêàõ (DLL), èíîãäà ñóùåñòâóþò ïðîöåäóðû, äëÿ êîòîðûõ íå
5286
        Â áèáëèîòåêàõ (DLL), èíîãäà ñóùåñòâóþò ïðîöåäóðû, äëÿ êîòîðûõ íå
5288
    óêàçàíî èõ èìÿ, íî óêàçàí íîìåð îðäèíàëà. Âûçîâ òàêèõ ïðîöåäóð ïî èìåíè
5287
    óêàçàíî èõ èìÿ, íî óêàçàí íîìåð îðäèíàëà. Âûçîâ òàêèõ ïðîöåäóð ïî èìåíè
5289
    íå âîçìîæåí, íî ìîæíî ýòî ñäåëàòü ïî îðäèíàëó (åñëè, êîíå÷íî Âû çíàåòå,
5288
    íå âîçìîæåí, íî ìîæíî ýòî ñäåëàòü ïî îðäèíàëó (åñëè, êîíå÷íî Âû çíàåòå,
5290
    äëÿ ÷åãî ýòà ïðîöåäóðà è ÷òî îíà äåëàåò). Äëÿ ýòîãî â îáúÿâëåíèè
5289
    äëÿ ÷åãî ýòà ïðîöåäóðà è ÷òî îíà äåëàåò). Äëÿ ýòîãî â îáúÿâëåíèè
5291
    API-ïðîöåäóðû Âàì íàäî ïðèäóìàòü äëÿ ýòîé ïðîöåäóðû óíèêàëüíîå èìÿ è
5290
    API-ïðîöåäóðû Âàì íàäî ïðèäóìàòü äëÿ ýòîé ïðîöåäóðû óíèêàëüíîå èìÿ è
5292
    óêàçàòü ðåàëüíûé îðäèíàë. Çàòåì â ïðîãðàììå Âû áóäåòå îáðàùàòüñÿ ê ýòîé
5291
    óêàçàòü ðåàëüíûé îðäèíàë. Çàòåì â ïðîãðàììå Âû áóäåòå îáðàùàòüñÿ ê ýòîé
5293
    ïðîöåäóðå ïî âûìûøëåííîìó èìåíè. Íî åñëè Âû ñëó÷àéíî îòêîìïèëèðóåòå òàêîé
5292
    ïðîöåäóðå ïî âûìûøëåííîìó èìåíè. Íî åñëè Âû ñëó÷àéíî îòêîìïèëèðóåòå òàêîé
5294
    ôàéë áåç êëþ÷à WO, òî ïðè çàïóñêå ýòîé ïðîãðàììû Âû ïîëó÷èòå ñîîáùåíèå,
5293
    ôàéë áåç êëþ÷à WO, òî ïðè çàïóñêå ýòîé ïðîãðàììû Âû ïîëó÷èòå ñîîáùåíèå,
5295
    î òîì, ÷òî äàííîãî èìåíè â áèáëèîòåêå íåò.
5294
    î òîì, ÷òî äàííîãî èìåíè â áèáëèîòåêå íåò.
5296
 
5295
 
5297
        Ê ñîæàëåíèþ, íåò íèêàêèõ ãàðàíòèé òîãî, ÷òî íîìåð îðäèíàëà äëÿ äàííîé
5296
        Ê ñîæàëåíèþ, íåò íèêàêèõ ãàðàíòèé òîãî, ÷òî íîìåð îðäèíàëà äëÿ äàííîé
5298
    ïðîöåäóðû íå èçìåíèòñÿ ïðè ñìåíå âåðñèè äèíàìè÷åñêîé áèáëèîòåêè. Ïîýòîìó
5297
    ïðîöåäóðû íå èçìåíèòñÿ ïðè ñìåíå âåðñèè äèíàìè÷åñêîé áèáëèîòåêè. Ïîýòîìó
5299
    èñïîëüçîâàòü îðäèíàëû íàäî îñòîðîæíî.
5298
    èñïîëüçîâàòü îðäèíàëû íàäî îñòîðîæíî.
5300
Return to contents.
5299
Return to contents.
5301
 
5300
 
5302
 
5301
 
5303
 
5302
 
5304
    12.8.4 Ñîçäàíèå DLL ïîä Windows.
5303
    12.8.4 Ñîçäàíèå DLL ïîä Windows.
5305
 
5304
 
5306
 
5305
 
5307
        Äèíàìè÷åñêè ïîäêëþ÷àåìûå áèáëèîòåêè ïîçâîëÿò ïîëó÷àòü áîëåå
5306
        Äèíàìè÷åñêè ïîäêëþ÷àåìûå áèáëèîòåêè ïîçâîëÿò ïîëó÷àòü áîëåå
5308
    êîìïàêòíûå ïðîãðàììû è óñêîðèòü ïðîöåññ êîìïèëÿöèè. Ê ìèíóñàì
5307
    êîìïàêòíûå ïðîãðàììû è óñêîðèòü ïðîöåññ êîìïèëÿöèè. Ê ìèíóñàì
5309
    èñïîëüçîâàíèÿ DLL ìîæíî îòíåñòè íåîáõîäèìîñòü íàëè÷èÿ ñàìèõ ôàéëîâ DLL íà
5308
    èñïîëüçîâàíèÿ DLL ìîæíî îòíåñòè íåîáõîäèìîñòü íàëè÷èÿ ñàìèõ ôàéëîâ DLL íà
5310
    çàïóñêàåìîì êîìïüþòåðå è íåìíîãî óâåëè÷èâàåòñÿ âðåìÿ çàïóñêà ïðîãðàììû.
5309
    çàïóñêàåìîì êîìïüþòåðå è íåìíîãî óâåëè÷èâàåòñÿ âðåìÿ çàïóñêà ïðîãðàììû.
5311
 
5310
 
5312
        Äëÿ òîãî ÷òîáû ïðîöåäóðà ñòàëà äîñòóïíîé äëÿ äðóãèõ ïðîãðàìì íàäî â
5311
        Äëÿ òîãî ÷òîáû ïðîöåäóðà ñòàëà äîñòóïíîé äëÿ äðóãèõ ïðîãðàìì íàäî â
5313
    èñõîäíîì òåêñòå ïåðåä èìåíåì ïðîöåäóðû ïðîïèñàòü êëþ÷åâîå ñëîâî - _export.
5312
    èñõîäíîì òåêñòå ïåðåä èìåíåì ïðîöåäóðû ïðîïèñàòü êëþ÷åâîå ñëîâî - _export.
5314
    Ïðèìåð:
5313
    Ïðèìåð:
5315
 
5314
 
5316
      void _export testproc()
5315
      void _export testproc()
5317
      {
5316
      {
5318
        ....
5317
        ....
5319
      }
5318
      }
5320
 
5319
 
5321
        Äëÿ òîãî ÷òîáû ñîçäàòü DLL, íóæíî íàïèñàòü ôàéë, â êîòîðîì áóäóò
5320
        Äëÿ òîãî ÷òîáû ñîçäàòü DLL, íóæíî íàïèñàòü ôàéë, â êîòîðîì áóäóò
5322
    ïðîöåäóðû ñ êëþ÷åâûìè ñëîâàìè _export. Âñïîìîãàòåëüíûå ïðîöåäóðû, êîòîðûå
5321
    ïðîöåäóðû ñ êëþ÷åâûìè ñëîâàìè _export. Âñïîìîãàòåëüíûå ïðîöåäóðû, êîòîðûå
5323
    ìîãóò ïîíàäîáèòüñÿ äëÿ ðàáîòû îñíîâíûõ ýêñïîðòèðóåìûõ ïðîöåäóð, îáúÿâëÿòü
5322
    ìîãóò ïîíàäîáèòüñÿ äëÿ ðàáîòû îñíîâíûõ ýêñïîðòèðóåìûõ ïðîöåäóð, îáúÿâëÿòü
5324
    êàê _export íåîáÿçàòåëüíî. Çàòåì ýòîò ôàéë íóæíî îòêîìïèëèðîâàòü ñ êëþ÷îì
5323
    êàê _export íåîáÿçàòåëüíî. Çàòåì ýòîò ôàéë íóæíî îòêîìïèëèðîâàòü ñ êëþ÷îì
5325
    /dll.   ðåçóëüòàòå Âû ïîëó÷èòå ãîòîâóþ äèíàìè÷åñêè ïîäêëþ÷àåìóþ
5324
    /dll.   ðåçóëüòàòå Âû ïîëó÷èòå ãîòîâóþ äèíàìè÷åñêè ïîäêëþ÷àåìóþ
5326
    áèáëèîòåêó.
5325
    áèáëèîòåêó.
5327
Return to contents.
5326
Return to contents.
5328
 
5327
 
5329
 
5328
 
5330
 
5329
 
5331
    12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
5330
    12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
5332
 
5331
 
5333
 
5332
 
5334
        Èíîãäà, äëÿ ðàáîòû ïðîöåäóð èç äèíàìè÷åñêèõ áèáëèîòåê (DLL), áûâàåò
5333
        Èíîãäà, äëÿ ðàáîòû ïðîöåäóð èç äèíàìè÷åñêèõ áèáëèîòåê (DLL), áûâàåò
5335
    íåîáõîäèìûì èíèöèàëèçèðîâàòü íåêîòîðûå ïåðåìåííûå çíà÷åíèÿìè, çàâèñÿùèìè
5334
    íåîáõîäèìûì èíèöèàëèçèðîâàòü íåêîòîðûå ïåðåìåííûå çíà÷åíèÿìè, çàâèñÿùèìè
5336
    îò òåêóùåãî ñîñòîÿíèÿ îïåðàöèîííîé ñèñòåìû, íàïðèìåð, ïîëó÷èòü äåñêðèïòîð
5335
    îò òåêóùåãî ñîñòîÿíèÿ îïåðàöèîííîé ñèñòåìû, íàïðèìåð, ïîëó÷èòü äåñêðèïòîð
5337
    ýòîé áèáëèîòåêè.
5336
    ýòîé áèáëèîòåêè.
5338
 
5337
 
5339
      Äèðåêòèâîé #jumptomain NONE (-j0) óïðàâëåíèå ïðè çàïóñêå ïåðåäàåòñÿ
5338
      Äèðåêòèâîé #jumptomain NONE (-j0) óïðàâëåíèå ïðè çàïóñêå ïåðåäàåòñÿ
5340
    ñðàçó íà ïðîöåäóðó main.
5339
    ñðàçó íà ïðîöåäóðó main.
5341
 
5340
 
5342
      Âî âñåõ îñòàëüíûõ ñëó÷àÿõ ãåíåðèðóåòñÿ êîä çàãëóøêè è óïðàâëåíèå íà
5341
      Âî âñåõ îñòàëüíûõ ñëó÷àÿõ ãåíåðèðóåòñÿ êîä çàãëóøêè è óïðàâëåíèå íà
5343
    ïðîöåäóðó main íå ïåðåäàåòñÿ. Ôàêòè÷åñêè ïðîöåäóðà main â ýòîì ñëó÷àå íå
5342
    ïðîöåäóðó main íå ïåðåäàåòñÿ. Ôàêòè÷åñêè ïðîöåäóðà main â ýòîì ñëó÷àå íå
5344
    íóæíà.
5343
    íóæíà.
5345
 
5344
 
5346
      Ïðîöåäóðà main ïðè ñîçäàíèè ôàéëîâ DLL äîëæíà âûãëÿäåòü íåìíîãî èíà÷å,
5345
      Ïðîöåäóðà main ïðè ñîçäàíèè ôàéëîâ DLL äîëæíà âûãëÿäåòü íåìíîãî èíà÷å,
5347
    ÷åì â äðóãèõ ñëó÷àÿõ:
5346
    ÷åì â äðóãèõ ñëó÷àÿõ:
5348
 
5347
 
5349
    dword main ( dword hInstDLL, reason, reserv )
5348
    dword main ( dword hInstDLL, reason, reserv )
5350
    {
5349
    {
5351
      ...
5350
      ...
5352
    }
5351
    }
5353
Return to contents.
5352
Return to contents.
5354
 
5353
 
5355
 
5354
 
5356
 
5355
 
5357
    12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
5356
    12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
5358
 
5357
 
5359
 
5358
 
5360
        Âñòðîåííûé â C-- êîìïèëÿòîð ðåñóðñîâ ïî ñâîèì âîçìîæíîñòÿì óñòóïàåò
5359
        Âñòðîåííûé â C-- êîìïèëÿòîð ðåñóðñîâ ïî ñâîèì âîçìîæíîñòÿì óñòóïàåò
5361
    ñïåöèàëèçèðîâàííûì êîìïèëÿòîðàì ðåñóðñîâ, íî ýòèõ âîçìîæíîñòåé, êàê ìíå
5360
    ñïåöèàëèçèðîâàííûì êîìïèëÿòîðàì ðåñóðñîâ, íî ýòèõ âîçìîæíîñòåé, êàê ìíå
5362
    êàæåòñÿ, áóäåò äîñòàòî÷íî äëÿ áîëüøèíñòâà Âàøèõ çàäà÷.
5361
    êàæåòñÿ, áóäåò äîñòàòî÷íî äëÿ áîëüøèíñòâà Âàøèõ çàäà÷.
5363
 
5362
 
5364
        Áóäåò ïðîùå ïåðå÷èñëèòü òî, ÷òî âñòðîåííûé â C-- êîìïèëÿòîð ðåñóðñîâ
5363
        Áóäåò ïðîùå ïåðå÷èñëèòü òî, ÷òî âñòðîåííûé â C-- êîìïèëÿòîð ðåñóðñîâ
5365
    íå óìååò äåëàòü. Íå îáðàáàòûâàþòñÿ îïåðàòîðû ðåñóðñîâ: VERSION,
5364
    íå óìååò äåëàòü. Íå îáðàáàòûâàþòñÿ îïåðàòîðû ðåñóðñîâ: VERSION,
5366
    VERSIONINFO è îïðåäåëÿåìûå ïîëüçîâàòåëåì ðåñóðñû. Ïðè íåîáõîäèìîñòè,
5365
    VERSIONINFO è îïðåäåëÿåìûå ïîëüçîâàòåëåì ðåñóðñû. Ïðè íåîáõîäèìîñòè,
5367
    äàííûå, ââîäèìûå ñ ïîìîùüþ ýòèõ îïåðàòîðîâ, ìîæíî ââåñòè ñ ïîìîùüþ
5366
    äàííûå, ââîäèìûå ñ ïîìîùüþ ýòèõ îïåðàòîðîâ, ìîæíî ââåñòè ñ ïîìîùüþ
5368
    îïåðàòîðà RCDATA. Ó ìíîãèõ îïåðàòîðîâ ðåñóðñîâ åñòü íåîáÿçàòåëüíûå
5367
    îïåðàòîðà RCDATA. Ó ìíîãèõ îïåðàòîðîâ ðåñóðñîâ åñòü íåîáÿçàòåëüíûå
5369
    ïàðàìåòðû loading è 'memory'.  Ïîääåðæêà ýòèõ ïàðàìåòðîâ íå
5368
    ïàðàìåòðû loading è 'memory'.  Ïîääåðæêà ýòèõ ïàðàìåòðîâ íå
5370
    ðåàëèçîâàíà. Âñòðåòèâ ýòè ïàðàìåòðû, êîìïèëÿòîð èõ ïðîñòî ïðîïóñòèò.
5369
    ðåàëèçîâàíà. Âñòðåòèâ ýòè ïàðàìåòðû, êîìïèëÿòîð èõ ïðîñòî ïðîïóñòèò.
5371
 
5370
 
5372
        Çàñòàâèòü êîìïèëÿòîð C-- îáðàáàòûâàòü ðåñóðñû ìîæíî äâóìÿ ñïîñîáàìè:
5371
        Çàñòàâèòü êîìïèëÿòîð C-- îáðàáàòûâàòü ðåñóðñû ìîæíî äâóìÿ ñïîñîáàìè:
5373
 
5372
 
5374
        1. Âêëþ÷èòü â ñâîé ïðîåêò äèðåêòèâîé #include ôàéë ñ ðàñøèðåíèåì
5373
        1. Âêëþ÷èòü â ñâîé ïðîåêò äèðåêòèâîé #include ôàéë ñ ðàñøèðåíèåì
5375
    .rc.  Ôàéëû ñ òàêèì ðàñøèðåíèåì êîìïèëÿòîð ñ÷èòàåò ôàéëîì ñ ðåñóðñàìè.
5374
    .rc.  Ôàéëû ñ òàêèì ðàñøèðåíèåì êîìïèëÿòîð ñ÷èòàåò ôàéëîì ñ ðåñóðñàìè.
5376
    Ôàéë ðåñóðñîâ íåîáõîäèìî âêëþ÷àòü â Âàø ïðîåêò ëèøü ïîñëå âêëþ÷åíèÿ
5375
    Ôàéë ðåñóðñîâ íåîáõîäèìî âêëþ÷àòü â Âàø ïðîåêò ëèøü ïîñëå âêëþ÷åíèÿ
5377
    çàãîëîâî÷íûõ ôàéëîâ Windows.
5376
    çàãîëîâî÷íûõ ôàéëîâ Windows.
5378
 
5377
 
5379
        2. Ðåñóðñû ìîæíî ðàñïîëàãàòü â òåëå èñõîäíîãî òåêñòà ïðîãðàììû â
5378
        2. Ðåñóðñû ìîæíî ðàñïîëàãàòü â òåëå èñõîäíîãî òåêñòà ïðîãðàììû â
5380
    ïðîèçâîëüíîì ìåñòå. Òåêñò ðåñóðñîâ äîëæåí íà÷èíàòüñÿ ñ äèðåêòèâû #pragma
5379
    ïðîèçâîëüíîì ìåñòå. Òåêñò ðåñóðñîâ äîëæåí íà÷èíàòüñÿ ñ äèðåêòèâû #pragma
5381
    resource start, à çàêàí÷èâàòüñÿ äèðåêòèâîé #pragma resoutce end.
5380
    resource start, à çàêàí÷èâàòüñÿ äèðåêòèâîé #pragma resoutce end.
5382
    Ðåñóðñû ìîãóò áûòü ðàçäåëåííûìè íà ÷àñòè è ýòè ÷àñòè ìîæíî ðàñïîëàãàòü â
5381
    Ðåñóðñû ìîãóò áûòü ðàçäåëåííûìè íà ÷àñòè è ýòè ÷àñòè ìîæíî ðàñïîëàãàòü â
5383
    ëþáîì óäîáíîì äëÿ Âàñ ìåñòå (ãëóïî ðàñïîëàãàòü ðåñóðñû â áëîêå
5382
    ëþáîì óäîáíîì äëÿ Âàñ ìåñòå (ãëóïî ðàñïîëàãàòü ðåñóðñû â áëîêå
5384
    êîììåíòàðèåâ è ïîòîì óäèâëÿòüñÿ, ïî÷åìó îíè íå áûëè îòêîìïèëèðîâàíû).
5383
    êîììåíòàðèåâ è ïîòîì óäèâëÿòüñÿ, ïî÷åìó îíè íå áûëè îòêîìïèëèðîâàíû).
5385
    Êîìïèëÿòîð ñîáåðåò ýòè ÷àñòè è îòêîìïèëèðóåò.
5384
    Êîìïèëÿòîð ñîáåðåò ýòè ÷àñòè è îòêîìïèëèðóåò.
5386
 
5385
 
5387
        Èìåíà îïåðàòîðîâ ìîæíî ïèñàòü êàê áîëüøèìè, òàê è ìàëåíüêèìè áóêâàìè,
5386
        Èìåíà îïåðàòîðîâ ìîæíî ïèñàòü êàê áîëüøèìè, òàê è ìàëåíüêèìè áóêâàìè,
5388
    íî èìåíà èäåíòèôèêàòîðîâ ÷óâñòâèòåëüíû ê ðåãèñòðó.  Â òåêñòå ðåñóðñîâ
5387
    íî èìåíà èäåíòèôèêàòîðîâ ÷óâñòâèòåëüíû ê ðåãèñòðó.  Â òåêñòå ðåñóðñîâ
5389
    ìîæíî èñïîëüçîâàòü äèðåêòèâû è êîììåíòàðèè.
5388
    ìîæíî èñïîëüçîâàòü äèðåêòèâû è êîììåíòàðèè.
5390
 
5389
 
5391
        Íè÷òî íå ìåøàåò Âàì èñïîëüçîâàòü êîìïèëÿòîðû ðåñóðñîâ îò äðóãèõ
5390
        Íè÷òî íå ìåøàåò Âàì èñïîëüçîâàòü êîìïèëÿòîðû ðåñóðñîâ îò äðóãèõ
5392
    ÿçûêîâ.  Ãëàâíîå, ÷òîáû ñèíòàêñèñ ôàéëà ðåñóðñîâ ñîîòâåòñòâîâàë âûáðàííîìó
5391
    ÿçûêîâ.  Ãëàâíîå, ÷òîáû ñèíòàêñèñ ôàéëà ðåñóðñîâ ñîîòâåòñòâîâàë âûáðàííîìó
5393
    êîìïèëÿòîðó.
5392
    êîìïèëÿòîðó.
5394
Return to contents.
5393
Return to contents.
5395
 
5394
 
5396
 
5395
 
5397
 
5396
 
5398
  12.9 Âûõîäíûå ôàéëû äëÿ MeOS.
5397
  12.9 Âûõîäíûå ôàéëû äëÿ MeOS.
5399
 
5398
 
5400
 
5399
 
5401
      Èñïîëíÿåìûå ôàéëû äëÿ îïåðàöèîííîé ñèñòåìû MenuetOS ïîääåðæèâàþòñÿ
5400
      Èñïîëíÿåìûå ôàéëû äëÿ îïåðàöèîííîé ñèñòåìû MenuetOS ïîääåðæèâàþòñÿ
5402
  êîìïèëÿòîðîì ñîâñåì íåäàâíî. Äëÿ òîãî, ÷òîáû îòêîìïèëèðîâàòü ôàéë äëÿ
5401
  êîìïèëÿòîðîì ñîâñåì íåäàâíî. Äëÿ òîãî, ÷òîáû îòêîìïèëèðîâàòü ôàéë äëÿ
5403
  MenuetOS, íóæíî â îïöèÿõ êîìïèëÿòîðó óêàçàòü /meos. Âû ïîëó÷èòå ôàéë áåç
5402
  MenuetOS, íóæíî â îïöèÿõ êîìïèëÿòîðó óêàçàòü /meos. Âû ïîëó÷èòå ôàéë áåç
5404
  ðàñøèðåíèÿ, êîòîðûé ïîòîì ìîæíî áóäåò âûïîëíèòü â ñðåäå îïåðàöèîííîé
5403
  ðàñøèðåíèÿ, êîòîðûé ïîòîì ìîæíî áóäåò âûïîëíèòü â ñðåäå îïåðàöèîííîé
5405
  ñèñòåìû MenuetOS.
5404
  ñèñòåìû MenuetOS.
5406
 
5405
 
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.
5413
 
5412
 
5414
 
5413
 
5415
 
5414
 
5416
13. Ïðèëîæåíèÿ.
5415
13. Ïðèëîæåíèÿ.
5417
 
5416
 
5418
  13.1 Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
5417
  13.1 Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
5419
 
5418
 
5420
 
5419
 
5421
      Ïîèñê âêëþ÷àåìîãî â âàøó ïðîãðàììó ôàéëà, èìÿ êîòîðîãî îáúÿâëÿåòñÿ
5420
      Ïîèñê âêëþ÷àåìîãî â âàøó ïðîãðàììó ôàéëà, èìÿ êîòîðîãî îáúÿâëÿåòñÿ
5422
  äèðåêòèâîé include è çàêëþ÷åíî â äâîéíûå êàâû÷êè "", ïðîèçâîäèòñÿ
5421
  äèðåêòèâîé include è çàêëþ÷åíî â äâîéíûå êàâû÷êè "", ïðîèçâîäèòñÿ
5423
  êîìïèëÿòîðîì ïî òàêîé ñõåìå:
5422
  êîìïèëÿòîðîì ïî òàêîé ñõåìå:
5424
 
5423
 
5425
  ñíà÷àëà äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â òåêóùåé äèðåêòîðèè. Åñëè ôàéëà òàì
5424
  ñíà÷àëà äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â òåêóùåé äèðåêòîðèè. Åñëè ôàéëà òàì
5426
  íåò, òî äàëåå äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â äèðåêòîðèè óêàçàííîé
5425
  íåò, òî äàëåå äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â äèðåêòîðèè óêàçàííîé
5427
  äèðåêòèâîé #includepath. Åñëè äèðåêòèâà íå áûëà çàäàíà èëè ôàéëà â ýòîé
5426
  äèðåêòèâîé #includepath. Åñëè äèðåêòèâà íå áûëà çàäàíà èëè ôàéëà â ýòîé
5428
  äèðåêòîðèè íå îêàçàëîñü, òî äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â äèðåêòîðèè
5427
  äèðåêòîðèè íå îêàçàëîñü, òî äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â äèðåêòîðèè
5429
  óêàçàííîé â êîìàíäíîé ñòðîêå êîìàíäîé /ip=path. Åñëè ýòà êîìàíäà íå áûëà
5428
  óêàçàííîé â êîìàíäíîé ñòðîêå êîìàíäîé /ip=path. Åñëè ýòà êîìàíäà íå áûëà
5430
  çàäàíà èëè ôàéëà â óêàçàííîé äèðåêòîðèè íå îêàçàëîñü, òî äåëàåòñÿ ïîïûòêà
5429
  çàäàíà èëè ôàéëà â óêàçàííîé äèðåêòîðèè íå îêàçàëîñü, òî äåëàåòñÿ ïîïûòêà
5431
  îòêðûòü ôàéë â äèðåêòîðèè óêàçàííîé â ôàéëå C--.INI êîìàíäîé ip=. Åñëè ýòà
5430
  îòêðûòü ôàéë â äèðåêòîðèè óêàçàííîé â ôàéëå C--.INI êîìàíäîé ip=. Åñëè ýòà
5432
  êîìàíäà íå áûëà çàäàíà èëè ôàéëà â óêàçàííîé äèðåêòîðèè íå îêàçàëîñü, òî
5431
  êîìàíäà íå áûëà çàäàíà èëè ôàéëà â óêàçàííîé äèðåêòîðèè íå îêàçàëîñü, òî
5433
  äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â äèðåêòîðèè, íà êîòîðóþ óêàçûâàåò ïåðåìåííàÿ
5432
  äåëàåòñÿ ïîïûòêà îòêðûòü ôàéë â äèðåêòîðèè, íà êîòîðóþ óêàçûâàåò ïåðåìåííàÿ
5434
  îêðóæåíèÿ C--. Åñëè ïåðåìåííàÿ îêðóæåíèÿ íå áûëà çàäàíà èëè ôàéëà â ýòîé
5433
  îêðóæåíèÿ C--. Åñëè ïåðåìåííàÿ îêðóæåíèÿ íå áûëà çàäàíà èëè ôàéëà â ýòîé
5435
  äèðåêòîðèè íå îêàçàëîñü, òî äåëàåòñÿ ïîñëåäíÿÿ ïîïûòêà îòêðûòü ôàéë â
5434
  äèðåêòîðèè íå îêàçàëîñü, òî äåëàåòñÿ ïîñëåäíÿÿ ïîïûòêà îòêðûòü ôàéë â
5436
  äèðåêòîðèè, îòêóäà áûë çàïóùåí êîìïèëÿòîð.
5435
  äèðåêòîðèè, îòêóäà áûë çàïóùåí êîìïèëÿòîð.
5437
 
5436
 
5438
      Åñëè èìÿ âêëþ÷àåìîãî ôàéëà çàêëþ÷åíî â óãëîâûå ñêîáêè < >, òî ïîèñê
5437
      Åñëè èìÿ âêëþ÷àåìîãî ôàéëà çàêëþ÷åíî â óãëîâûå ñêîáêè < >, òî ïîèñê
5439
  ýòîãî ôàéëà ïðîèçâîäèòñÿ â ïðîòèâîïîëîæíîì íàïðàâëåíèè, çà èñêëþ÷åíèåì
5438
  ýòîãî ôàéëà ïðîèçâîäèòñÿ â ïðîòèâîïîëîæíîì íàïðàâëåíèè, çà èñêëþ÷åíèåì
5440
  òîãî, ÷òî ïîèñê â òåêóùåé äèðåêòîðèè íå ïðîèçâîäèòñÿ.
5439
  òîãî, ÷òî ïîèñê â òåêóùåé äèðåêòîðèè íå ïðîèçâîäèòñÿ.
5441
 
5440
 
5442
      Äëÿ êîíñîëüíîé âåðñèè êîìïèëÿòîðà èìåíà ãëàâíîãî ìîäóëÿ è âêëþ÷àåìûõ
5441
      Äëÿ êîíñîëüíîé âåðñèè êîìïèëÿòîðà èìåíà ãëàâíîãî ìîäóëÿ è âêëþ÷àåìûõ
5443
  ôàéëîâ ìîãóò èìåòü äëèíó áîëåå 8 ñèìâîëîâ.
5442
  ôàéëîâ ìîãóò èìåòü äëèíó áîëåå 8 ñèìâîëîâ.
5444
Return to contents.
5443
Return to contents.
5445
 
5444
 
5446
 
5445
 
5447
 
5446
 
5448
  13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
5447
  13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
5449
 
5448
 
5450
 
5449
 
5451
      Ðåãèñòðû, êîòîðûå äîëæíû ñîõðàíÿòüñÿ - BP, DI, SI, DS, SS, SP, CS è IP.
5450
      Ðåãèñòðû, êîòîðûå äîëæíû ñîõðàíÿòüñÿ - BP, DI, SI, DS, SS, SP, CS è IP.
5452
 
5451
 
5453
      BP èñïîëüçóåòñÿ êàê óêàçàòåëü íà ëîêàëüíûå è ïàðàìåòðè÷åñêèå
5452
      BP èñïîëüçóåòñÿ êàê óêàçàòåëü íà ëîêàëüíûå è ïàðàìåòðè÷åñêèå
5454
  ïåðåìåííûå â ñòåêå, ÷òî è òðåáóåò åãî ñîõðàíåíèÿ.
5453
  ïåðåìåííûå â ñòåêå, ÷òî è òðåáóåò åãî ñîõðàíåíèÿ.
5455
 
5454
 
5456
      DI è SI ñîõðàíÿòü íå îáÿçàòåëüíî, åñëè ïðîãðàììèñò îñîçíàåò
5455
      DI è SI ñîõðàíÿòü íå îáÿçàòåëüíî, åñëè ïðîãðàììèñò îñîçíàåò
5457
  ïîñëåäñòâèÿ. DI è SI ÷àñòî èñïîëüçóþòñÿ äëÿ èíäåêñàöèè ìàññèâîâ, êàê
5456
  ïîñëåäñòâèÿ. DI è SI ÷àñòî èñïîëüçóþòñÿ äëÿ èíäåêñàöèè ìàññèâîâ, êàê
5458
  íàïðèìåð â ôîðìóëå:
5457
  íàïðèìåð â ôîðìóëå:
5459
 
5458
 
5460
        dog = firehydrant(1,red) + legs[DI];
5459
        dog = firehydrant(1,red) + legs[DI];
5461
 
5460
 
5462
      Åñëè DI íå ñîõðàíÿëñÿ â ïðîöåäóðå firehydrant, çíà÷åíèå, ïðèñâîåííîå
5461
      Åñëè DI íå ñîõðàíÿëñÿ â ïðîöåäóðå firehydrant, çíà÷åíèå, ïðèñâîåííîå
5463
  ïåðåìåííîé dog, ñêîðåå âñåãî, áóäåò íåïðàâèëüíûì, ïîñêîëüêó èíäåêñ äëÿ
5462
  ïåðåìåííîé dog, ñêîðåå âñåãî, áóäåò íåïðàâèëüíûì, ïîñêîëüêó èíäåêñ äëÿ
5464
  ìàññèâà legs áûë èçìåíåí.  ñóùíîñòè, äëÿ òî÷íîãî ñîãëàñîâàíèÿ âñå
5463
  ìàññèâà legs áûë èçìåíåí.  ñóùíîñòè, äëÿ òî÷íîãî ñîãëàñîâàíèÿ âñå
5465
  ïðîöåäóðû äîëæíû èìåòü ñïåöèàëüíîå óêàçàíèå â êîììåíòàðèè íà òî, ÷òî â íèõ
5464
  ïðîöåäóðû äîëæíû èìåòü ñïåöèàëüíîå óêàçàíèå â êîììåíòàðèè íà òî, ÷òî â íèõ
5466
  íå ñîõðàíÿåòñÿ ñîäåðæèìîå ðåãèñòðîâ DI è/èëè SI.
5465
  íå ñîõðàíÿåòñÿ ñîäåðæèìîå ðåãèñòðîâ DI è/èëè SI.
5467
 
5466
 
5468
      DS óêàçûâàåò íà ñåãìåíò äàííûõ, è âñå îïåðàöèè ñ ãëîáàëüíûìè
5467
      DS óêàçûâàåò íà ñåãìåíò äàííûõ, è âñå îïåðàöèè ñ ãëîáàëüíûìè
5469
  ïåðåìåííûìè ïîëüçóþòñÿ ýòèì çíà÷åíèåì.
5468
  ïåðåìåííûìè ïîëüçóþòñÿ ýòèì çíà÷åíèåì.
5470
 
5469
 
5471
      SS õðàíèò ñåãìåíò ñòåêà è äîëæåí ñîõðàíÿòüñÿ. SP óêàçûâàåò íà òåêóùóþ
5470
      SS õðàíèò ñåãìåíò ñòåêà è äîëæåí ñîõðàíÿòüñÿ. SP óêàçûâàåò íà òåêóùóþ
5472
  ïîçèöèþ â ñòåêå è òîæå äîëæåí ñîõðàíÿòüñÿ.
5471
  ïîçèöèþ â ñòåêå è òîæå äîëæåí ñîõðàíÿòüñÿ.
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,...
5478
Return to contents.
5477
Return to contents.
5479
 
5478
 
5480
 
5479
 
5481
 
5480
 
5482
  13.3 C--.ini ôàéë.
5481
  13.3 C--.ini ôàéë.
5483
 
5482
 
5484
 
5483
 
5485
      C--.ini ôàéë ïðåäíàçíà÷åí äëÿ ïðåäóñòàíîâêè ïî óìîë÷àíèþ ïàðàìåòðîâ
5484
      C--.ini ôàéë ïðåäíàçíà÷åí äëÿ ïðåäóñòàíîâêè ïî óìîë÷àíèþ ïàðàìåòðîâ
5486
  êîìïèëÿòîðà.
5485
  êîìïèëÿòîðà.
5487
 
5486
 
5488
      Ñåé÷àñ êîìïèëÿòîð ïîääåðæèâàåò îãðîìíîå ÷èñëî ïàðàìåòðîâ êîìàíäíîé
5487
      Ñåé÷àñ êîìïèëÿòîð ïîääåðæèâàåò îãðîìíîå ÷èñëî ïàðàìåòðîâ êîìàíäíîé
5489
  ñòðîêè. Ïðàâèëüíîå èõ èñïîëüçîâàíèå ïîçâîëèò Âàì ïîëó÷àòü áîëåå êîìïàêòíûé
5488
  ñòðîêè. Ïðàâèëüíîå èõ èñïîëüçîâàíèå ïîçâîëèò Âàì ïîëó÷àòü áîëåå êîìïàêòíûé
5490
  êîä è ìîæåò çíà÷èòåëüíî îáëåã÷èòü Âàì îòëàäêó ïðîãðàììû. Íî òàê êàê ýòèõ
5489
  êîä è ìîæåò çíà÷èòåëüíî îáëåã÷èòü Âàì îòëàäêó ïðîãðàììû. Íî òàê êàê ýòèõ
5491
  ïàðàìåòðîâ î÷åíü ìíîãî íàáèðàòü èõ êàæäûé ðàç â êîìàíäíîé ñòðîêå áûâàåò
5490
  ïàðàìåòðîâ î÷åíü ìíîãî íàáèðàòü èõ êàæäûé ðàç â êîìàíäíîé ñòðîêå áûâàåò
5492
  óòîìèòåëüíî è íå èñêëþ÷åíà âîçìîæíîñòü ïðîïóñòèòü êàêîé-íèáóäü ïàðàìåòð.
5491
  óòîìèòåëüíî è íå èñêëþ÷åíà âîçìîæíîñòü ïðîïóñòèòü êàêîé-íèáóäü ïàðàìåòð.
5493
  ×òîáû èçáàâèòü Âàñ îò âñåõ ýòèõ íàïàñòåé è áûë ââåäåí c--.ini ôàéë.
5492
  ×òîáû èçáàâèòü Âàñ îò âñåõ ýòèõ íàïàñòåé è áûë ââåäåí c--.ini ôàéë.
5494
 
5493
 
5495
       Ïàðàìåòðû êîìàíäíîé ñòðîêè ïðîïèñûâàþòñÿ â ýòîì ôàéëå ïîñòðî÷íî.
5494
       Ïàðàìåòðû êîìàíäíîé ñòðîêè ïðîïèñûâàþòñÿ â ýòîì ôàéëå ïîñòðî÷íî.
5496
  Ñèíòàêñèñ òîò æå, ÷òî è â êîìàíäíîé ñòðîêå, íî áåç âåäóùåãî îáðàòíîãî ñëýøà
5495
  Ñèíòàêñèñ òîò æå, ÷òî è â êîìàíäíîé ñòðîêå, íî áåç âåäóùåãî îáðàòíîãî ñëýøà
5497
  èëè ìèíóñà. Åñëè ôàéë ðàñïîëîæåí â äèðåêòîðèè, íà êîòîðóþ óêàçûâàåò
5496
  èëè ìèíóñà. Åñëè ôàéë ðàñïîëîæåí â äèðåêòîðèè, íà êîòîðóþ óêàçûâàåò
5498
  ïåðåìåííàÿ îêðóæåíèÿ set c--= èëè åñëè ýòà ïåðåìåííàÿ íå îïðåäåëåíà,
5497
  ïåðåìåííàÿ îêðóæåíèÿ set c--= èëè åñëè ýòà ïåðåìåííàÿ íå îïðåäåëåíà,
5499
  òî â òîé æå äèðåêòîðèè ãäå è ôàéë c--.exe, òî ýòè ïàðàìåòðû
5498
  òî â òîé æå äèðåêòîðèè ãäå è ôàéë c--.exe, òî ýòè ïàðàìåòðû
5500
  ðàñïðîñòðàíÿþòñÿ íà âñå êîìïèëèðóåìûå ïðîãðàììû. Åñëè æå ôàéë c--.ini
5499
  ðàñïðîñòðàíÿþòñÿ íà âñå êîìïèëèðóåìûå ïðîãðàììû. Åñëè æå ôàéë c--.ini
5501
  ðàñïîëîæåí â òåêóùåé äèðåêòîðèè, òî ïàðàìåòðû ñ÷èòûâàþòñÿ òîëüêî èç ýòîãî
5500
  ðàñïîëîæåí â òåêóùåé äèðåêòîðèè, òî ïàðàìåòðû ñ÷èòûâàþòñÿ òîëüêî èç ýòîãî
5502
  ôàéëà è äåéñòâóþò òîëüêî äëÿ òåêóùåãî ïðîåêòà.
5501
  ôàéëà è äåéñòâóþò òîëüêî äëÿ òåêóùåãî ïðîåêòà.
5503
 
5502
 
5504
      Äîïóñòèìî èñïîëüçîâàíèå êîììåíòàðèåâ. Ïðèçíàêîì íà÷àëà êîììåíòàðèÿ
5503
      Äîïóñòèìî èñïîëüçîâàíèå êîììåíòàðèåâ. Ïðèçíàêîì íà÷àëà êîììåíòàðèÿ
5505
  ÿâëÿåòñÿ ñèìâîë ;. Âñå ïîñëåäóþùèå ñèìâîëû ïîñëå ; è äî êîíöà ñòðîêè
5504
  ÿâëÿåòñÿ ñèìâîë ;. Âñå ïîñëåäóþùèå ñèìâîëû ïîñëå ; è äî êîíöà ñòðîêè
5506
  ñ÷èòàþòñÿ êîììåíòàðèåì.
5505
  ñ÷èòàþòñÿ êîììåíòàðèåì.
5507
 
5506
 
5508
      Ïðèìåð C--.ini ôàéëà:
5507
      Ïðèìåð C--.ini ôàéëà:
5509
 
5508
 
5510
  r-
5509
  r-
5511
  X
5510
  X
5512
  3     ;ýòî êîììåíòàðèé
5511
  3     ;ýòî êîììåíòàðèé
5513
  os
5512
  os
5514
 
5513
 
5515
      ini-ôàéë ìîæåò èìåòü ëþáîå èìÿ (íî ðàñøèðåíèå äîëæíî áûòü îáÿçàòåëüíî
5514
      ini-ôàéë ìîæåò èìåòü ëþáîå èìÿ (íî ðàñøèðåíèå äîëæíî áûòü îáÿçàòåëüíî
5516
  ini). Èìÿ ýòîãî ôàéëà ñ ðàñøèðåíèåì äîëæíî áûòü ïåðåäàíî êîìïèëÿòîðó â
5515
  ini). Èìÿ ýòîãî ôàéëà ñ ðàñøèðåíèåì äîëæíî áûòü ïåðåäàíî êîìïèëÿòîðó â
5517
  êîìàíäíîé ñòðîêå. Ôàéë c--.ini çàãðóæàåòñÿ è îáðàáàòûâàåòñÿ àâòîìàòè÷åñêè
5516
  êîìàíäíîé ñòðîêå. Ôàéë c--.ini çàãðóæàåòñÿ è îáðàáàòûâàåòñÿ àâòîìàòè÷åñêè
5518
  äî çàãðóçêè ôàéëà óêàçàííîãî â êîìàíäíîé ñòðîêå.
5517
  äî çàãðóçêè ôàéëà óêàçàííîãî â êîìàíäíîé ñòðîêå.
5519
 
5518
 
5520
      Òàêèì îáðàçîì, ôàéë *.ini ìîæíî èñïîëüçîâàòü ïîäîáíî make-ôàéëó - â íåì
5519
      Òàêèì îáðàçîì, ôàéë *.ini ìîæíî èñïîëüçîâàòü ïîäîáíî make-ôàéëó - â íåì
5521
  Âû ìîæåòå óêàçàòü è èìÿ ãëàâíîãî êîìïèëèðóåìîãî ìîäóëÿ, è âñå íåîáõîäèìûå
5520
  Âû ìîæåòå óêàçàòü è èìÿ ãëàâíîãî êîìïèëèðóåìîãî ìîäóëÿ, è âñå íåîáõîäèìûå
5522
  äëÿ åãî êîìïèëÿöèè íàñòðîéêè.
5521
  äëÿ åãî êîìïèëÿöèè íàñòðîéêè.
5523
 
5522
 
5524
      Êàê àëüòåðíàòèâó c--.ini ôàéëó, ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî
5523
      Êàê àëüòåðíàòèâó c--.ini ôàéëó, ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî
5525
  ïðîïèñûâàòü íåïîñðåäñòâåííî â íà÷àëå ãëàâíîãî ôàéëà êîìïèëèðóåìîãî ïðîåêòà,
5524
  ïðîïèñûâàòü íåïîñðåäñòâåííî â íà÷àëå ãëàâíîãî ôàéëà êîìïèëèðóåìîãî ïðîåêòà,
5526
  èñïîëüçóÿ äèðåêòèâó pragma option. Ñ îäíîé ñòîðîíû ýòî îáåñïå÷èò Âàøåìó
5525
  èñïîëüçóÿ äèðåêòèâó pragma option. Ñ îäíîé ñòîðîíû ýòî îáåñïå÷èò Âàøåìó
5527
  ïðîåêòó íåçàâèñèìîñòü îò íàñòðîåê êîìïèëÿòîðà, åñëè Âàø ïðîåêò áóäåò
5526
  ïðîåêòó íåçàâèñèìîñòü îò íàñòðîåê êîìïèëÿòîðà, åñëè Âàø ïðîåêò áóäåò
5528
  êîìïèëèðîâàòüñÿ íà äðóãîì êîìïüþòåðå. Íî ñ äðóãîé ñòîðîíû íåêîòîðûå
5527
  êîìïèëèðîâàòüñÿ íà äðóãîì êîìïüþòåðå. Íî ñ äðóãîé ñòîðîíû íåêîòîðûå
5529
  íàñòðîéêè ÿâëÿþòñÿ èíäèâèäóàëüíûìè äëÿ äàííîãî êîìïüþòåðà (ýòî ðàñïîëîæåíèå
5528
  íàñòðîéêè ÿâëÿþòñÿ èíäèâèäóàëüíûìè äëÿ äàííîãî êîìïüþòåðà (ýòî ðàñïîëîæåíèå
5530
  áèáëèîòåê, èìåíà è ðàñïîëîæåíèå stub-ôàéëîâ). Êàêîé âàðèàíò èñïîëüçîâàòü
5529
  áèáëèîòåê, èìåíà è ðàñïîëîæåíèå stub-ôàéëîâ). Êàêîé âàðèàíò èñïîëüçîâàòü
5531
  ðåøàòü Âàì, íî êàê ãîâîðÿò, è ÿ ñ ýòèì ñîãëàñåí, ëó÷øå ïîëüçîâàòüñÿ çîëîòîé
5530
  ðåøàòü Âàì, íî êàê ãîâîðÿò, è ÿ ñ ýòèì ñîãëàñåí, ëó÷øå ïîëüçîâàòüñÿ çîëîòîé
5532
  ñåðåäèíîé - ×àñòü ïàðàìåòðîâ ïðîïèñàòü â c--.ini ôàéëå, à äðóãóþ
5531
  ñåðåäèíîé - ×àñòü ïàðàìåòðîâ ïðîïèñàòü â c--.ini ôàéëå, à äðóãóþ
5533
  íåïîñðåäñòâåííî â êîìïèëèðóåìîì ôàéëå.
5532
  íåïîñðåäñòâåííî â êîìïèëèðóåìîì ôàéëå.
5534
Return to contents.
5533
Return to contents.
5535
 
5534
 
5536
 
5535
 
5537
 
5536
 
5538
  13.4 startup.h-- ôàéë.
5537
  13.4 startup.h-- ôàéë.
5539
 
5538
 
5540
 
5539
 
5541
      Â ýòîì ôàéëå íàõîäÿòñÿ èñõîäíûå òåêñòû, êîòîðûå êîìïèëèðóþòñÿ
5540
      Â ýòîì ôàéëå íàõîäÿòñÿ èñõîäíûå òåêñòû, êîòîðûå êîìïèëèðóþòñÿ
5542
  êîìïèëÿòîðîì â êîä íà÷àëüíîé èíèöèàëèçàöèè ôàéëà, äëÿ âñåõ ïîääåðæèâàåìûõ
5541
  êîìïèëÿòîðîì â êîä íà÷àëüíîé èíèöèàëèçàöèè ôàéëà, äëÿ âñåõ ïîääåðæèâàåìûõ
5543
  êîìïèëÿòîðîì òèïîâ âûõîäíûõ ôàéëîâ. Ýòîò ôàéë äîëæåí íàõîäèòñÿ ëèáî â
5542
  êîìïèëÿòîðîì òèïîâ âûõîäíûõ ôàéëîâ. Ýòîò ôàéë äîëæåí íàõîäèòñÿ ëèáî â
5544
  äèðåêòîðèè âìåñòå ñ êîìïèëÿòîðîì, ëèáî â äèðåêòîðèè ñ áèáëèîòå÷íûìè ôàéëàìè.
5543
  äèðåêòîðèè âìåñòå ñ êîìïèëÿòîðîì, ëèáî â äèðåêòîðèè ñ áèáëèîòå÷íûìè ôàéëàìè.
5545
  Ýòîò ôàéë âêëþ÷àåòñÿ êîìïèëÿòîðîì â ïðîåêò àâòîìàòè÷åñêè, à âêëþ÷åíèå åãî
5544
  Ýòîò ôàéë âêëþ÷àåòñÿ êîìïèëÿòîðîì â ïðîåêò àâòîìàòè÷åñêè, à âêëþ÷åíèå åãî
5546
  äèðåêòèâîé include ìîæåò ïðèâåñòè ê íåæåëàòåëüíûì ðåçóëüòàòàì.
5545
  äèðåêòèâîé include ìîæåò ïðèâåñòè ê íåæåëàòåëüíûì ðåçóëüòàòàì.
5547
 
5546
 
5548
       áëîêå íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû ìîæåò ïðîèçâîäèòñÿ (åñëè Âû
5547
       áëîêå íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû ìîæåò ïðîèçâîäèòñÿ (åñëè Âû
5549
  ýòî óêàæåòå ñ ïîìîùüþ îïöèé êîìàíäíîé ñòðîêè èëè èñïîëüçóÿ äèðåêòèâû),
5548
  ýòî óêàæåòå ñ ïîìîùüþ îïöèé êîìàíäíîé ñòðîêè èëè èñïîëüçóÿ äèðåêòèâû),
5550
  ðàçáîð êîìàíäíîé ñòðîêè íà ïàðàìåòðû, ñîõðàíåíèå ïåðåìåíîé îêðóæåíèÿ,
5549
  ðàçáîð êîìàíäíîé ñòðîêè íà ïàðàìåòðû, ñîõðàíåíèå ïåðåìåíîé îêðóæåíèÿ,
5551
  ïîääåðæêà ðàáîòû ïðîöåäóðû ATEXIT, èçìåíåíèå ðàçìåðà äîñòóïíîé ïàìÿòè äëÿ
5550
  ïîääåðæêà ðàáîòû ïðîöåäóðû ATEXIT, èçìåíåíèå ðàçìåðà äîñòóïíîé ïàìÿòè äëÿ
5552
  *.com ôàéëîâ è ìíîãèå äðóãèå ïîäãîòîâèòåëüíûå îïåðàöèè. Åñëè Âû
5551
  *.com ôàéëîâ è ìíîãèå äðóãèå ïîäãîòîâèòåëüíûå îïåðàöèè. Åñëè Âû
5553
  îòêîìïèëèðóåòå ñâîé ôàéë íå èñïîëüçóÿ íèêàêèõ îïöèé êîìàíäíîé ñòðîêè è ó
5552
  îòêîìïèëèðóåòå ñâîé ôàéë íå èñïîëüçóÿ íèêàêèõ îïöèé êîìàíäíîé ñòðîêè è ó
5554
  Âàñ áóäåò îòñóòñòâîâàòü c--.ini ôàéë, à â ñàìîì êîìïèëèðóåìîì ôàéëå ó Âàñ
5553
  Âàñ áóäåò îòñóòñòâîâàòü c--.ini ôàéë, à â ñàìîì êîìïèëèðóåìîì ôàéëå ó Âàñ
5555
  áóäóò îòñóòñòâîâàòü äèðåêòèâû, òî ïðè êîìïèëÿöèè *.com ôàéëà â íåãî áóäåò
5554
  áóäóò îòñóòñòâîâàòü äèðåêòèâû, òî ïðè êîìïèëÿöèè *.com ôàéëà â íåãî áóäåò
5556
  âêëþ÷åí áëîê èçìåíÿþùèé ðàçìåð äîñòóïíîé ïàìÿòè è ñèãíàòóðà SPHINXC--.
5555
  âêëþ÷åí áëîê èçìåíÿþùèé ðàçìåð äîñòóïíîé ïàìÿòè è ñèãíàòóðà SPHINXC--.
5557
 
5556
 
5558
      Åñëè Âû êîìïèëèðóåòå ôàéë òèïà *.exe (êðîìå ôàéëà ìîäåëè tiny äëÿ DOS)
5557
      Åñëè Âû êîìïèëèðóåòå ôàéë òèïà *.exe (êðîìå ôàéëà ìîäåëè tiny äëÿ DOS)
5559
  è èñïîëüçóåòå äèðåêòèâó jumptomain NONE èëè êëþ÷ êîìàíäíîé ñòðîêè /j0,
5558
  è èñïîëüçóåòå äèðåêòèâó jumptomain NONE èëè êëþ÷ êîìàíäíîé ñòðîêè /j0,
5560
  òî äëÿ ýòîãî ïðîåêòà ôàéë startup.h-- êîìïèëÿòîðîì íå èñïîëüçóåòñÿ. Íå
5559
  òî äëÿ ýòîãî ïðîåêòà ôàéë startup.h-- êîìïèëÿòîðîì íå èñïîëüçóåòñÿ. Íå
5561
  èñïîëüçóåòñÿ ýòîò ôàéë òàêæå ïðè êîìïèëÿöèè *.com ôàéëîâ åñëè, êðîìå /j0,
5560
  èñïîëüçóåòñÿ ýòîò ôàéë òàêæå ïðè êîìïèëÿöèè *.com ôàéëîâ åñëè, êðîìå /j0,
5562
  â ýòîì ïðîåêòå íå èñïîëüçóåòñÿ ðàçáîð êîìàíäíîé ñòðîêè (/p /argc), íå
5561
  â ýòîì ïðîåêòå íå èñïîëüçóåòñÿ ðàçáîð êîìàíäíîé ñòðîêè (/p /argc), íå
5563
  ïðèìåíÿåòñÿ ïðîöåäóðà ATEXIT (/at), íå èñïîëüçóåòñÿ àäðåñ ïåðåìåííîé
5562
  ïðèìåíÿåòñÿ ïðîöåäóðà ATEXIT (/at), íå èñïîëüçóåòñÿ àäðåñ ïåðåìåííîé
5564
  îêðóæåíèÿ (/env), íå èñïîëüçóåòñÿ î÷èñòêà îáëàñòè post-àäðåñîâ (/cpa), íå
5563
  îêðóæåíèÿ (/env), íå èñïîëüçóåòñÿ î÷èñòêà îáëàñòè post-àäðåñîâ (/cpa), íå
5565
  èñïîëüçóåòñÿ óìåíüøåíèå äîñòóïíîé ïðîãðàììå ïàìÿòè (/r) è íå èñïîëüçóåòñÿ
5564
  èñïîëüçóåòñÿ óìåíüøåíèå äîñòóïíîé ïðîãðàììå ïàìÿòè (/r) è íå èñïîëüçóåòñÿ
5566
  çàãëóøêà íàæàòèé CTRL-C (/c).
5565
  çàãëóøêà íàæàòèé CTRL-C (/c).
5567
 
5566
 
5568
      Êðîìå áëîêà íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû â ôàéëå startup.h--
5567
      Êðîìå áëîêà íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû â ôàéëå startup.h--
5569
  íàõîäÿòñÿ äèíàìè÷åñêèå ïðîöåäóðû:
5568
  íàõîäÿòñÿ äèíàìè÷åñêèå ïðîöåäóðû:
5570
 
5569
 
5571
  void CLEARPOSTAREA( (E)AX );  - î÷èñòêà post-îáëàñòè äàííûõ.
5570
  void CLEARPOSTAREA( (E)AX );  - î÷èñòêà post-îáëàñòè äàííûõ.
5572
  unsigned int PARAMSTR( ECX ); - ïîëó÷èòü àäðåñ ýëåìåíòà êîìàíäíîé ñòðîêè
5571
  unsigned int PARAMSTR( ECX ); - ïîëó÷èòü àäðåñ ýëåìåíòà êîìàíäíîé ñòðîêè
5573
  unsigned int PARAMCOUNT();    - ïîëó÷èòü ÷èñëî ýëåìåíòîâ â êîìàíäíîé ñòðîêå
5572
  unsigned int PARAMCOUNT();    - ïîëó÷èòü ÷èñëî ýëåìåíòîâ â êîìàíäíîé ñòðîêå
5574
 
5573
 
5575
      Ïðè ðàçáîðå êîìàíäíîé ñòðîêè íà ñîñòàâëÿþùèå åå ýëåìåíòû äëÿ 32-áèòíûõ
5574
      Ïðè ðàçáîðå êîìàíäíîé ñòðîêè íà ñîñòàâëÿþùèå åå ýëåìåíòû äëÿ 32-áèòíûõ
5576
  ïðîãðàìì ðåàëèçîâàíà ïîääåðæêà äëèííûõ èìåí. Äëÿ 16-áèòíûõ ïðîãðàìì
5575
  ïðîãðàìì ðåàëèçîâàíà ïîääåðæêà äëèííûõ èìåí. Äëÿ 16-áèòíûõ ïðîãðàìì
5577
  ïîääåðæêà ðàçáîðà êîìàíäíîé ñòðîêè ñ ó÷åòîì äëèííûõ èìåí ïîäêëþ÷àåòñÿ, åñëè
5576
  ïîääåðæêà ðàçáîðà êîìàíäíîé ñòðîêè ñ ó÷åòîì äëèííûõ èìåí ïîäêëþ÷àåòñÿ, åñëè
5578
  Âû â íà÷àëå ñâîé ïðîãðàììû óêàæåòå äèðåêòèâó:
5577
  Âû â íà÷àëå ñâîé ïðîãðàììû óêàæåòå äèðåêòèâó:
5579
 
5578
 
5580
  #define _USELONGNAME TRUE
5579
  #define _USELONGNAME TRUE
5581
 
5580
 
5582
      ëèáî â c--.ini ôàéëå èëè â êîìàíäíîé ñòðîêå êîìïèëÿòîðà óêàæåòå îïöèþ
5581
      ëèáî â c--.ini ôàéëå èëè â êîìàíäíîé ñòðîêå êîìïèëÿòîðà óêàæåòå îïöèþ
5583
  d=_USELONGNAME.
5582
  d=_USELONGNAME.
5584
Return to contents.
5583
Return to contents.
5585
 
5584
 
5586
 
5585
 
5587
 
5586
 
5588
  13.5 mainlib.ldp ôàéë.
5587
  13.5 mainlib.ldp ôàéë.
5589
 
5588
 
5590
 
5589
 
5591
       ýòîì ôàéëå íàõîäèòñÿ áîëüøîå ÷èñëî ïðîöåäóð èç îñíîâíîé áèáëèîòåêè
5590
       ýòîì ôàéëå íàõîäèòñÿ áîëüøîå ÷èñëî ïðîöåäóð èç îñíîâíîé áèáëèîòåêè
5592
  êîìïèëÿòîðà â óæå îòêîìïèëèðîâàííîì âèäå. Âñå ïðîöåäóðû îòêîìïèëèðîâàíû â
5591
  êîìïèëÿòîðà â óæå îòêîìïèëèðîâàííîì âèäå. Âñå ïðîöåäóðû îòêîìïèëèðîâàíû â
5593
  4-õ ðàçëè÷íûõ ðåæèìàõ îïòèìèçàöèè.  ýòîò ôàéë òàêæå âûíåñåíû ìíîãèå
5592
  4-õ ðàçëè÷íûõ ðåæèìàõ îïòèìèçàöèè.  ýòîò ôàéë òàêæå âûíåñåíû ìíîãèå
5594
  ïðîöåäóðû, êîòîðûå ðàíåå áûëè âíóòðè êîìïèëÿòîðà. Èñïîëüçîâàíèå ðàíåå
5593
  ïðîöåäóðû, êîòîðûå ðàíåå áûëè âíóòðè êîìïèëÿòîðà. Èñïîëüçîâàíèå ðàíåå
5595
  îòêîìïèëèðîâàííûõ ïðîöåäóð ïîâûøàåò ñêîðîñòü êîìïèëÿöèè.
5594
  îòêîìïèëèðîâàííûõ ïðîöåäóð ïîâûøàåò ñêîðîñòü êîìïèëÿöèè.
5596
 
5595
 
5597
      Ýòè ïðîöåäóðû îòêîìïèëèðîâàíû òîëüêî äëÿ 16-áèòíîãî ðåæèìà ðàáîòû
5596
      Ýòè ïðîöåäóðû îòêîìïèëèðîâàíû òîëüêî äëÿ 16-áèòíîãî ðåæèìà ðàáîòû
5598
  ïðîãðàììû. Åñëè Âû áóäåòå èñïîëüçîâàòü ýòè ïðîöåäóðû â 32-áèòíîé ïðîãðàììå,
5597
  ïðîãðàììû. Åñëè Âû áóäåòå èñïîëüçîâàòü ýòè ïðîöåäóðû â 32-áèòíîé ïðîãðàììå,
5599
  òî êîìïèëÿòîð íà ýòî íå âûäàñò íèêàêèõ ñîîáùåíèé è âêëþ÷èò ýòó ïðîöåäóðó â
5598
  òî êîìïèëÿòîð íà ýòî íå âûäàñò íèêàêèõ ñîîáùåíèé è âêëþ÷èò ýòó ïðîöåäóðó â
5600
  Âàø êîä. Íî ïðè çàïóñêå òàêîé ïðîãðàììû îíà íåèçáåæíî ïîòåðïèò êðàõ.
5599
  Âàø êîä. Íî ïðè çàïóñêå òàêîé ïðîãðàììû îíà íåèçáåæíî ïîòåðïèò êðàõ.
5601
 
5600
 
5602
      Èñïîëüçîâàòü ýòó áèáëèîòåêó î÷åíü ïðîñòî. Âñå ÷òî íóæíî, ýòî
5601
      Èñïîëüçîâàòü ýòó áèáëèîòåêó î÷åíü ïðîñòî. Âñå ÷òî íóæíî, ýòî
5603
  ðàñïîëîæèòü ýòó áèáëèîòåêó â îäíîé ñ êîìïèëÿòîðîì äèðåêòîðèè. Òîãäà
5602
  ðàñïîëîæèòü ýòó áèáëèîòåêó â îäíîé ñ êîìïèëÿòîðîì äèðåêòîðèè. Òîãäà
5604
  êîìïèëÿòîð, åñëè âñòðåòèò â âàøåé ïðîãðàììå âûçîâ ïðîöåäóðû, êîòîðàÿ íå
5603
  êîìïèëÿòîð, åñëè âñòðåòèò â âàøåé ïðîãðàììå âûçîâ ïðîöåäóðû, êîòîðàÿ íå
5605
  áûëà îïðåäåëåíà íè âî âêëþ÷àåìûõ â ïðîãðàììó áèáëèîòå÷íûõ ôàéëàõ, íè â
5604
  áûëà îïðåäåëåíà íè âî âêëþ÷àåìûõ â ïðîãðàììó áèáëèîòå÷íûõ ôàéëàõ, íè â
5606
  âàøåé ïðîãðàììå, áóäåò èñêàòü ýòó ïðîöåäóðó â ôàéëå mainlib.ldp. Åñëè ýòà
5605
  âàøåé ïðîãðàììå, áóäåò èñêàòü ýòó ïðîöåäóðó â ôàéëå mainlib.ldp. Åñëè ýòà
5607
  ïðîöåäóðà áóäåò íàéäåíà â ýòîì ôàéëå, òî åå êîä áóäåò ïåðåíåñåí â Âàø ôàéë,
5606
  ïðîöåäóðà áóäåò íàéäåíà â ýòîì ôàéëå, òî åå êîä áóäåò ïåðåíåñåí â Âàø ôàéë,
5608
  èíà÷å áóäåò âûäàíî ñîîáùåíèå î íåèçâåñòíîé ïðîöåäóðå. Òàêèì îáðàçîì, ÷òîáû
5607
  èíà÷å áóäåò âûäàíî ñîîáùåíèå î íåèçâåñòíîé ïðîöåäóðå. Òàêèì îáðàçîì, ÷òîáû
5609
  ïðîöåäóðà áûëà âñòàâëåíà â âàøó ïðîãðàììó èç áèáëèîòåêè mainlib.ldp Âàì
5608
  ïðîöåäóðà áûëà âñòàâëåíà â âàøó ïðîãðàììó èç áèáëèîòåêè mainlib.ldp Âàì
5610
  íóæíî â ñâîþ ïðîãðàììó íå âêëþ÷àòü áèáëèîòå÷íûé ôàéë, ñîäåðæàùèé ïðîöåäóðó ñ
5609
  íóæíî â ñâîþ ïðîãðàììó íå âêëþ÷àòü áèáëèîòå÷íûé ôàéë, ñîäåðæàùèé ïðîöåäóðó ñ
5611
  òàêèì æå èìåíåì.
5610
  òàêèì æå èìåíåì.
5612
 
5611
 
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.
5619
 
5618
 
5620
 
5619
 
5621
 
5620
 
5622
  13.6 C-- ñèìâîëû.
5621
  13.6 C-- ñèìâîëû.
5623
 
5622
 
5624
 
5623
 
5625
  SYMBOL|FUNCTION                  |EXAMPLE
5624
  SYMBOL|FUNCTION                  |EXAMPLE
5626
  --------------------------------------------------------------------
5625
  --------------------------------------------------------------------
5627
    /*  |íà÷èíàþò áëîê êîììåíòàðèÿ |/* êîììåíòàðèé */
5626
    /*  |íà÷èíàþò áëîê êîììåíòàðèÿ |/* êîììåíòàðèé */
5628
    */  |çàâåðøàþò áëîê êîììåíòàðèÿ|/* êîììåíòàðèé */
5627
    */  |çàâåðøàþò áëîê êîììåíòàðèÿ|/* êîììåíòàðèé */
5629
        |                          |
5628
        |                          |
5630
    //  |êîììåíòàðèé äî êîíöà ëèíèè|// êîììåíòàðèé
5629
    //  |êîììåíòàðèé äî êîíöà ëèíèè|// êîììåíòàðèé
5631
        |                          |
5630
        |                          |
5632
     =  |ïðèñâîåíèå                |AX = 12;
5631
     =  |ïðèñâîåíèå                |AX = 12;
5633
     +  |ñëîæåíèå                  |AX = BX + 12;
5632
     +  |ñëîæåíèå                  |AX = BX + 12;
5634
     -  |âû÷èòàíèå                 |house = dog - church;
5633
     -  |âû÷èòàíèå                 |house = dog - church;
5635
     *  |óìíîæåíèå èëè óêàçàòåëü   |x = y * z; AL = * var;
5634
     *  |óìíîæåíèå èëè óêàçàòåëü   |x = y * z; AL = * var;
5636
     /  |äåëåíèå                   |x1 = dog / legs;
5635
     /  |äåëåíèå                   |x1 = dog / legs;
5637
     &  |ïîðàçðÿäíîå ëîãè÷åñêîå È  |polution = stupid & pointless;
5636
     &  |ïîðàçðÿäíîå ëîãè÷åñêîå È  |polution = stupid & pointless;
5638
     |  |ïîðàçðÿäíîå ëîãè÷åñêîå ÈËÈ|yes = i | mabe;
5637
     |  |ïîðàçðÿäíîå ëîãè÷åñêîå ÈËÈ|yes = i | mabe;
5639
     ^  |ïîðàçðÿäí. èñêëþ÷àþùåå ÈËÈ|snap = got ^ power;
5638
     ^  |ïîðàçðÿäí. èñêëþ÷àþùåå ÈËÈ|snap = got ^ power;
5640
    <<  |áèòîâûé ñäâèã âëåâî       |x = y << z;
5639
    <<  |áèòîâûé ñäâèã âëåâî       |x = y << z;
5641
    >>  |áèòîâûé ñäâèã âïðàâî      |x = y >> z;
5640
    >>  |áèòîâûé ñäâèã âïðàâî      |x = y >> z;
5642
        |                          |
5641
        |                          |
5643
    +=  |ñëîæåíèå                  |fox += 12;   // fox = fox +12;
5642
    +=  |ñëîæåíèå                  |fox += 12;   // fox = fox +12;
5644
    -=  |âû÷èòàíèå                 |cow -= BX;   // cow = cow - BX;
5643
    -=  |âû÷èòàíèå                 |cow -= BX;   // cow = cow - BX;
5645
    *=  |óìíîæåíèå                 |a *= b;      // a = a * b;
5644
    *=  |óìíîæåíèå                 |a *= b;      // a = a * b;
5646
    /=  |äåëåíèå                   |a /= b;      // a = a / b;
5645
    /=  |äåëåíèå                   |a /= b;      // a = a / b;
5647
    &=  |ïîðàçðÿäíîå ëîãè÷åñêîå È  |p &= q;      // p = p & q;
5646
    &=  |ïîðàçðÿäíîå ëîãè÷åñêîå È  |p &= q;      // p = p & q;
5648
    |=  |ïîðàçðÿäíîå ëîãè÷åñêîå ÈËÈ|p |= z;      // p = p | z;
5647
    |=  |ïîðàçðÿäíîå ëîãè÷åñêîå ÈËÈ|p |= z;      // p = p | z;
5649
    ^=  |ïîðàçðÿäí. èñêëþ÷àþùåå ÈËÈ|u ^= s;      // u = u ^ s;
5648
    ^=  |ïîðàçðÿäí. èñêëþ÷àþùåå ÈËÈ|u ^= s;      // u = u ^ s;
5650
    <<= |áèòîâûé ñäâèã âëåâî       |x <<= z;     // x = x << z
5649
    <<= |áèòîâûé ñäâèã âëåâî       |x <<= z;     // x = x << z
5651
    >>= |áèòîâûé ñäâèã âïðàâî      |x >>= z;     // x = x >> z
5650
    >>= |áèòîâûé ñäâèã âïðàâî      |x >>= z;     // x = x >> z
5652
        |                          |
5651
        |                          |
5653
    ><  |îáìåí çíà÷åíèÿìè          |x >< y; /* ìåíÿåò ìåñòàìè çíà÷åíèÿ x è y */
5652
    ><  |îáìåí çíà÷åíèÿìè          |x >< y; /* ìåíÿåò ìåñòàìè çíà÷åíèÿ x è y */
5654
        |                          |
5653
        |                          |
5655
    ==  |ïðîâåðêà íà ðàâåíñòâî     |IF(AX == 12)
5654
    ==  |ïðîâåðêà íà ðàâåíñòâî     |IF(AX == 12)
5656
     >  |ïðîâåðêà íà áîëüøå ÷åì    |IF(junk > BOGUS)
5655
     >  |ïðîâåðêà íà áîëüøå ÷åì    |IF(junk > BOGUS)
5657
     <  |ïðîâåðêà íà ìåíüøå ÷åì    |if( x < y )
5656
     <  |ïðîâåðêà íà ìåíüøå ÷åì    |if( x < y )
5658
    >=  |ïðîâåðêà áîëüøå èëè ðàâíî |if(AX >= 12)
5657
    >=  |ïðîâåðêà áîëüøå èëè ðàâíî |if(AX >= 12)
5659
    <=  |ïðîâåðêà ìåíüøå èëè ðàâíî |IF(BL >= CH)
5658
    <=  |ïðîâåðêà ìåíüøå èëè ðàâíî |IF(BL >= CH)
5660
   !=   |ïðîâåðêà íà íåðàâåíñòâî   |IF(girl != boy)
5659
   !=   |ïðîâåðêà íà íåðàâåíñòâî   |IF(girl != boy)
5661
    <>  |ïðîâåðêà íà îòëè÷èå       |if (cat<>dog) /* òà æå ôóíêöèÿ ÷òî != */
5660
    <>  |ïðîâåðêà íà îòëè÷èå       |if (cat<>dog) /* òà æå ôóíêöèÿ ÷òî != */
5662
        |                          |
5661
        |                          |
5663
    @   |âñòàâêà êîäà              |@ COLDBOOT(); /* âñòàâëÿåò COLDBOOT êîä */
5662
    @   |âñòàâêà êîäà              |@ COLDBOOT(); /* âñòàâëÿåò COLDBOOT êîä */
5664
    :   |äèíàìè÷åñêàÿ ïðîöåäóðà    |: functionname () //îáúÿâëÿåò functionname
5663
    :   |äèíàìè÷åñêàÿ ïðîöåäóðà    |: functionname () //îáúÿâëÿåò functionname
5665
    $   |àññåìáëåðíàÿ êîìàíäà      |$ PUSH AX   /* çàíîñèò AX â ñòåê */
5664
    $   |àññåìáëåðíàÿ êîìàíäà      |$ PUSH AX   /* çàíîñèò AX â ñòåê */
5666
    #   |ïîëó÷åíèå àäðåñà(ñìåùåíèÿ)|loc = #cow;    /* loc = address of cow */
5665
    #   |ïîëó÷åíèå àäðåñà(ñìåùåíèÿ)|loc = #cow;    /* loc = address of cow */
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
 
-
 
5698
>
            5677
            
>
          
          
            5699
            
 
5678
 
5700
>
5679
>