Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 7543 → Rev 7544

/data/Tupfile.lua
243,8 → 243,8
{"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
{"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
{"kolibrios/res/skins/", "../skins/authors.txt"},
{"kolibrios/res/wallpapers/in_the_wind.png", "common/wallpapers/in_the_wind.png"},
{"kolibrios/res/wallpapers/deink.png", "common/wallpapers/deink.png"},
{"kolibrios/res/wallpapers/", "common/wallpapers/*"},
{"kolibrios/res/templates/", "common/templates/*"},
}
if build_type == "rus" then tup.append_table(extra_files, {
{"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
/data/common/templates/graph1.grf
0,0 → 1,2
0 25 -9 9
=9*exp(-x/10)*sin(x)
/data/common/templates/graph2.grf
0,0 → 1,35
-3 3 -1 1
0 0
0,1 0,099833417
0,2 0,198669331
0,3 0,295520207
0,4 0,389418342
0,5 0,479425539
0,6 0,564642473
0,7 0,644217687
0,8 0,717356091
0,9 0,78332691
1 0,841470985
1,1 0,89120736
1,2 0,932039086
1,3 0,963558185
1,4 0,98544973
1,5 0,997494987
1,6 0,999573603
1,7 0,99166481
1,8 0,973847631
1,9 0,946300088
2 0,909297427
2,1 0,863209367
2,2 0,808496404
2,3 0,745705212
2,4 0,675463181
2,5 0,598472144
2,6 0,515501372
2,7 0,42737988
2,8 0,33498815
2,9 0,239249329
3 0,141120008
3,1 0,041580662
3,2 -0,058374143
3,3 -0,157745694
/data/common/templates/shell_escape.sh
0,0 → 1,33
#SHS
 
echo Table for 16-color terminal escape sequences.
echo Replace ESC with \033 in bash.
 
echo Background | Foreground colors
echo ---------------------------------------------------------------------
echo  ESC[40m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[40m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[41m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[41m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[42m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[42m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[43m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[43m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[44m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[44m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[45m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[45m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[46m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[46m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
echo  ESC[47m |  [30m  [31m  [32m  [33m  [34m  [35m  [36m  [37m 
echo  ESC[47m |  [1;30m [1;31m [1;32m [1;33m [1;34m [1;35m [1;36m [1;37m
echo ---------------------------------------------------------------------
 
 
/data/common/templates/shell_misc.sh
0,0 → 1,44
#SHS
 
echo Hello, I am a command language interpreter example.
ver
sleep 200
 
 
echo
echo ==============
echo runing palitra
echo ==============
 
/sys/media/palitra H 00AEC3D8 003A95BF
sleep 300
/sys/media/palitra H 007DCEDF 003C427F
sleep 200
/sys/media/palitra H 00FFFF9F 003CC6DF
sleep 200
 
 
echo
echo ==============
echo runing fillscr
echo ==============
 
/sys/media/fillscr 105,145,200, 105,145,200, 105,145,200, 60,60,128, 82,102,164, 60,60,128, 60,60,128, 60,60,128, 60,60,128
sleep 200
 
 
echo
echo ==============
echo runing @notify
echo ==============
 
/sys/@notify "Hello, I am a @notify app!"
sleep 300
/sys/@notify "@notify can show several lines.\nNotices are closed automatically in 5 sec."
sleep 300
/sys/@notify '@notify\nYou can also set an icon and a title.' -tI
sleep 300
 
 
 
exit
/data/common/templates/table_apps(rus).csv
0,0 → 1,79
ˆ¬ï ¯à®£à ¬¬ë;Ž¯¨á ­¨¥;Lang;WebSVN;Forum;wiki
@docky;„®ª-¡ à;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fdocky%2F&#a92e88fd4523f8d4e6b72c977e438ea8a;http://board.kolibrios.org/viewtopic.php?f=48&t=2455;
@hotangles;"á«ã¦¡  ®¯æ¨¨ Hot Angles (§ ¯ã᪠¯à¨«®¦¥­¨ï ¯ãâñ¬ ­ ¢¥¤¥­¨ï ªãàá®à  ¢ 㣮« íªà ­ ; ¤®¯. ¢®§¬®¦­®á⨠ࠡ®ç¥£® á⮫ )";asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fother%2Fha%2F&#af32bbff78a611a6e4824edcba7361181;http://board.kolibrios.org/viewtopic.php?f=42&t=3762;
@icon;à ¡®ç¨© á⮫;asm;;http://board.kolibrios.org/viewtopic.php?f=48&t=1515;
@menu;Œ¥­î ¯ãáª.;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fmenu%2Ftrunk%2F&#a07a01d3bfab170d2567a0c43beb53556;http://board.kolibrios.org/viewtopic.php?f=48&t=1906;
@notify;ã⨫¨â  ¢ë¢®¤  㢥¤®¬«¥­¨©;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=2650;
@open;„¨ «®£ ¢ë¡®à  ¯à®£à ¬¬ë.;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fopen%2F&#a71954713f684b2f848a962781352c698;http://board.kolibrios.org/viewtopic.php?f=48&t=2997;
@ss;‘ªà¨­á¥©¢¥à. •à ­¨â¥«ì íªà ­ . ‡ áâ ¢ª  íªà ­ .;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fss%2Ftrunk%2F&#ae76c7f2a5ba34ae0045bc2f9189f3de0;http://board.kolibrios.org/viewtopic.php?f=48&t=2045;
@taskbar;¯ ­¥«ì § ¤ ç;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Ftaskbar%2F&#a62ec11ea886ca71c82afc8a714b579cf;http://board.kolibrios.org/viewtopic.php?f=48&t=809;
@volume;¥£ã«¨à®¢é¨ª §¢ãª .;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fmedia%2Fvolume%2F&#afc250e0bd57c71d8513adada51b87586;http://board.kolibrios.org/viewtopic.php?f=38&t=3010;
allgames;¨£à®¢®© 業âà;c--;;http://board.kolibrios.org/viewtopic.php?f=9&t=3001;
app_plus;"¢¨¤¦¥â ᮠᯨ᪮¬ ¯à®£à ¬¬ ISO; ¯®§¢®«ï¥â ¯à¨¬®­â¨à®¢ âì /kolibrios/ ¢àãç­ãî";c--;;http://board.kolibrios.org/viewtopic.php?f=9&t=3001;
asciivju;’ ¡«¨æ  ASCII ᨬ¢®«®¢.;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fdevelop%2Fasciivju%2Ftrunk%2F&#a5da69869b5757c5b71158a900f51c0c3;http://board.kolibrios.org/viewtopic.php?f=42&t=1455;
calc;ª «ìªã«ïâ®à;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fother%2Fcalc%2F&#a63c078ecbd7ae4df180813602b5ae0b7;http://board.kolibrios.org/viewtopic.php?f=46&t=392;
calendar;á¨á⥬­ë© ª «¥­¤ àì;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fcalendar%2F&#aad5ef82ddbb8983b84a7bea39c99bd48;http://board.kolibrios.org/viewtopic.php?f=42&t=705;
colrdial;¤¨ «®£ ¢ë¡®à  æ¢¥â  á ¯ «¨âன;asm;;http://board.kolibrios.org/viewtopic.php?f=48&t=1946;
cpu;¤¨á¯¥âç¥à ¯à®æ¥áᮢ;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fcpu%2F&#ade815415c1e9b899c56c61778998e7fc;http://board.kolibrios.org/viewtopic.php?f=48&t=2054;
cpuid;¯®¤à®¡­ ï ¨­ä®à¬ æ¨ï ® ¯à®æ¥áá®à¥;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fcpuid%2F&#a82de51835bbc6ad60432500271150598;http://board.kolibrios.org/viewtopic.php?f=42&t=594;
cropflat;Ž£à ­¨ç¥­¨¥ à §¬¥à®¢ ®â®¡à ¦ ¥¬®© ç á⨠íªà ­ ;asm;;http://board.kolibrios.org/viewtopic.php?f=36&t=2071&p=41586&hilit=cropflat#p41586;
disptest;¯à®£à ¬¬  ¤«ï ¯à®¢¥àª¨ ¬ âà¨æë ¤¨á¯«¥ï;;;http://board.kolibrios.org/viewtopic.php?f=42&t=1122;
docpack;¤®ªã¬¥­â æ¨ï / ¡«®ª ¤®ªã¬¥­â®¢;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fdocpack%2F&#a8b02b30e041c28305e4b1339149932ea;;
easyshot;¯à®á⮩ áªà¨­è®â¥à;c--;;http://board.kolibrios.org/viewtopic.php?f=42&t=3695;
end;¯à®£à ¬¬  § ¢¥à襭¨ï à ¡®âë;asm;;http://board.kolibrios.org/viewtopic.php?f=48&t=2442;
eskin;ãáâ ­®¢é¨ª ä®­  ¨ ᪨­  ¯à¨ áâ à⥠á¨á⥬ë;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=2424;
fb2read;ç¨â «ª  fb2;oberon07;;http://board.kolibrios.org/viewtopic.php?f=46&t=3128;
font_viewer;¯à®á¬®âà KF èà¨ä⮢;c--;;;
fspeed;â¥áâ¨à®¢ ­¨¥ ᪮à®á⨠¤¨áª  ¢ à ¡®â¥ á ä ©« ¬¨;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=2660;
gmon;¨­ä®à¬ æ¨ï ® § £à㧪¥ á¨á⥬ë;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=470;
graph;¯®áâ஥­¨¥ £à ä¨ª®¢;c (msvc);;http://board.kolibrios.org/viewtopic.php?f=38&t=1059;
haconfig;ª®­ä¨£ãà â®à ®¯æ¨¨ Hot Angles;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fother%2Fha%2F&#af32bbff78a611a6e4824edcba7361181;http://board.kolibrios.org/viewtopic.php?f=42&t=3762;
hdd_info;¨­ä®à¬ æ¨ï ® 䨧¨ç¥áª¨å ¤¨áª å;;;http://board.kolibrios.org/viewtopic.php?f=42&t=1318;
kbd;ã⨫¨â  ¯®§¢®«ï¥â ®âª«îç âì î¦­ë© ¬®áâ ­  ¬ â¥à¨­áª®© ¯« â¥ ¤«ï íª®­®¬¨¨ í«¥ªâà®í­¥à£¨¨;asm;;;http://wiki.kolibrios.org/wiki/Kbd/ru
kerpack;ᦨ¬ ¥â kernel.mnt;asm;;;
kpack;á¨á⥬­ë© 㯠ª®¢é¨ª ¨ à á¯ ª®¢é¨ª;asm;;http://board.kolibrios.org/viewtopic.php?f=46&t=355;
launcher;§ ¯ã᪠¯à®£à ¬¬ ¯à¨ áâ à⥠á¨á⥬ë;asm;;http://board.kolibrios.org/viewtopic.php?f=48&t=2454;
loaddrv;ã⨫¨â  ¤«ï àãç­®© § £à㧪¨ ¤à ©¢¥à®¢ ;asm;;;
lod;à ¡®â ¥â ç¥à¥§ ¯ à ¬¥âàë: ®âªà뢠¥â opendial á ¬ áª®© ¨ ¯®á«¥ ¢ë¡®à  ä ©«  ®âªà뢠¥â ¥£® ¢ ¯à¨«®¦¥­¨¨;;;;
madmouse;¤¥« ¥â áâ®à®­ë íªà ­  ᪢®§­ë¬¨ ¤«ï ¬ëè¨;;;http://board.kolibrios.org/viewtopic.php?f=42&t=1732;
magnify;㢥«¨ç¨â¥«ì­®¥ á⥪«® ¤«ï à ¡®ç¥£® á⮫ ;;;;
mgb;£à ä¨ç¥áª¨© ¡¥­ç¬ àª;;;http://board.kolibrios.org/viewtopic.php?f=42&t=670;
mousecfg;ã⨫¨â  ­ áâனª¨ ¨ ¯à®¢¥àª¨ ¬ëè¨;c--;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fcmm%2Fmousecfg%2F&#a51476493ffefa534a9f94b1bd115997f;http://board.kolibrios.org/viewtopic.php?f=48&t=3095;
mousemul;í¬ã«ïâ®à ¬ëè¨ ç¥à¥§ ª« ¢¨ âãàã;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=814;
mykey;;asm;;;
notes;§ ¬¥âª¨;c--;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fcmm%2Fnotes%2F&#ab282b876c270d40ad64654e8b7727298;;
panels_cfg;ã¯à ¢«¥­¨¥ â áª¡ à®¬ ¨ ¤®ª®¬;c--;;http://board.kolibrios.org/viewtopic.php?f=48&t=3020;
pcidev;¨­ä®à¬ æ¨ï ®¡ ãáâனáâ¢ å ­  ¬ â¥à¨­áª®© ¯« â¥;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=73;
period;¯¥à¨®¤¨ç¥áª ï â ¡«¨æ ;asm;;http://board.kolibrios.org/viewtopic.php?f=38&t=411;
pipetka;¯¨¯¥âª  ¤«ï à ¡®ç¥£® á⮫ ;asm;;http://board.kolibrios.org/viewtopic.php?f=38&t=3546;
rdsave;á®åà ­¥­¨¥ ®¡à §  IMG ¤«ï á®åà ­¥­¨ï ¨§¬¥­¥­¨© ¢ á¨á⥬¥;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Frdsave%2F&#a96edb222ca9242e088c4b4a52513c728;http://board.kolibrios.org/viewtopic.php?f=42&t=645;
rtfread;ç¨â «ª  RTF;asm;;http://board.kolibrios.org/viewtopic.php?f=9&t=1821;
run;§ ¯ã᪠«ª  ä ©«®¢ á ¯ à ¬¥âà ¬¨;uasm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Frun%2F&#af97b4cdeaba3ef1cb77ef952175085df;http://board.kolibrios.org/viewtopic.php?f=42&t=554;
srcshoot;áâਭè®â¥à;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fmedia%2Fscrshoot%2F&#a268c6b8a259b32f84482097103fcf083;http://board.kolibrios.org/viewtopic.php?f=38&t=528;
searchap;¯®¨áª ¨ ¯®¤ª«î祭¨¥ ¤®¯®«­¨â¥«ì­®© á¨á⥬­®© ¯ ¯ª¨ /kolibrios/;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fsearchap%2F&#ab5102e78ca9592829ed715bc6f82267d;;
setup;­ áâனª  ­¥ª®â®àëå á¨á⥬­ëå ¯ à ¬¥â஢;asm;;http://board.kolibrios.org/viewtopic.php?f=48&t=1966;
shell;ª®­á®«ì­ë© ¨­â¥à¯à¥â â®à ª®¬ ­¤ (襫«);c (gcc);http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fshell%2F&#a3c50045ecae9694143987608f19fe69b;http://board.kolibrios.org/viewtopic.php?f=48&t=1111;http://wiki.kolibrios.org/wiki/Shell/ru
skincfg;­ áâனª  梥⮢ ®ª®­;asm;;;
sysmon;"¬®­¨â®à¨­£ à¥áãàᮢ (Ž‡“; CPU ¨ ᢮¡®¤­®© ¯ ¬ïâ¨)";c--;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fcmm%2Fsysmon%2F&#a65a1e5da34b9a03e871ac1d837c418b1;http://board.kolibrios.org/viewtopic.php?f=42&t=3753;
syspanel;á¨á⥬­ ï ¯ ­¥«ì;;;;
table;। ªâ®à í«¥ªâà®­­ëå â ¡«¨æ;c (msvc);http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fother%2Ftable%2F&#a944e66191e0bbc79d321026a7d432775;http://board.kolibrios.org/viewtopic.php?f=46&t=1070;http://wiki.kolibrios.org/wiki/Table/ru
terminal;â¥à¬¨­ « ¤«ï à ¡®âë á com ¯®àâ ¬¨;;;http://board.kolibrios.org/viewtopic.php?f=23&t=2563&hilit=terminal;
test;â¥áâ § é¨âë ï¤à ;;;;
tinfo;¨­ä®à¬ æ¨ï ® ¯®â®ª¥ ¢ë¯®«­¥­¨ï (ŠŒ ­  ¯à®æ¥áᥠ¢ cpu);asm;;;
tinypad;⥪áâ®¢ë© à¥¤ ªâ®à;asm;;http://board.kolibrios.org/viewtopic.php?f=46&t=39;
tmpdisk;ã¯à ¢«¥­¨¥ ¢¨àâã «ì­ë¬¨ RAM ¤¨áª ¬¨ /tmp;c--;;http://board.kolibrios.org/viewtopic.php?f=44&t=2172;
txtread;ç¨â «ª  ⥪á⮢ëå ä ©«®¢;c--;;http://board.kolibrios.org/viewtopic.php?f=46&t=3119;
unz;à á¯ ª®¢é¨ª  à娢®¢ ZIP ¨ 7Z;asm;;;
vmode;¨§¬¥­¥­¨¥ à §à¥è¥­¨ï íªà ­  ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ¢¨¤¥®¤à ©¢¥à ;?? (c?);;;
zkey;¢¨àâã «ì­ ï ª« ¢¨ âãà ;;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fzkey%2F&#a429ac959a677f842944a8d49dd36381c;http://board.kolibrios.org/viewtopic.php?f=42&t=1109;
board;¤®áª  ®â« ¤ª¨ ¨ á®®¡é¥­¨©;asm;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fboard%2F&#a47fda09b36905262a7a84fd15e2cb66a;http://board.kolibrios.org/viewtopic.php?f=42&t=1485;
clipview;¯à®á¬®âà騪 ᮤ¥à¦¨¬®£® ¡ãä¥à  ®¡¬¥­ ;c--;http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fcmm%2Fclipview%2F&#a71f4bc86e0bd2fc3e7634575ae41b9af;http://board.kolibrios.org/viewtopic.php?f=42&t=3396;
diff;¢¨§ã «ì­®¥ áà ¢­¥­¨¥ ¤¢ãå ⥪á⮢ëå ä ©«®¢;c--;;http://board.kolibrios.org/viewtopic.php?f=45&t=3436;
fasm; áᥬ¡«¥à;asm;;http://board.kolibrios.org/viewtopic.php?f=45&t=1514;
h2d2b;¯à¥®¡à §®¢ ­¨¥ ç¨á¥« hex 2 dec 2 bin;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=117;
heed;HEX-। ªâ®à;asm;;http://board.kolibrios.org/viewtopic.php?f=46&t=1285;
keyascii;¯à®á¬®âà ª®¤®¢ ª« ¢¨ âãàë ¢ ASCII ¨ ScanCode;asm;;http://board.kolibrios.org/viewtopic.php?f=42&t=2049;
mstate;¯à®¢¥àª  á®áâ®ï­¨ï ¬ëè¨;asm (???);;;
mtdbg;¤¥¡ ££¥à;asm;;;
scancode;®â®¡à ¦¥­¨¥ ᪠­¤®¢® ª« ¢¨è ª« ¢¨ âãàë;img; ¤«ï ࠧࠡ®âª¨;;
testcon2;;asm;;;
/programs/cmm/c--/manual_c--.htm
1,218 → 1,217
<HTML>
<HEAD><TITLE>Äîêóìåíòàöèÿ íà C--</TITLE></HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="1"></td>
<td width="1"></td>
<td width="100%">
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td bgcolor="#000000"><img src="images/-.gif" width="1" height="1"></td></tr>
<tr><td><img src="images/-.gif" width="1" height="1"></td></tr>
<tr><td bgcolor="#000000"><img src="images/-.gif" width="1" height="1"></td></tr>
<tr><td align="middle" bgcolor="#008080">
<font color="#FFFFFF" face="Times New Roman" size=3>
<strong><em>Äîêóìåíòàöèÿ íà C--.</em></strong></font>
</td></tr>
<tr><td bgcolor="#000000"><img src="images/-.gif" width="1" height="1"></td></tr>
<tr><td><img src="images/-.gif" width="1" height="1"></td></tr>
<tr><td bgcolor="#000000"><img src="images/-.gif" width="1" height="1"></td></tr>
<td width="100%">
<BODY LINK="#0000ff" VLINK="#800080" background="images/sphinx6.jpg" bgproperties="fixed">
 
<A name=contents>
<p align="center"><font color="#F000F0" face="Times New Roman" size=5><strong>
Ñîäåðæàíèå.
</strong></font></p></a>
<pre>
 
<B><FONT FACE="Courier" COLOR="#ff0000">
<A href="#intro" style="TEXT-DECORATION: none">1 Ââåäåíèå.
<html>
<head>
<title>Äîêóìåíòàöèÿ íà C--</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
body, a, pre {
font-family: 'Courier New', Courier, 'Lucida Sans Typewriter', 'Lucida Typewriter', monospace !important;
}
a {
color: #0000ff;
}
#contents a {
font-weight: bold;
text-decoration: none;
}
h1 {
color: #F000F0;
font-size: 200%;
}
h2 {
color: #f00;
font-size: 100%;
margin-bottom: 0;
}
</style>
</head>
<body LINK="#0000ff" VLINK="#800080">
<h1>Ñîäåðæàíèå</h1>
<pre>
<div id="contents">
<a href="#intro">1 Ââåäåíèå.
1.1 Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.</A>
<A href="#1.2" style="TEXT-DECORATION: none">1.2 ×òî òàêîå C--?</a>
<A href="#1.3" style="TEXT-DECORATION: none">1.3 Êàê óñòàíîâèòü C--.</a>
<a href="#1.2">1.2 ×òî òàêîå C--?</a>
<a href="#1.3">1.3 Êàê óñòàíîâèòü C--.</a>
<A name=contents2>
<A href="#2.1" style="TEXT-DECORATION: none">2. Óïðàâëåíèå êîìïèëÿöèåé.
<a href="#2.1">2. Óïðàâëåíèå êîìïèëÿöèåé.
2.1 Ïàðàìåòðû êîìàíäíîé ñòðîêè êîìïèëÿòîðà C--.</a>
<A href="#2.1.1" style="TEXT-DECORATION: none">2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.</a>
<A href="#2.1.2" style="TEXT-DECORATION: none">2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.</a>
<A href="#2.1.3" style="TEXT-DECORATION: none">2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.</a>
<A href="#2.1.4" style="TEXT-DECORATION: none">2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.</a>
<A href="#2.1.5" style="TEXT-DECORATION: none">2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.</a>
<A href="#2.1.6" style="TEXT-DECORATION: none">2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.</a>
<A href="#2.1.7" style="TEXT-DECORATION: none">2.1.7 /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.</a>
<A href="#2.1.8" style="TEXT-DECORATION: none">2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.</a>
<A href="#2.1.9" style="TEXT-DECORATION: none">2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.</a>
<A href="#2.1.10" style="TEXT-DECORATION: none">2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.</a>
<A href="#2.1.11" style="TEXT-DECORATION: none">2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.</a>
<A href="#2.1.12" style="TEXT-DECORATION: none">2.1.12 /J0 /J1 /J2.</a>
<A href="#2.1.13" style="TEXT-DECORATION: none">2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.</a>
<A href="#2.1.14" style="TEXT-DECORATION: none">2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.</a>
<A href="#2.1.15" style="TEXT-DECORATION: none">2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.</a>
<A href="#2.1.16" style="TEXT-DECORATION: none">2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.</a>
<A href="#2.1.17" style="TEXT-DECORATION: none">2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.</a>
<A href="#2.1.18" style="TEXT-DECORATION: none">2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.</a>
<A href="#2.2" style="TEXT-DECORATION: none">2.2 Äèðåêòèâû òðàíñëÿòîðà.</a>
<A href="#2.2.1" style="TEXT-DECORATION: none">2.2.1 ?ifdef/?ifndef</a>
<A href="#2.2.2" style="TEXT-DECORATION: none">2.2.2 ?initallvar</a>
<A href="#2.2.3" style="TEXT-DECORATION: none">2.2.3 ?usestartup</a>
<A href="#2.2.4" style="TEXT-DECORATION: none">2.2.4 ?startusevar</a>
<A href="#2.2.5" style="TEXT-DECORATION: none">2.2.5 ?atexit</a>
<A href="#2.2.6" style="TEXT-DECORATION: none">2.2.6 ?startuptomain</a>
<A href="#2.2.7" style="TEXT-DECORATION: none">2.2.7 ?undef</a>
<A href="#2.2.8" style="TEXT-DECORATION: none">2.2.8 ?align è ?aligncode</a>
<A href="#2.2.9" style="TEXT-DECORATION: none">2.2.9 ?pragma</a>
<a href="#2.1.1">2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.</a>
<a href="#2.1.2">2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.</a>
<a href="#2.1.3">2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.</a>
<a href="#2.1.4">2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.</a>
<a href="#2.1.5">2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.</a>
<a href="#2.1.6">2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.</a>
<a href="#2.1.7">2.1.7 /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.</a>
<a href="#2.1.8">2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.</a>
<a href="#2.1.9">2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.</a>
<a href="#2.1.10">2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.</a>
<a href="#2.1.11">2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.</a>
<a href="#2.1.12">2.1.12 /J0 /J1 /J2.</a>
<a href="#2.1.13">2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.</a>
<a href="#2.1.14">2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.</a>
<a href="#2.1.15">2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.</a>
<a href="#2.1.16">2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.</a>
<a href="#2.1.17">2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.</a>
<a href="#2.1.18">2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.</a>
<a href="#2.2">2.2 Äèðåêòèâû òðàíñëÿòîðà.</a>
<a href="#2.2.1">2.2.1 ?ifdef/?ifndef</a>
<a href="#2.2.2">2.2.2 ?initallvar</a>
<a href="#2.2.3">2.2.3 ?usestartup</a>
<a href="#2.2.4">2.2.4 ?startusevar</a>
<a href="#2.2.5">2.2.5 ?atexit</a>
<a href="#2.2.6">2.2.6 ?startuptomain</a>
<a href="#2.2.7">2.2.7 ?undef</a>
<a href="#2.2.8">2.2.8 ?align è ?aligncode</a>
<a href="#2.2.9">2.2.9 ?pragma</a>
<A name=contents3>
<A href="#3.1" style="TEXT-DECORATION: none">3. Êîíñòàíòû.
<a href="#3.1">3. Êîíñòàíòû.
3.1 ×èñëîâûå êîíñòàíòû.</a>
<A href="#3.2" style="TEXT-DECORATION: none">3.2 Ñèìâîëüíûå êîíñòàíòû.</a>
<A href="#3.3" style="TEXT-DECORATION: none">3.3 Ñòðîêîâûå êîíñòàíòû.</a>
<A href="#3.4" style="TEXT-DECORATION: none">3.4 Ïîñòîÿííûå âûðàæåíèÿ.</a>
<a href="#3.2">3.2 Ñèìâîëüíûå êîíñòàíòû.</a>
<a href="#3.3">3.3 Ñòðîêîâûå êîíñòàíòû.</a>
<a href="#3.4">3.4 Ïîñòîÿííûå âûðàæåíèÿ.</a>
<A name=contents4>
<A href="#4.1" style="TEXT-DECORATION: none">4. Âûðàæåíèÿ.
<a href="#4.1">4. Âûðàæåíèÿ.
4.1 Òèïû âûðàæåíèé.</a>
<A href="#4.2" style="TEXT-DECORATION: none">4.2 Âûðàæåíèÿ òèïà EAX/AX/AL.</a>
<A href="#4.3" style="TEXT-DECORATION: none">4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.</a>
<A href="#4.4" style="TEXT-DECORATION: none">4.4 Íå - EAX/AX/AL âûðàæåíèÿ.</a>
<A href="#4.5" style="TEXT-DECORATION: none">4.5 Óñëîâíûå âûðàæåíèÿ.</a>
<A href="#4.5.1" style="TEXT-DECORATION: none">4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.</a>
<A href="#4.5.2" style="TEXT-DECORATION: none">4.5.2 Ñëîæíûå óñëîâíûå âûðàæåíèÿ.</a>
<A href="#4.6" style="TEXT-DECORATION: none">4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.</a>
<A href="#4.7" style="TEXT-DECORATION: none">4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.</a>
<a href="#4.2">4.2 Âûðàæåíèÿ òèïà EAX/AX/AL.</a>
<a href="#4.3">4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.</a>
<a href="#4.4">4.4 Íå - EAX/AX/AL âûðàæåíèÿ.</a>
<a href="#4.5">4.5 Óñëîâíûå âûðàæåíèÿ.</a>
<a href="#4.5.1">4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.</a>
<a href="#4.5.2">4.5.2 Ñëîæíûå óñëîâíûå âûðàæåíèÿ.</a>
<a href="#4.6">4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.</a>
<a href="#4.7">4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.</a>
<A name=contents5>
<A href="#5.1" style="TEXT-DECORATION: none">5. Èäåíòèôèêàòîðû.
<a href="#5.1">5. Èäåíòèôèêàòîðû.
5.1 Ôîðìàò èäåíòèôèêàòîðà.</a>
<A href="#5.2" style="TEXT-DECORATION: none">5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.</a>
<A href="#5.3" style="TEXT-DECORATION: none">5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.</a>
<A href="#5.4" style="TEXT-DECORATION: none">5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.</a>
<a href="#5.2">5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.</a>
<a href="#5.3">5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.</a>
<a href="#5.4">5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.</a>
<A name=contents6>
<A href="#6.1" style="TEXT-DECORATION: none">6. Ïåðåìåííûå.
<a href="#6.1">6. Ïåðåìåííûå.
6.1 Òèïû ïåðåìåííûõ.</a>
<A href="#6.2" style="TEXT-DECORATION: none">6.2 Îáúÿâëåíèå ïåðåìåííûõ.</a>
<A href="#6.3" style="TEXT-DECORATION: none">6.3 Ãëîáàëüíûå ïåðåìåííûå.</a>
<A href="#6.4" style="TEXT-DECORATION: none">6.4 Ëîêàëüíûå ïåðåìåííûå.</a>
<A href="#6.5" style="TEXT-DECORATION: none">6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.</a>
<A href="#6.6" style="TEXT-DECORATION: none">6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.</a>
<A href="#6.7.1" style="TEXT-DECORATION: none">6.7 Ïåðåìåííûå òèïà float.
<a href="#6.2">6.2 Îáúÿâëåíèå ïåðåìåííûõ.</a>
<a href="#6.3">6.3 Ãëîáàëüíûå ïåðåìåííûå.</a>
<a href="#6.4">6.4 Ëîêàëüíûå ïåðåìåííûå.</a>
<a href="#6.5">6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.</a>
<a href="#6.6">6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.</a>
<a href="#6.7.1">6.7 Ïåðåìåííûå òèïà float.
6.7.1 Ôîðìàò ïåðåìåííûõ òèïà float.</a>
<A href="#6.7.2" style="TEXT-DECORATION: none">6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.</a>
<A href="#6.7.3" style="TEXT-DECORATION: none">6.7.3 Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.</a>
<A href="#6.7.4" style="TEXT-DECORATION: none">6.7.4 Ìàòåìàòè÷åñêèå îïåðàöèè.</a>
<A href="#6.7.5" style="TEXT-DECORATION: none">6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.</a>
<A href="#6.7.6" style="TEXT-DECORATION: none">6.7.6 Îïåðàöèè ñðàâíåíèÿ.</a>
<A href="#6.7.7" style="TEXT-DECORATION: none">6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.</a>
<A href="#6.8" style="TEXT-DECORATION: none">6.8 Óêàçàòåëè.</a>
<a href="#6.7.2">6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.</a>
<a href="#6.7.3">6.7.3 Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.</a>
<a href="#6.7.4">6.7.4 Ìàòåìàòè÷åñêèå îïåðàöèè.</a>
<a href="#6.7.5">6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.</a>
<a href="#6.7.6">6.7.6 Îïåðàöèè ñðàâíåíèÿ.</a>
<a href="#6.7.7">6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.</a>
<a href="#6.8">6.8 Óêàçàòåëè.</a>
<A name=contents7>
<A href="#7.1" style="TEXT-DECORATION: none">7. Àäðåñàöèÿ.
<a href="#7.1">7. Àäðåñàöèÿ.
7.1 Îòíîñèòåëüíàÿ àäðåñàöèÿ.</a>
<A href="#7.2" style="TEXT-DECORATION: none">7.2 Àáñîëþòíàÿ àäðåñàöèÿ.</a>
<a href="#7.2">7.2 Àáñîëþòíàÿ àäðåñàöèÿ.</a>
<A name=contents8>
<A href="#8.1.1" style="TEXT-DECORATION: none">8. Ðàáîòà ñ áëîêàìè äàííûõ.
<a href="#8.1.1">8. Ðàáîòà ñ áëîêàìè äàííûõ.
8.1 Ñòðóêòóðû.
8.1.1 ×òî òàêîå ñòðóêòóðû.</a>
<A href="#8.1.2" style="TEXT-DECORATION: none">8.1.2 Ñèíòàêñèñ.</a>
<A href="#8.1.3" style="TEXT-DECORATION: none">8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.</a>
<A href="#8.1.4" style="TEXT-DECORATION: none">8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.</a>
<A href="#8.1.5" style="TEXT-DECORATION: none">8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.</a>
<A href="#8.1.6" style="TEXT-DECORATION: none">8.1.6 Âëîæåííûå ñòðóêòóðû.</a>
<A href="#8.1.7" style="TEXT-DECORATION: none">8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.</a>
<A href="#8.1.8" style="TEXT-DECORATION: none">8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.</a>
<A href="#8.2" style="TEXT-DECORATION: none">8.2 Îáúåäèíåíèÿ.</a>
<A href="#8.3" style="TEXT-DECORATION: none">8.3 Êîìàíäû FROM è EXTRACT.</a>
<a href="#8.1.2">8.1.2 Ñèíòàêñèñ.</a>
<a href="#8.1.3">8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.</a>
<a href="#8.1.4">8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.</a>
<a href="#8.1.5">8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.</a>
<a href="#8.1.6">8.1.6 Âëîæåííûå ñòðóêòóðû.</a>
<a href="#8.1.7">8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.</a>
<a href="#8.1.8">8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.</a>
<a href="#8.2">8.2 Îáúåäèíåíèÿ.</a>
<a href="#8.3">8.3 Êîìàíäû FROM è EXTRACT.</a>
<A name=contents9>
<A href="#9.1" style="TEXT-DECORATION: none">9. Îïåðàòîðû.
<a href="#9.1">9. Îïåðàòîðû.
9.1 Óñëîâíûå èíñòðóêöèè.</a>
<A href="#9.2" style="TEXT-DECORATION: none">9.2 Öèêëû do{} while.</a>
<A href="#9.3" style="TEXT-DECORATION: none">9.3 Öèêëû loop, LOOPNZ, loopnz.</a>
<A href="#9.4" style="TEXT-DECORATION: none">9.4 Öèêë while, WHILE.</a>
<A href="#9.5" style="TEXT-DECORATION: none">9.5 Öèêë for, FOR.</a>
<A href="#9.6" style="TEXT-DECORATION: none">9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.</a>
<A href="#9.7" style="TEXT-DECORATION: none">9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.</a>
<A href="#9.8" style="TEXT-DECORATION: none">9.8 Îïåðàòîð ðàçðûâà break, BREAK.</a>
<A href="#9.9" style="TEXT-DECORATION: none">9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.</a>
<A href="#9.10" style="TEXT-DECORATION: none">9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.</a>
<A href="#9.11" style="TEXT-DECORATION: none">9.11 Ïåðåõîä ÷åðåç öèêëû.</a>
<A href="#9.12" style="TEXT-DECORATION: none">9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.</a>
<A href="#9.13" style="TEXT-DECORATION: none">9.13 Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.</a>
<A href="#9.14" style="TEXT-DECORATION: none">9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.</a>
<A href="#9.15" style="TEXT-DECORATION: none">9.15 Îïåðàòîð ïåðåñòàíîâêè.</a>
<A href="#9.16" style="TEXT-DECORATION: none">9.16 Îïåðàòîð îòðèöàíèÿ.</a>
<A href="#9.17" style="TEXT-DECORATION: none">9.17 Îïåðàòîð èíâåðñèè.</a>
<A href="#9.18" style="TEXT-DECORATION: none">9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.</a>
<A href="#9.19" style="TEXT-DECORATION: none">9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.</a>
<A href="#9.20" style="TEXT-DECORATION: none">9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.</a>
<A href="#9.21" style="TEXT-DECORATION: none">9.21 Îïåðàòîð sizeof.</a>
<A href="#9.22" style="TEXT-DECORATION: none">9.22 Ìåòêè ïåðåõîäà.</a>
<a href="#9.2">9.2 Öèêëû do{} while.</a>
<a href="#9.3">9.3 Öèêëû loop, LOOPNZ, loopnz.</a>
<a href="#9.4">9.4 Öèêë while, WHILE.</a>
<a href="#9.5">9.5 Öèêë for, FOR.</a>
<a href="#9.6">9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.</a>
<a href="#9.7">9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.</a>
<a href="#9.8">9.8 Îïåðàòîð ðàçðûâà break, BREAK.</a>
<a href="#9.9">9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.</a>
<a href="#9.10">9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.</a>
<a href="#9.11">9.11 Ïåðåõîä ÷åðåç öèêëû.</a>
<a href="#9.12">9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.</a>
<a href="#9.13">9.13 Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.</a>
<a href="#9.14">9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.</a>
<a href="#9.15">9.15 Îïåðàòîð ïåðåñòàíîâêè.</a>
<a href="#9.16">9.16 Îïåðàòîð îòðèöàíèÿ.</a>
<a href="#9.17">9.17 Îïåðàòîð èíâåðñèè.</a>
<a href="#9.18">9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.</a>
<a href="#9.19">9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.</a>
<a href="#9.20">9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.</a>
<a href="#9.21">9.21 Îïåðàòîð sizeof.</a>
<a href="#9.22">9.22 Ìåòêè ïåðåõîäà.</a>
<A name=contents10>
<A href="#10.1" style="TEXT-DECORATION: none">10. Àññåìáëåð.
<a href="#10.1">10. Àññåìáëåð.
10.1 Ïîääåðæêà êîìàíä àññåìáëåðà.</a>
<A href="#10.2" style="TEXT-DECORATION: none">10.2 Êëþ÷åâîå ñëîâî asm.</a>
<A href="#10.3" style="TEXT-DECORATION: none">10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.</a>
<A href="#10.4" style="TEXT-DECORATION: none">10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.</a>
<a href="#10.2">10.2 Êëþ÷åâîå ñëîâî asm.</a>
<a href="#10.3">10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.</a>
<a href="#10.4">10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.</a>
<A name=contents11>
<A href="#11.1" style="TEXT-DECORATION: none">11. Ïðîöåäóðû.
<a href="#11.1">11. Ïðîöåäóðû.
11.1 Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.</a>
<A href="#11.2" style="TEXT-DECORATION: none">11.2 Ñòåêîâûå ïðîöåäóðû.</a>
<A href="#11.3" style="TEXT-DECORATION: none">11.3 Ðåãèñòðîâûå ïðîöåäóðû.</a>
<A href="#11.4" style="TEXT-DECORATION: none">11.4 Äèíàìè÷åñêèå ïðîöåäóðû.</a>
<A href="#11.4.1" style="TEXT-DECORATION: none">11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.</a>
<A href="#11.5" style="TEXT-DECORATION: none">11.5 inline-ïðîöåäóðû.</a>
<A href="#11.5.1" style="TEXT-DECORATION: none">11.5.1 Äðóãîå ïðèìåíåíèå inline.</a>
<A href="#11.6" style="TEXT-DECORATION: none">11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.</a>
<A href="#11.7" style="TEXT-DECORATION: none">11.7 Çàìåíà return íà goto.</a>
<A href="#11.8" style="TEXT-DECORATION: none">11.8 Âîçâðàùàåìûå çíà÷åíèÿ.</a>
<A href="#11.9" style="TEXT-DECORATION: none">11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.</a>
<A href="#11.10" style="TEXT-DECORATION: none">11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.</a>
<A href="#11.11" style="TEXT-DECORATION: none">11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.</a>
<A href="#11.12" style="TEXT-DECORATION: none">11.12 Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.</a>
<A href="#11.13" style="TEXT-DECORATION: none">11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.</a>
<A href="#11.14" style="TEXT-DECORATION: none">11.14 Âñòîåííûå â êîìïèëÿòîð ïðîöåäóðû.</a>
<A href="#11.14.1" style="TEXT-DECORATION: none">11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.</a>
<A href="#11.14.2" style="TEXT-DECORATION: none">11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
<a href="#11.2">11.2 Ñòåêîâûå ïðîöåäóðû.</a>
<a href="#11.3">11.3 Ðåãèñòðîâûå ïðîöåäóðû.</a>
<a href="#11.4">11.4 Äèíàìè÷åñêèå ïðîöåäóðû.</a>
<a href="#11.4.1">11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.</a>
<a href="#11.5">11.5 inline-ïðîöåäóðû.</a>
<a href="#11.5.1">11.5.1 Äðóãîå ïðèìåíåíèå inline.</a>
<a href="#11.6">11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.</a>
<a href="#11.7">11.7 Çàìåíà return íà goto.</a>
<a href="#11.8">11.8 Âîçâðàùàåìûå çíà÷åíèÿ.</a>
<a href="#11.9">11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.</a>
<a href="#11.10">11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.</a>
<a href="#11.11">11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.</a>
<a href="#11.12">11.12 Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.</a>
<a href="#11.13">11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.</a>
<a href="#11.14">11.14 Âñòîåííûå â êîìïèëÿòîð ïðîöåäóðû.</a>
<a href="#11.14.1">11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.</a>
<a href="#11.14.2">11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
outportd.</a>
<A href="#11.14.3" style="TEXT-DECORATION: none">11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.</a>
<A href="#11.15.1" style="TEXT-DECORATION: none">11.15 Êëàññû.
<a href="#11.14.3">11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.</a>
<a href="#11.15.1">11.15 Êëàññû.
11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.</a>
<A href="#11.15.2" style="TEXT-DECORATION: none">11.15.2 Íàñëåäîâàíèå.</a>
<A href="#11.15.3" style="TEXT-DECORATION: none">11.15.3 Íàñëåäîâàíèå ïðîöåäóð.</a>
<a href="#11.15.2">11.15.2 Íàñëåäîâàíèå.</a>
<a href="#11.15.3">11.15.3 Íàñëåäîâàíèå ïðîöåäóð.</a>
<A name=contents12>
<A href="#12.1" style="TEXT-DECORATION: none">12. Òèïû âûõîäíûõ ôàéëîâ.
<a href="#12.1">12. Òèïû âûõîäíûõ ôàéëîâ.
12.1 Âûõîäíûå ôàéëû òèïà COM.</a>
<A href="#12.2" style="TEXT-DECORATION: none">12.2 Âûõîäíûå ôàéëû òèïà EXE.</a>
<A href="#12.3" style="TEXT-DECORATION: none">12.3 Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.</a>
<A href="#12.4" style="TEXT-DECORATION: none">12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.</a>
<A href="#12.5.1" style="TEXT-DECORATION: none">12.5 COM ôàéë symbiosis.
<a href="#12.2">12.2 Âûõîäíûå ôàéëû òèïà EXE.</a>
<a href="#12.3">12.3 Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.</a>
<a href="#12.4">12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.</a>
<a href="#12.5.1">12.5 COM ôàéë symbiosis.
12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?</a>
<A href="#12.5.2" style="TEXT-DECORATION: none">12.5.2 Êàê ýòî äåëàòü.</a>
<A href="#12.5.3" style="TEXT-DECORATION: none">12.5.3 Èñïîëüçîâàíèå.</a>
<A href="#12.5.4" style="TEXT-DECORATION: none">12.5.4 Çëîóïîòðåáëåíèÿ.</a>
<A href="#12.6" style="TEXT-DECORATION: none">12.6 SYS - äðàéâåðû óñòðîéñòâ.</a>
<A href="#12.7" style="TEXT-DECORATION: none">12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.</a>
<A href="#12.8.1" style="TEXT-DECORATION: none">12.8 32-áèòíûå ôàéëû.
<a href="#12.5.2">12.5.2 Êàê ýòî äåëàòü.</a>
<a href="#12.5.3">12.5.3 Èñïîëüçîâàíèå.</a>
<a href="#12.5.4">12.5.4 Çëîóïîòðåáëåíèÿ.</a>
<a href="#12.6">12.6 SYS - äðàéâåðû óñòðîéñòâ.</a>
<a href="#12.7">12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.</a>
<a href="#12.8.1">12.8 32-áèòíûå ôàéëû.
12.8.1 32-áèòíûé êîä ïîä DOS.</a>
<A href="#12.8.2" style="TEXT-DECORATION: none">12.8.2 32-áèòíûé êîä ïîä Windows.</a>
<A href="#12.8.3" style="TEXT-DECORATION: none">12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.</a>
<A href="#12.8.4" style="TEXT-DECORATION: none">12.8.4 Ñîçäàíèå DLL ïîä Windows.</a>
<A href="#12.8.5" style="TEXT-DECORATION: none">12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.</a>
<A href="#12.8.6" style="TEXT-DECORATION: none">12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.</a>
<A href="#12.9" style="TEXT-DECORATION: none">12.9 Âûõîäíûå ôàéëû äëÿ MeOS.</a>
<a href="#12.8.2">12.8.2 32-áèòíûé êîä ïîä Windows.</a>
<a href="#12.8.3">12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.</a>
<a href="#12.8.4">12.8.4 Ñîçäàíèå DLL ïîä Windows.</a>
<a href="#12.8.5">12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.</a>
<a href="#12.8.6">12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.</a>
<a href="#12.9">12.9 Âûõîäíûå ôàéëû äëÿ MeOS.</a>
<A name=contents13>
<A href="#13.1" style="TEXT-DECORATION: none">13. Ïðèëîæåíèÿ.
<a href="#13.1">13. Ïðèëîæåíèÿ.
13.1 Ïîèñê âêëþ÷àåìûõ ôàéëîâ.</a>
<A href="#13.2" style="TEXT-DECORATION: none">13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.</a>
<A href="#13.3" style="TEXT-DECORATION: none">13.3 C--.ini ôàéë.</a>
<A href="#13.4" style="TEXT-DECORATION: none">13.4 startup.h-- ôàéë.</a>
<A href="#13.5" style="TEXT-DECORATION: none">13.5 mainlib.ldp ôàéë.</a>
<A href="#13.6" style="TEXT-DECORATION: none">13.6 C-- ñèìâîëû.</a>
</FONT></B>
<a href="#13.2">13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.</a>
<a href="#13.3">13.3 C--.ini ôàéë.</a>
<a href="#13.4">13.4 startup.h-- ôàéë.</a>
<a href="#13.5">13.5 mainlib.ldp ôàéë.</a>
<a href="#13.6">13.6 C-- ñèìâîëû.</a>
</div>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=intro>1. Âñòóïëåíèå.
<h2 id=intro>1. Âñòóïëåíèå.
 
1.1 Èñòîðèÿ ñîçäàíèÿ è ðàçâèòèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Àâòîðîì ÿçûêà SPHINX C-- ÿâëÿåòñÿ Peter Cellik (CANADA). Ïîñëåäíÿÿ
àâòîðñêàÿ âåðñèÿ SPHINX C-- v0.203 îò 28.Oct.96. Ê ñîæàëåíèþ àâòîð
251,12 → 250,12
ïðåäëîæåíèå áóäåò öåííûì (íà ìîé âçãëÿä, òàê ÷òî Âàì ïðèäåòñÿ ñâîå
ïðåäëîæåíèå õîðîøî àðãóìåíòèðîâàòü) è åãî áóäåò âîçìîæíûì ðåàëèçîâàòü, îíî
áåç ñîìíåíèÿ íàéäåò ìåñòî â êîìïèëÿòîðå.
<A href="#contents" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=1.2>
<h2 id=1.2>
1.2 ×òî òàêîå C--?
</A></B></FONT><FONT FACE="Courier">
</h2>
 
C-- áûë ðàçðàáîòàí, äëÿ òîãî ÷òîáû ñòðîèòü ìàëåíüêèå è áûñòðûå
ïðîãðàììû. Ýòî íàèáîëåå ïîäõîäèò äëÿ ñîçäàíèÿ ðåçèäåíòíûõ ïðîãðàìì (TSR),
280,12 → 279,12
C-- ðàçðàáîòàí òîëüêî äëÿ èñïîëüçîâàíèÿ íà êîìïüþòåðàõ ñ ïðîöåññîðàìè
ñîâìåñòèìûìè ñ ñåìåéñòâîì 80x86. Êîìïèëÿòîð ìîæåò ðàáîòàòü òîëüêî ñ
îïåðàöèîííûìè ñèñòåìàìè DOS è ñåìåéñòâîì Windows.
<A href="#contents" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=1.3>
<h2 id=1.3>
1.3 Êàê óñòàíîâèòü C--.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êîìïèëÿòîðó C-- äëÿ ðàáîòû íóæíû ñîâñåì íåçíà÷èòåëüíûå ðåñóðñû:
ïðîöåññîð 386 èëè ëó÷øå, ÷óòü áîëåå 1 Ìá äèñêîâîãî ïðîñòðàíñòâà è 4Ìá
320,14 → 319,14
êîìïèëÿòîðà íåò. Ñóùåñòâóåò íåñêîëüêî äðóãèõ ñïîñîáîâ, óêàçàòü êîìïèëÿòîðó
ìåñòî ðàñïîëîæåíèÿ áèáëèîòåê. Ïîýòîìó îïðåäåëÿòü èëè íå îïðåäåëÿòü
ïåðåìåííóþ îêðóæåíèÿ äåëî âàøåãî âêóñà è ïðèâû÷åê.
<A href="#contents" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1>
<h2 id=2.1>
2. Óïðàâëåíèå êîìïèëÿöèåé.
 
2.1 Ïàðàìåòðû êîìàíäíîé ñòðîêè êîìïèëÿòîðà C--.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ôîðìàò êîìàíäíîé ñòðîêè âûçîâà êîìïèëÿòîðà C--:
 
498,12 → 497,12
 
Ïàðàìåòðû êîìàíäíîé ñòðîêè ìîæíî ïèñàòü êàê áîëüøèìè, òàê è
ìàëåíüêèìè áóêâàìè.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.1>
<h2 id=2.1.1>
2.1.1 /ON - Îïòèìèçàöèÿ ÷èñëîâûõ âûðàæåíèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðè âêëþ÷åíèè â êîìàíäíóþ ñòðîêó îïöèè <b>/ON</b> èëè â ôàéë C--.INI ñòðî÷êè
<b>ON</b>, êîìïèëÿòîð áóäåò àíàëèçèðîâàòü îïåðàöèè íàä ÷èñëàìè è ãäå ýòî
543,12 → 542,12
AX = AX / 16;
AX = AX * 16;
var = AX;
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.2>
<h2 id=2.1.2>
2.1.2 /DE - Âðåìåííîå ðàñøèðåíèå ðàçðÿäíîñòè ïåðåìåííîé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êàê èçâåñòíî, ïîñëå óìíîæåíèÿ ìîæåò ïðîèçîéòè ïåðåïîëíåíèå, ò.å
ðàçðÿäíîñòü ðåçóëüòàòà ìîæåò ïðåâûñèòü ðàçðÿäíîñòü èñõîäíûõ îïåðàíäîâ è
572,12 → 571,12
åñëè çíà÷åíèÿ ïåðåìåííûõ b = 0xC000, c = 0x1000, d=0x10, ïîñëå çàïóñêà
òàêàÿ ïðîãðàììà çàâèñíåò ñ ñîîáùåíèåì î òîì, ÷òî ïðîèçîøëî ïåðåïîëíåíèå
ïðè äåëåíèè.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.3>
<h2 id=2.1.3>
2.1.3 /ARGC - Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îòëè÷èå ýòîãî îáðàáîò÷èêà êîìàíäíîé ñòðîêè îò <b>parsecommandline</b>
çàêëþ÷àåòñÿ â òîì, ÷òî ïðè âûçîâå <b>PARAMSTR(0)</b>; Âû ïîëó÷èòå àäðåñ ñòðîêè â
589,12 → 588,12
Àëüòåðíàòèâíûé îáðàáîò÷èê êîìàíäíîé ñòðîêè âêëþ÷àåòñÿ äèðåêòèâîé
<b>?argc TRUE</b> èëè èç êîìàíäíîé ñòðîêè êîìïèëÿòîðà êëþ÷îì <b>/argc</b> èëè
ñòðî÷êîé <b>argc</b> â ôàéëå C--.INI.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.4>
<h2 id=2.1.4>
2.1.4 /OST - ñëèÿíèå îäèíàêîâûõ ñòðîêîâûõ êîíñòàíò.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè ýòîò ðåæèì îïòèìèçàöèè áóäåò àêòèâèçèðîâàí, òî êîìïèëÿòîð áóäåò
çàïîìèíàòü âñå ñòðîêîâûå êîíñòàíòû è ïðè îáíàðóæåíèè îäèíàêîâûõ â êîä
609,7 → 608,7
//îïòèìèçàöèè.
 
void proc(){
WRITESTR("test"); // ýòà ñòðîêà áóäåò ó÷àñòâîâàòü â îïòèìèçàöèè.
WRITESTR("test"); // ýòà ñòðîêà áóäåò ó÷àñòâîâàòü â îïòèìèçàöèè.
AX="test"; // ïåðåìåííîé AX áóäåò ïðèñâîåí àäðåñ ñòðîêè,
// êîòîðàÿ áûëà âñòàâëåíà â êîä ïðîãðàììû â
// ïðåäûäóùåé ñòðîêå.
621,12 → 620,12
Âêëþ÷àåòñÿ ýòîò ðåæèì îïòèìèçàöèè ëèáî ñ êîìàíäíîé ñòðîêè <b>/ost</b>, ëèáî
äèðåêòèâîé <b>#pragma option ost</b>, ëèáî ñòðîêîé â ôàéëå c--.ini - <b>ost</b>.
Îòêëþ÷èòü, âêëþ÷åííûé ðàíåå, ýòîò ðåæèì ìîæíî äèðåêòèâîé <b>#pragma option ost-</b>.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.5>
<h2 id=2.1.5>
2.1.5 /D - óñòàíîâêà èäåíòèôèêàòîðà â TRUE èç êîìàíäíîé ñòðîêè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè Âû íàïèñàëè ïðîãðàììó, êîòîðàÿ ìîæåò êîìïèëèðîâàòüñÿ ïî ðàçíîìó,
â çàâèñèìîñòè îò ñîñòîÿíèÿ íåêîòîðûõ èäåíòèôèêàòîðîâ (èñïîëüçóåòñÿ ðåæèì
636,12 → 635,12
ïðîãðàììû.
 
Èäåíòèôèêàòîð ââîäèòñÿ ñ êîìàíäíîé ñòðîêè êëþ÷îì <b>/d=idname</b>.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.6>
<h2 id=2.1.6>
2.1.6 /IA - óïðîùåííûé ââîä àññåìáëåðíûõ èíñòðóêöèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñòàëî âîçìîæíûì èñïîëüçîâàòü àññåìáëåðíûå èíñòðóêöèè áåç ïðåôèêñà <b>$</b>
è âíå áëîêà <b>asm</b>. Ýòîò ðåæèì âêëþ÷àåòñÿ: ñ êîìàíäíîé ñòðîêè îïöèåé <b>/ia</b>;
652,12 → 651,12
êà÷åñòâå èìåí ïåðåìåííûõ èëè ïðîöåäóð. Àññåìáëåðíûå èíñòðóêöèè êîìïèëÿòîð
ðàñïîçíàåò íåçàâèñèìî îò òîãî, íàïèñàíû îíè ìàëåíüêèìè èëè áîëüøèìè
áóêâàìè.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.7>
<h2 id=2.1.7>
2.1.7 /CRI - ïðîïóñê ïîâòîðíî âêëþ÷àåìîãî ôàéëà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
×àùå âñåãî, ïîâòîðíî âêëþ÷àòü ôàéë â êîìïèëèðóåìûé ïðîåêò, íåò
íåîáõîäèìîñòè, íî ýòî èíîãäà ïðîèñõîäèò èç-çà òîãî, ÷òî íåêîòîðûå
671,12 → 670,12
<b>/cri-</b>, êîòîðàÿ çàïðåùàåò êîìïèëÿòîðó äåëàòü ïðîâåðêó íà ïîâòîðíîå
âêëþ÷åíèå. Ñîîòâåòñòâåííî, äëÿ c--.ini ôàéëà, ýòî ìîæíî ñäåëàòü ñòðîêîé
<b>cri-</b> èëè äèðåêòèâîé â êîìïèëèðóåìîì ôàéëå - <b>#pragma option cri-</b>.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.8>
<h2 id=2.1.8>
2.1.8 /IND - èìïîðò èìåí ïðîöåäóð èç DLL.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè Âû õîòèòå â ñâîåé ïðîãðàììå èñïîëüçîâàòü DLL, äëÿ êîòîðîé íåò
çàãîëîâî÷íîãî ôàéëà ñ îïèñàíèåì ïðîöåäóð, òî êîìïèëÿòîð ìîæåò
692,12 → 691,12
êîíòðîëèðîâàòü ÷èñëî ïàðàìåòðîâ ïåðåäàâàåìûõ ïðîöåäóðå. È, ê ñîæàëåíèþ,
êîìïèëÿòîð óìååò èìïîðòèðîâàòü èìåíà èç áèáëèîòåê èìåþùèõ òîëüêî ôîðìàò
PE-ôàéëà.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.9>
<h2 id=2.1.9>
2.1.9 /WS - çàäàòü èìÿ stub ôàéëà äëÿ ïðîãðàìì ïîä windows.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êàê èçâåñòíî, â ïðîãðàììàõ ïîä windows åñòü DOS çàãëóøêà, íàçûâàåìàÿ
stub, êîòîðîé ïåðåäàåòñÿ óïðàâëåíèå ïðè çàïóñêå òàêîé ïðîãðàììû â ÷èñòîì
711,12 → 710,12
 
Òàêèì îáðàçîì, ó Âàñ ïîÿâèëàñü âîçìîæíîñòü ñîçäàâàòü ïðîãðàììû,
ðàáîòàþùèå è ïîä DOS è ïîä windows.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.10>
<h2 id=2.1.10>
2.1.10 /WBSS - ðàçìåñòèòü íå èíèöèàëèçèðîâàííûå äàííûå â îòäåëüíîé ñåêöèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñåêöèÿ <b>.bss</b> ñîçäàåòñÿ àâòîìàòè÷åñêè ïðè êîìïèëÿöèè ïðîãðàìì ñ êëþ÷îì
<b>/w32</b>. Åñëè Âû õîòèòå èìåòü ýòó ñåêöèþ è ïðè êîìïèëÿöèè ïðîãðàìì ñ
728,12 → 727,12
ôàéëà. Òåîðåòè÷åñêè, äëÿ ïðîöåññîðîâ, ó êîòîðûõ åñòü îòäåëüíûé êýø äëÿ
äàííûõ, èñïîëüçîâàíèå ñåêöèè <b>.bss</b>, äîëæíî ïîâûøàòü ñêîðîñòü ðàáîòû
ïðîãðàììû.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.11>
<h2 id=2.1.11>
2.1.11 /DBG - ñîçäàíèå îòëàäî÷íîé èíôîðìàöèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè ïðè êîìïèëÿöèè ïðîãðàììû â êîìàíäíóþ ñòðîêó äîáàâèòü êëþ÷ <b>/dbg</b>,
èëè â ôàéë êîíôèãóðàöèè c--.ini äîáàâèòü ñòðîêó <b>dbg</b>, òî êîìïèëÿòîð ïîñëå
757,12 → 756,12
äåëàòü. Åñëè Âû çíàåòå, êàê ñîçäàâàòü 32-áèòíûå ïðîãðàììû ñ
DOS-ðàñøèðèòåëåì êîìïèëÿòîðàìè ôèðìû Borland ñ âêëþ÷åíèåì â íèõ îòëàäî÷íîé
èíôîðìàöèè, òî ðàññêàæèòå ìíå. À ÿ ïîïðîáóþ ïðèìåíèòü ýòî äëÿ C--.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.12>
<h2 id=2.1.12>
2.1.12 /J0 /J1 /J2
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèíîíèìîì êëþ÷åé <b>/J0 /J1 /J2</b> ÿâëÿåòñÿ äèðåêòèâà <b>#jumptomain</b> ñ
ïàðàìåòðàìè <b>NONE, SHORT è NEAR</b> ñîîòâåòñòâåííî.
811,12 → 810,12
{
...
}
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.13>
<h2 id=2.1.13>
2.1.13 /LST - Ñîçäàíèå àññåìáëåðíîãî ëèñòèíãà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñ ïîìîùüþ äîïîëíèòåëüíîé îïöèè êîìàíäíîé ñòðîêè <b>-lst</b> Âû ìîæåòå
ïîëó÷èòü âìåñòå ñ èñïîëíèòåëüíûì ôàéëîì è åãî àññåìáëåðíûé ëèñòèíã.
825,12 → 824,12
 
Àññåìáëåðíûé ëèñòèíã ñîçäàåòñÿ íåçàâèñèìîé îò êîìïèëÿòîðà ÷àñòüþ êîäà
ñ èñïîëüçîâàíèåì èíôîðìàöèè íàêàïëèâàåìîé ïðè êîìïèëÿöèè ïðîãðàììû.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.14>
<h2 id=2.1.14>
2.1.14 /ENV - Ñîõðàíåíèå àäðåñà ïåðåìåííûõ îêðóæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè ïðè êîìïèëÿöèè ïðîãðàììû Âû â êîìàíäíóþ ñòðîêó äîáàâèòå îïöèþ
<b>-ENV</b> èëè â ôàéë c--.ini ñòðîêà <b>ENV</b>, òî êîìïèëÿòîð äîáàâèò â âàøó
838,12 → 837,12
àäðåñ ïåðåìåííûõ îêðóæåíèÿ çàïóñêàåìîé ïðîãðàììû. Äëÿ ïðîãðàìì ïîä
Windows ýòî áóäåò ïîëíûé àäðåñ, à äëÿ îñòàëüíûõ â ýòîé ïåðåìåííîé áóäåò
ñîõðàíÿòüñÿ òîëüêî àäðåñ ñåãìåíòà.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.15>
<h2 id=2.1.15>
2.1.15 /CPA - Î÷èñòêà post-îáëàñòè äàííûõ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïåðåìåííûå, êîòîðûì â òåëå ïðîãðàììû íå áûëî ïðèñâîåíî íèêàêîå
çíà÷åíèå, íå âêëþ÷àþòñÿ â òåëî ñêîìïèëèðîâàííîé ïðîãðàììû. Äëÿ íèõ
853,12 → 852,12
Åñëè Âàì íåîáõîäèìî, ÷òîáû íåèíèöèàëèçèðîâàííûå ïåðåìåííûå ïðè
çàãðóçêå ïðîãðàììû âñåãäà ñîäåðæàëè îäíî è òîæå çíà÷åíèå (íîëü) -
âêëþ÷èòå â êîìàíäíóþ ñòðîêó îïöèþ <b>-CPA</b>.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.16>
<h2 id=2.1.16>
2.1.16 /W - âûâîä ïðåäóïðåæäåíèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïî óìîë÷àíèþ êîìïèëÿòîð íå âûâîäèò ïðåäóïðåæäåíèÿ è ìíîãèå äàæå íå
ïîäîçðåâàþò î ñóùåñòâîâàíèè òàêîé ïîëåçíîé îïöèè. Â C-- ïðåäóïðåæäåíèÿ
879,12 → 878,12
wf=warning
 
Âû áóäåòå ïîëó÷àòü â ôàéëå <b>warning</b> ïðåäóïðåæäåíèÿ.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.17>
<h2 id=2.1.17>
2.1.17 /NW - Âûáîðî÷íîå îòêëþ÷åíèå òèïîâ ïðåäóïðåæäåíèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñåé÷àñ êîìïèëÿòîð ìîæåò âûäàâàòü 12 òèïîâ ïðåäóïðåæäåíèé è, èíîãäà èõ
áûâàåò òàê ìíîãî, ÷òî ñòàíîâèòñÿ òðóäíî â íèõ îðèåíòèðîâàòüñÿ. Òåïåðü
905,12 → 904,12
10 - Return flag was destroyed
11 - Code may not be executable
12 - Don't use local/parametric values in inline procedures
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.1.18>
<h2 id=2.1.18>
2.1.18 /WSI - êîðîòêàÿ òàáëèöà èìïîðòà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Òàáëèöà èìïîðòà îáû÷íî ñîñòîèò â ñâîþ î÷åðåäü èç ÷åòûðåõ òàáëèö. Äâå
òàáëèöû <b>LookUp Table</b> è <b>Import Address Table</b> àáñîëþòíî îäèíàêîâû.
920,12 → 919,12
òîëüêî <b>Import Address Table</b>). Òåì ñàìûì ó Âàñ ïîëó÷èòñÿ áîëåå êîìïàêòíàÿ
òàáëèöà èìïîðòà, ÷òî ïðèâåäåò, â íåêîòîðûõ ñëó÷àÿõ, ê ñîçäàíèþ áîëåå
êîìïàêòíîãî âûõîäíîãî ôàéëà.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2>
<h2 id=2.2>
2.2 Äèðåêòèâû òðàíñëÿòîðà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
C-- íå ñîäåðæèò ïðåïðîöåññîð. Òåì íå ìåíåå, åñòü íåñêîëüêî ôóíêöèé
î÷åíü ïîõîæèõ íà ôóíêöèè C ïðåïðîöåññîðà.
939,7 → 938,7
 
<b>? aligncode</b> [val] Âûðîâíÿòü êîä ïðîãðàììû íà ÷åòíûé ïî
óìîë÷àíèþ èëè íà àäðåñ êðàòíûé âåëè÷èíå <b>val</b>.
Çàïîëíåíèå ïðîèçâîäèòñÿ êîäîì 0x90.
Çàïîëíåíèå ïðîèçâîäèòñÿ êîäîì 0x90.
 
<b>? aligner</b> (aligner value) îïðåäåëèòü çíà÷åíèå áàéòà âñòàâêè.
 
1129,12 → 1128,12
<b>? usestartup</b> ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè
ïàìÿòè, çàíèìàåìûå êîäîì íà÷àëüíîé
èíèöèàëèçàöèè ïðîãðàììû.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.1>
<h2 id=2.2.1>
2.2.1 ?ifdef/?ifndef
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ðàíåå äèðåêòèâà <b>?ifdef</b> ñðàáàòûâàëà íà íàëè÷èå êîíñòàíòû íåçàâèñèìî
îò çíà÷åíèÿ åå âåëè÷èíû, à äèðåêòèâà <b>?ifndef</b> ñðàáàòûâàëà íà îòñóòñòâèå
1150,7 → 1149,7
Åñòü âîçìîæíîñòü ïðîâåðêè òèïà CPU äëÿ êîòîðîãî âåäåòñÿ êîìïèëÿöèÿ.
Äîïóñòèìûå âàðèàíòû ñèíòàêñèñà:
 
?ifdef cpu > 1 //åñëè ïðîãðàììà êîìïèëèðóåòñÿ äëÿ CPU âûøå 80186
?ifdef cpu > 1 //åñëè ïðîãðàììà êîìïèëèðóåòñÿ äëÿ CPU âûøå 80186
?ifndef cpu >= 2 // -------//------------- íå áîëüøå èëè ðàâíî 80286
?ifdef cpu == 3 // -------//------------- ðàâíî 80386
?ifdef cpu != 0 // -------//------------- íå ðàâåí 8086
1159,12 → 1158,12
 
Ýòà äèðåêòèâà ïîçâîëèò Âàì ïèñàòü îäíó ïðîöåäóðó äëÿ ðàçëè÷íûõ òèïîâ
CPU.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.2>
<h2 id=2.2.2>
2.2.2 ?initallvar
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèðåêòèâîé <b>?initallvar TRUE</b> âêëþ÷àåòñÿ ðåæèì ïðè êîòîðîì âñåì
íåèíèöèàëèçèðîâàííûì ïåðåìåííûì áóäåò ïðèñâîåíî íóëåâîå çíà÷åíèå è îíè
1174,12 → 1173,12
 
Ïàðàìåòð FALSE ýòîé äèðåêòèâû îòêëþ÷àåò ýòîò ðåæèì.
Ïî óìîë÷àíèþ ýòà äèðåêòèâà óñòàíîâëåíà â FALSE.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.3>
<h2 id=2.2.3>
2.2.3 ?usestartup
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèðåêòèâà <b>?usestartup</b> ðàçðåøàåò êîìïèëÿòîðó èñïîëüçîâàòü ÿ÷åéêè êîäà
íà÷àëüíîé èíèöèàëèçàöèè ïðîãðàììû (startup) äëÿ ïîñëåäóþùåãî ðàçìåùåíèÿ â
1188,12 → 1187,12
ðåçèäåíòíûõ.
 
Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.4>
<h2 id=2.2.4>
2.2.4 ?startusevar
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèðåêòèâîé <b>?startusevar</b> ìîæíî óêàçàòü íà÷àëüíûé àäðåñ ñ êîòîðîãî
êîìïèëÿòîð áóäåò ðàñïðåäåëÿòü ïàìÿòü äëÿ íåèíèöèàëèçèðîâàííûõ ïåðåìåííûõ.
1203,12 → 1202,12
ðåçèäåíòíûõ, òàê è äëÿ îáû÷íûõ ïðîãðàìì.
 
Ýòó äèðåêòèâó ïðèìåíÿþò òîëüêî äëÿ ãåíåðàöèè *.COM ôàéëîâ.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.5>
<h2 id=2.2.5>
2.2.5 ?atexit
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèðåêòèâà <b>?atexit</b> äîáàâëÿåò â startup ïðîãðàììû êîä ïîääåðæêè
ïðîöåäóðû <b>ATEXIT</b>, ðåçåðâèðóåò ìåñòî äëÿ õðàíåíèÿ 16 àäðåñîâ ïðîöåäóð è
1221,12 → 1220,12
 
Âñåãî ìîæíî çàðåãèñòðèðîâàòü äî 16 ïðîöåäóð. Ïðîöåäóðû âûçûâàþòñÿ â
ïîðÿäêå îáðàòíîì ïîðÿäêó èõ ðåãèñòðàöèè.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.6>
<h2 id=2.2.6>
2.2.6 ?startuptomain
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïî ýòîé äèðåêòèâå êîìïèëÿòîð â íà÷àëå ôàéëà äåëàåò <b>jmp</b> íà íà÷àëî
ïðîöåäóðû main(). Ïåðåä íà÷àëîì êîìïèëÿöèè ýòîé ïðîöåäóðû êîìïèëÿòîð
1236,22 → 1235,22
êîìïèëÿöèè ðåçèäåíòíûõ ïðîãðàìì (TSR).
 
Äèðåêòèâà ?startuptomain ðàáîòàåò òîëüêî ïðè êîìïèëÿöèè com-ôàéëîâ.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.7>
<h2 id=2.2.7>
2.2.7 ?undef
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòà äèðåêòèâà óíè÷òîæàåò êîíñòàíòû îáúÿâëåííûå äèðåêòèâîé <b>?define</b>. Åå
ìîæíî ïðèìåíÿòü äëÿ èçìåíåíèÿ â ïðîöåññå êîìïèëÿöèè çíà÷åíèÿ êàêîé-íèáóäü
êîíñòàíòû.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.8>
<h2 id=2.2.8>
2.2.8 ?align è ?aligncode
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- ñóùåñòâóåò äèðåêòèâà <b>?align</b>, êîòîðàÿ äåëàåò îäíîêðàòíîå
âûðàâíèâàíèå äàííûõ íà ÷åòíûé àäðåñ. Íî åñëè ê ýòîé äèðåêòèâå äîáàâèòü
1270,12 → 1269,12
äèðåêòèâó ìîæíî ïðèìåíÿòü è âíóòðè èñïîëíÿåìîãî êîäà. Íàïðèìåð, åñëè Âû
õîòèòå ïîëó÷èòü áûñòðûé êîä íà 486 ïðîöåññîðå, òî ðåêîìåíäóåòñÿ äåëàòü
âûðàâíèâàíèå íà÷àëà ïðîöåäóð è öèêëîâ íà àäðåñ êðàòíûé 16.
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=2.2.9>
<h2 id=2.2.9>
2.2.9 ?pragma
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèðåêòèâà <b>#pragma</b> ýòî ìíîãîôóíêöèîíàëüíàëüíàÿ äèðåêòèâà, êîòîðàÿ â
ñâîþ î÷åðåäü èìååò ñâîè äèðåêòèâû:
1330,14 → 1329,14
END
 
#pragma resource end
<A href="#contents2" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents2"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=3.1>
<h2 id=3.1>
3. Êîíñòàíòû.
 
3.1 ×èñëîâûå êîíñòàíòû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðåäñòàâëåíèå ÷èñëîâûõ êîíñòàíò â âèäå äåñÿòè÷íûõ ÷èñåë (÷èñåë ñ
îñíîâàíèåì 10) è øåñòíàäöàòåðè÷íûõ ÷èñåë (îñíîâàíèå ñ÷èñëåíèÿ 16) ïîëíîñòüþ
1382,12 → 1381,12
 
Ýòè ñóôôèêñû íå çàâèñÿò îò ðåãèñòðà, ò.å. èõ ìîæíî ïèñàòü êàê
ìàëåíüêèìè, òàê è áîëüøèìè áóêâàìè.
<A href="#contents3" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents3"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=3.2>
<h2 id=3.2>
3.2 Ñèìâîëüíûå êîíñòàíòû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îäèíî÷íûå ñèìâîëüíûå êîíñòàíòû, êàê è â <b>C</b>, äîëæíû çàêëþ÷àòüñÿ â
îäèíî÷íûå êàâû÷êè <b>'</b>.
1434,12 → 1433,12
ñèìâîëîâ. Äëÿ ìíîãîáóêâåííûõ ñèìâîëüíûõ êîíñòàíò ïåðâûé ñèìâîë
ñîîòâåòñòâóåò ñòàðøèì ðàçðÿäàì, òàêèì îáðàçîì, çíà÷åíèå äëÿ <b>ab</b> áóäåò
çàêîäèðîâàíî êàê <b>a*256+b</b>.
<A href="#contents3" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents3"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=3.3>
<h2 id=3.3>
3.3 Ñòðîêîâûå êîíñòàíòû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñòðîêîâûå êîíñòàíòû, êàê è â C, çàêëþ÷àþòñÿ â äâîéíûå êàâû÷êè (").
Ñïåöèàëüíûå ñèìâîëû âíóòðè ñòðîê îáîçíà÷àþòñÿ òàê æå, êàê è â ñèìâîëüíûõ
1451,12 → 1450,12
 íàñòîÿùåå âðåìÿ íàèáîëüøàÿ äëèíà ñòðîêîâîé êîíñòàíòû - 2048 ñèìâîëîâ,
âêëþ÷àÿ ñèìâîë-îãðàíè÷èòåëü 0, òàêèì îáðàçîì, ìàêñèìóì 2047 çíà÷àùèõ
ñèìâîëîâ.
<A href="#contents3" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents3"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=3.4>
<h2 id=3.4>
3.4 Ïîñòîÿííûå âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïîñòîÿííîå âûðàæåíèå - îäèíî÷íàÿ ÷èñëîâàÿ êîíñòàíòà èëè íåñêîëüêî
÷èñëîâûõ êîíñòàíò, ñâÿçàííûõ ìåæäó ñîáîé îïåðàòîðàìè. ×èñëîâîå çíà÷åíèå
1474,25 → 1473,25
1 * 2 * 3 / 2 + 4 // ðàâíÿåòñÿ 7
Ïðèìåðû ñ ïðèìåíåíèåì âåùåñòâåííûõ ÷èñåë:
3.23*1.53+2.0E2 // ðàâíÿåòñÿ 204.9419
<A href="#contents3" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents3"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.1>
<h2 id=4.1>
4. Âûðàæåíèÿ.
 
4.1 Òèïû âûðàæåíèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èìåþòñÿ òðè òèïà âûðàæåíèé â C--, íå ñ÷èòàÿ ïîñòîÿííûõ âûðàæåíèé. Ýòî
âûðàæåíèÿ òèïà <b>EAX/AX/AL</b>, âûðàæåíèÿ òèïà <b>íåEAX/AX/AL</b> è óñëîâíûå âûðàæåíèÿ.
Âñå C-- âûðàæåíèÿ âû÷èñëÿþòñÿ ñëåâà íàïðàâî, íåçàâèñèìî îò ñòàðøèíñòâà
âõîäÿùèõ â âûðàæåíèå ìàòåìàòè÷åñêèõ îïåðàöèé.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.2>
<h2 id=4.2>
4.2 Âûðàæåíèÿ òèïà EAX/AX/AL.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòîò òèï âûðàæåíèé ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà åãî ðåçóëüòàò ìîæåò áûòü
ñîõðàíåí â ïåðåìåííîé â ïàìÿòè èëè â ðåãèñòðå <b>EAX</b> èëè <b>AX</b> èëè <b>AL</b>.
1505,12 → 1504,12
 
Åñëè ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â ïåðåìåííûõ òèïà <b>dword, long</b> èëè
<b>float</b>, èñïîëüçóåòñÿ íîòàöèÿ <b>EAX</b>.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.3>
<h2 id=4.3>
4.3 Âûðàæåíèÿ èñïîëüçóþùèå ïîëó÷àòåëü ïðè âû÷èñëåíèè âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè â ïðàâîé ÷àñòè âûðàæåíèÿ èñïîëüçóåòñÿ ïåðåìåííàÿ ÿâëÿþùàÿñÿ
îäíîâðåìåííî è ïðèåìíèêîì, òî òàêèå âûðàæåíèÿ äàþò ðàçëè÷íûå ðåçóëüòàòû â
1524,12 → 1523,12
var = BX = 2;
var = 3 + var; // ðåçóëüòàòîì áóäåò 5
BX = 3 + BX; // ðåçóëüòàòîì áóäåò 6
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.4>
<h2 id=4.4>
4.4 Íå - EAX/AX/AL âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòîò òèï âûðàæåíèé ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà åãî ðåçóëüòàò äîëæåí
áûòü ñîõðàíåí â ëþáîì äðóãîì ðåãèñòðå, îòëè÷íîì îò àêêóìóëÿòîðà <b>EAX, AX</b>
1561,12 → 1560,12
÷èñëà: 0, 1, 2, 4, 8, 16, 32, 64 è 128. Âñå ýòè îãðàíè÷åíèÿ ñâÿçàíû ñî
ñòðåìëåíèåì íå ðàçðóøàòü äðóãèå ðåãèñòðû ïðè èñïîëüçîâàíèè <b>íå-EAX/AX/AL</b>
âûðàæåíèé.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.5>
<h2 id=4.5>
4.5 Óñëîâíûå âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Óñëîâíûå âûðàæåíèÿ - âûðàæåíèÿ, ðåçóëüòàòîì âû÷èñëåíèÿ êîòîðûõ ÿâëÿåòñÿ
ëîãè÷åñêîå çíà÷åíèå äà èëè íåò, èñïîëüçóåìîå â îïåðàòîðå <b>if</b> è öèêëàõ <b>do {}</b>
1575,22 → 1574,22
Èìåþòñÿ äâà òèïà óñëîâíûõ âûðàæåíèé, ïðîñòûå è ñëîæíûå.
 
Âîçìîæíî ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.5.1>
<h2 id=4.5.1>
4.5.1 Ïðîñòûå óñëîâíûå âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðîñòûå óñëîâíûå âûðàæåíèÿ - îäèíî÷íàÿ ëåêñåìà èëè âûðàæåíèå, êîòîðîå
ïðèìåò çíà÷åíèå äà, åñëè ðàñ÷åòíîå çíà÷åíèå îòëè÷íî îò íóëÿ, èëè çíà÷åíèå
íåò, åñëè ðàñ÷åòíîå çíà÷åíèå ðàâíî íóëþ.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.5.2>
<h2 id=4.5.2>
4.5.2 Ñëîæíûå óñëîâíûå âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñëîæíûå óñëîâíûå âûðàæåíèÿ èìåþò ñëåäóþùóþ ôîðìó:
 
1622,12 → 1621,12
(x+y >= x-y) // ïðàâàÿ ÷àñòü íå ÿâëÿåòñÿ îäèíî÷íîé ëåêñåìîé èëè
ïîñòîÿííûì âûðàæåíèåì.
(Z = y) // âìåñòî == îøèáî÷íî ïîñòàâëåí =
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.6>
<h2 id=4.6>
4.6 Èçìåíåíèå òèïà âûðàæåíèÿ ïðè ïðèñâàèâàíèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè ïîñëå çíàêà ðàâåíñòâà íàïèñàòü òèï îòëè÷íûé îò òèïà âû÷èñëÿåìîé
ïåðåìåííîé, òî âñå ïåðåìåííûå ó÷àñòâóþùèå â ïðîöåññå âû÷èñëåíèÿ, áóäóò
1649,12 → 1648,12
òî ïåðåìåííûå a, b, è c â ýòîì ïðèìåðå ïåðåä âû÷èñëåíèåì áóäóò
ïðåîáðàçîâàíû ê òèïó <b>long</b>, à êîíå÷íûé ðåçóëüòàò áóäåò ïðåîáðàçîâàí ê òèïó
ïåðåìåííîé i - <b>int</b>.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=4.7>
<h2 id=4.7>
4.7 Âû÷èñëåíèå â ðåãèñòðû EAX/AX/AL ñî çíàêîì.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïî óìîë÷àíèþ âñå âû÷èñëåíèÿ â ðåãèñòðû ïðîèçâîäÿòñÿ êàê ñ áåç çíàêîâûìè
âåëè÷èíàìè.
1674,14 → 1673,14
Îáðàùàþ âàøå âíèìàíèå, ÷òî äëÿ ðåãèñòðà <b>AL</b> ìîæíî èñïîëüçîâàòü òîëüêî
ìîäèôèêàòîð <b>char</b>, äëÿ <b>AX</b> ñîîòâåòñòâåííî òîëüêî <b>int</b>, à äëÿ <b>EAX - long</b>. Äëÿ
îñòàëüíûõ ðåãèñòðîâ ïîäîáíîå äåëàòü íåëüçÿ.
<A href="#contents4" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents4"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=5.1>
<h2 id=5.1>
5. Èäåíòèôèêàòîðû.
 
5.1 Ôîðìàò èäåíòèôèêàòîðà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èäåíòèôèêàòîðû â C-- äîëæíû íà÷èíàòüñÿ èëè ñ ñèìâîëà ïîä÷åðêèâàíèÿ <b>_</b>
èëè çàãëàâíûõ èëè ñòðî÷íûõ áóêâ. Ñëåäóþùèå ñèìâîëû ìîãóò áûòü ëþáîé
1704,12 → 1703,12
/*äëèíà èäåíòèôèêàòîðà ïðåâûøàåò 64 */
Y_es sir /* ïðîáåëû íåäîïóñòèìû */
The-end /* äåôèñû íåäîïóñòèìû */
<A href="#contents5" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents5"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=5.2>
<h2 id=5.2>
5.2 Çàðåçåðâèðîâàííûå èäåíòèôèêàòîðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñïèñîê çàðåçåðâèðîâàííûõ â C-- èäåíòèôèêàòîðîâ, êîòîðûå íå ìîãóò
èñïîëüçîâàòüñÿ êàê îáùèå èäåíòèôèêàòîðû, ïîñêîëüêó îíè óæå áûëè îïðåäåëåíû
1778,12 → 1777,12
tr0 tr1 tr2 tr3 tr4 tr5 tr6 tr7
mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7
</b><A href="#contents5" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
</b><a href="#contents5"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=5.3>
<h2 id=5.3>
5.3 Óíèâåðñàëüíûå ðåãèñòðû äëÿ 16 è 32-áèòíîãî ðåæèìà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðè ñîçäàíèè áèáëèîòå÷íûõ ïðîöåäóð î÷åíü ÷àñòî ïðèõîäèòñÿ ïèñàòü
âàðèàíòû ïðîöåäóðû äëÿ ðàáîòû â 16-áèòíîì è 32-áèòíîì ðåæèìàõ, êîòîðûå
1799,12 → 1798,12
 
Èñïîëüçîâàíèå àâòîìàòè÷åñêèõ ðåãèñòðîâ ïîçâîëèò óïðîñòèòü áèáëèîòå÷íûå
ôàéëû è ñäåëàòü èõ áîëåå ïîíÿòíûìè.
<A href="#contents5" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents5"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=5.4>
<h2 id=5.4>
5.4 Ïðåäîïðåäåëåííûå èäåíòèôèêàòîðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èäåíòèôèêàòîðû, îïðåäåëÿåìûå êîìïèëÿòîðîì â çàâèñèìîñòè îò ðåæèìà
êîìïèëÿöèè:
1828,14 → 1827,14
<b>codesize</b> êîìïèëÿöèÿ âåäåòñÿ ñ îïòèìèçàöèåé íà ðàçìåð êîäà
<b>speed</b> êîìïèëÿöèÿ âåäåòñÿ ñ îïòèìèçàöèåé íà áûñòðîäåéñòâèå êîäà
<b>cpu</b> îïðåäåëÿåò òèï ïðîöåññîðà äëÿ êîòîðîãî âåäåòñÿ êîìïèëÿöèÿ:
0 - 8086
1 - 80186
2 - 80286
3 - 80386
4 - 80486
5 - Pentium
6 - Pentium MMX
7 - Pentium II
0 - 8086
1 - 80186
2 - 80286
3 - 80386
4 - 80486
5 - Pentium
6 - Pentium MMX
7 - Pentium II
 
Ýòè èäåíòèôèêàòîðû ìîãóò áûòü ïðîâåðåíû äèðåêòèâàìè <b>#ifdef</b> èëè <b>#ifndef</b>.
Èäåíòèôèêàòîð <b>cpu</b> ìîæåò áûòü èñïîëüçîâàí ëèøü ñ îïåðàòîðàìè ïðîâåðêè
1842,14 → 1841,14
óñëîâèé:
 
#ifdef cpu > 3 //åñëè òèï ïðîöåññîðà áîëüøå 80386
<A href="#contents5" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents5"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.1>
<h2 id=6.1>
6. Ïåðåìåííûå.
 
6.1 Òèïû ïåðåìåííûõ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- èìååòñÿ ñåìü òèïîâ ïåðåìåííûõ (èìåíîâàííûõ îáëàñòåé ïàìÿòè), ýòî:
<b>byte, word, dword, char, int, long, float.</b>
1898,12 → 1897,12
òàêèå ñâîéñòâà òèïà <b>int</b> âíîñÿò íåêîòîðóþ ïóòàíèöó, íî ýòî äàåò áîëüøîé
âûèãðûø ïðè èñïîëüçîâàíèè ýòîãî òèïà â áèáëèîòå÷íûõ ôàéëàõ, êîòîðûå ìîãóò
áûòü èñïîëüçîâàíû ïðè êîìïèëÿöèè 16-áèòíûõ è 32-áèòíûõ ïðîãðàìì.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.2>
<h2 id=6.2>
6.2 Îáúÿâëåíèå ïåðåìåííûõ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèíòàêñèñ äëÿ îáúÿâëåíèÿ ïåðåìåííûõ ñëåäóþùèé:
 
1940,12 → 1939,12
è ìàññèâ ñ èìåíåì x, ñîñòîÿùèé èç 27 ýëåìåíòîâ òèïà int */
long size=0; /* îáúÿâëåíà ïåðåìåííàÿ òèïà long ñ èìåíåì size è åé ïðèñâîåíî
çíà÷åíèå 0. */
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.3>
<h2 id=6.3>
6.3 Ãëîáàëüíûå ïåðåìåííûå.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ãëîáàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå, îáëàñòü äåéñòâèÿ êîòîðûõ
ðàñïðîñòðàíÿåòñÿ íà âñþ ïðîãðàììó. Â C-- èñïîëüçîâàòü ãëîáàëüíûå ïåðåìåííûå
1979,12 → 1978,12
çíà÷åíèå), òî ïåðåìåííàÿ áóäåò âêëþ÷åíà â êîä êîìïèëèðóåìîãî ôàéëà. Åñëè
ïåðåìåííàÿ íå èíèöèàëèçèðóåòñÿ, òî ìåñòî äëÿ ïåðåìåííîé áóäåò
çàðåçåðâèðîâàíî ñðàçó æå çà ïîñëåäíèì áàéòîì ñêîìïèëèðîâàííîé ïðîãðàììû.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.4>
<h2 id=6.4>
6.4 Ëîêàëüíûå ïåðåìåííûå.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ëîêàëüíûå ïåðåìåííûå - ýòî ïåðåìåííûå îáëàñòü äåéñòâèÿ êîòîðûõ
ðàñïðîñòðàíÿåòñÿ ëèøü â ïðåäåëàõ îäíîé ïðîöåäóðû. Îáúÿâëÿòü ëîêàëüíûå
2021,12 → 2020,12
int locproc; // à íà ýòî îáúÿâëåíèå ïåðåìåííîé êîìïèëÿòîð âûäàñò ñîîáùåíèå
// îá îøèáêå, ò.ê. óæå íà÷àëîñü òåëî ïðîöåäóðû
}
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.5>
<h2 id=6.5>
6.5 Äèíàìè÷åñêèå ïåðåìåííûå è ñòðóêòóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Íàðÿäó ñ óæå èçâåñòíûìè Âàì äèíàìè÷åñêèìè ïðîöåäóðàìè â C-- åñòü
âîçìîæíîñòü èñïîëüçîâàòü äèíàìè÷åñêè è ïåðåìåííûå è ñòðóêòóðû. Äèíàìè÷åñêèå
2047,12 → 2046,12
ðàñïîëîæåíû â åãî ñàìîì êîíöå, ïîñëå äèíàìè÷åñêèõ ïðîöåäóð. Ýòó èõ
îñîáåííîñòü ìîæíî èñïîëüçîâàòü, åñëè Âàì áóäåò íåîáõîäèìî, ÷òîáû äàííûå íå
áûëè ðàçáðîñàíû ñðåäè êîäà, à áûëè ñãðóïïèðîâàíû â îäíîì ìåñòå.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.6>
<h2 id=6.6>
6.6 Ïðèñâàèâàíèå îäíîãî çíà÷åíèÿ íåñêîëüêèì ïåðåìåííûì.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè Âàì íåîáõîäèìî ïðèñâîèòü íåñêîëüêèì ïåðåìåííûì îäèíàêîâûå çíà÷åíèÿ:
 
2066,14 → 2065,14
 
Ïðè èñïîëüçîâàíèè òàêîé çàïèñè ãåíåðèðóåòñÿ áîëåå êîìïàêòíûé è áîëåå
áûñòðûé êîä.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.1>
<h2 id=6.7.1>
6.7 Ïåðåìåííûå òèïà float.
 
6.7.1 Ôîðìàò ïåðåìåííûõ òèïà float.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äëÿ ïðåäñòàâëåíèÿ çíà÷åíèé ñ ïëàâàþùåé òî÷êîé â ÿçûê C-- ââåäåí òèï
float. Ýòîìó òèïó ñîîòâåòñòâóåò äåéñòâèòåëüíîå ÷èñëî îäèíàðíîé òî÷íîñòè
2089,12 → 2088,12
| | | -------------- - ïîëå ìàíòèññû
| ------------------------ - ïîëå ïîðÿäêà
--------------------------- - áèò çíàêà
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.2>
<h2 id=6.7.2>
6.7.2 Êîíñòàíòû ñ ïëàâàþùåé òî÷êîé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êîìïèëÿòîð îòëè÷àåò âåùåñòâåííîå ÷èñëî îò öåëîãî ïî íàëè÷èþ â íåì
òî÷êè. Íà÷èíàòüñÿ âåùåñòâåííîå ÷èñëî äîëæíî ëèáî öèôðîé îò <b>0</b> äî <b>9</b>, ëèáî
2106,12 → 2105,12
-15.75
3.14e2
1.234567E-20
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.3>
<h2 id=6.7.3>
6.7.3 Äèàïàçîí äîïóñòèìûõ çíà÷åíèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Âåùåñòâåííîå ÷èñëî òèïà float ìîæåò íàõîäèòüñÿ â äèàïàçîíå îò 3.37E38
äî -3.37E38. Ìèíèìàëüíî áëèçêîå ê íóëþ çíà÷åíèå ðàâíÿåòñÿ 1.17E-38 è
2118,12 → 2117,12
-1.17E-38. Çàïèñûâàòü âåùåñòâåííîå ÷èñëî îäèíàðíîé òî÷íîñòè áîëåå ÷åì 8
öèôðàìè íå èìååò ñìûñëà. Ïîêàçàòåëü ñòåïåíè ìîæåò ïðèíèìàòü çíà÷åíèÿ îò
+38 äî -38.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.4>
<h2 id=6.7.4>
6.7.4 Ìàòåìàòè÷åñêèå îïåðàöèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êîìïèëÿòîð ïîääåðæèâàåò 4 îñíîâíûõ äåéñòâèÿ íàä ïåðåìåííûìè òèïà
float: ñëîæåíèå, âû÷èòàíèå, óìíîæåíèå è äåëåíèå. Ïîääåðæèâàåòñÿ òàêæå
2136,12 → 2135,12
 
<font color="Red"><b>ÂÍÈÌÀÍÈÅ! Ñîñòàâíûå ìàòåìàòè÷åñêèå îïåðàöèè âûïîëíÿþòñÿ â òîì
ïîðÿäêå, â êîòîðîì îíè çàïèñàíû, íåâçèðàÿ íà ïðàâèëà àðèôìåòèêè</b></font>.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.5>
<h2 id=6.7.5>
6.7.5 Ïðåîáðàçîâàíèÿ òèïîâ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðè ìàòåìàòè÷åñêèõ îïåðàöèÿõ êîíå÷íûì èòîãîì êîòîðûõ ÿâëÿåòñÿ
ïåðåìåííàÿ òèïà <b>float</b>, âñå îïåðàíäû äðóãèõ òèïîâ ïåðåä âû÷èñëåíèåì áóäóò
2153,12 → 2152,12
ó÷àñòèå â âû÷èñëåíèÿõ. Ïðè ïðèñâàèâàíèè öåëî÷èñëåííîé ïåðåìåííîé çíà÷åíèÿ
ïåðåìåííîé òèïà <b>float</b>, èç íåå òàêæå áóäåò âûäåëåíà öåëàÿ ÷àñòü, êîòîðàÿ è
áóäåò ïðèñâîåíà öåëî÷èñëåííîé ïåðåìåííîé.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.6>
<h2 id=6.7.6>
6.7.6 Îïåðàöèè ñðàâíåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè ïðè îïåðàöèè ñðàâíåíèÿ ëåâûì îïåðàíäîì ÿâëÿåòñÿ ïåðåìåííàÿ èëè
âûðàæåíèå òèïà <b>float</b>, à ïðàâûì ÿâëÿåòñÿ öåëî÷èñëåííîå çíà÷åíèå, òî
2166,12 → 2165,12
ëåâûì îïåðàíäîì ÿâëÿåòñÿ öåëî÷èñëåííîå âûðàæåíèå èëè ïåðåìåííàÿ, à ïðàâûì
îïåðàíäîì çíà÷åíèå òèïà <b>float</b>, òî èç ïðàâîãî îïåðàíäà áóäåò âûäåëåíà öåëàÿ
÷àñòü, êîòîðàÿ è ïðèìåò ó÷àñòèå â ñðàâíåíèè.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.7.7>
<h2 id=6.7.7>
6.7.7 Ñðàâíåíèå ïåðåìåííûõ òèïà float ñ 32-áèòíûì ðåãèñòðîì.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 ðåãèñòðàõ ìîãóò ñîäåðæàòüñÿ çíàêîâûå, áåç çíàêîâûå è âåùåñòâåííûå
äàííûå. Ïî óìîë÷àíèþ ñ÷èòàåòñÿ, ÷òî â ðåãèñòðå íàõîäèòñÿ áåç çíàêîâîå öåëîå
2183,7 → 2182,7
 
void PROC()
{
IF( f < signed ECX) //â ðåãèñòðå ECX íàõîäèòñÿ çíàêîâîå ÷èñëî
IF( f < signed ECX) //â ðåãèñòðå ECX íàõîäèòñÿ çíàêîâîå ÷èñëî
IF( unsigned EBX > f) //â ðåãèñòðå EBX íàõîäèòñÿ áåç çíàêîâîå ÷èñëî
IF( f == float EAX ) //â EAX íàõîäèòñÿ ÷èñëî ôîðìàòà float
}
2190,12 → 2189,12
 
<font color="Red"><b>ÂÍÈÌÀÍÈÅ! Ïðè îïåðàöèè ñðàâíåíèÿ ñ ó÷àñòèåì ïåðåìåíîé òèïà float,
ñîäåðæèìîå ðåãèñòðà AX áóäåò ðàçðóøåíî.</b></font>
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=6.8>
<h2 id=6.8>
6.8 Óêàçàòåëè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- ñåé÷àñ óêàçàòåëè ðåàëèçîâàíû íå â ïîëíîì îáúåìå. Ïîýòîìó ìíîãèå
âåùè, êîòîðûå âîçìîæíû â îáû÷íûõ ÿçûêàõ <b>C</b>, çäåñü áóäóò íåäîñòóïíû.
2209,13 → 2208,13
int i;
char *tstr;
{
FOR(i=0; string[i]!=0; i++){
WRITESTR(string[i]);
WRITELN();
}
FOR(tstr=str;byte *tstr!=0; tstr++){
WRITE(byte *tstr);
}
FOR(i=0; string[i]!=0; i++){
WRITESTR(string[i]);
WRITELN();
}
FOR(tstr=str;byte *tstr!=0; tstr++){
WRITE(byte *tstr);
}
}
 
Óêàçàòåëè ìîæíî èñïîëüçîâàòü ïðè ïåðåäà÷å ïàðàìåòðîâ ïðîöåäóðàì, à â
2235,14 → 2234,14
èíèöèàëèçèðóåòñÿ óêàçàòåëü. Ò.å. Âû ìîæåòå óêàçàòåëþ íà <b>char</b> ïðèñâîèòü
óêàçàòåëü íà <b>int</b> èëè óêàçàòåëþ íà ïðîöåäóðó ïðèñâîèòü àäðåñ ïåðåìåííîé.
Ýòî ìîæåò âûçâàòü îøèáêó â ðàáîòå ïðîãðàììû.
<A href="#contents6" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents6"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=7.1>
<h2 id=7.1>
7. Àäðåñàöèÿ.
 
7.1 Îòíîñèòåëüíàÿ àäðåñàöèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èçíà÷àëüíî èíäåêñíûé äîñòóï ê ýëåìåíòàì â ìàññèâàõ ëþáîãî òèïà â
êîìïèëÿòîðå îñóùåñòâëÿëñÿ ïîáàéòíî, íåçàâèñèìî îò îáúÿâëåííîãî òèïà äàííûõ.
2349,12 → 2348,12
÷èñëîâóþ êîíñòàíòó èëè ðåãèñòðû <b>BX,DI,SI,BP</b> êîìïèëÿòîð èñïîëüçóåò ýòè
çíà÷åíèÿ áåç èçìåíåíèÿ. Âî âñåõ äðóãèõ ñëó÷àÿõ áóäåò êîððåêöèÿ çíà÷åíèÿ â
çàâèñèìîñòè îò òèïà ìàññèâà.
<A href="#contents7" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents7"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=7.2>
<h2 id=7.2>
7.2 Àáñîëþòíàÿ àäðåñàöèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Àáñîëþòíàÿ àäðåñàöèÿ òàêæå âîçìîæíà. Äåéñòâóþò òå æå ñàìûå îãðàíè÷åíèÿ
íà èíäåêñû, ÷òî è ïðè îòíîñèòåëüíîé àäðåñàöèè.
2441,25 → 2440,25
 
Ñîõðàíèòü BX â ñåãìåíòå ñòåêà ïî ñìåùåíèþ 42:
SSWORD [42] = BX;
<A href="#contents7" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents7"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.1>
<h2 id=8.1.1>
8. Ðàáîòà ñ áëîêàìè äàííûõ.
 
8.1 Ñòðóêòóðû.
 
8.1.1 ×òî òàêîå ñòðóêòóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñòðóêòóðà ïîçâîëÿåò îáúåäèíèòü â îäíîì îáúåêòå ñîâîêóïíîñòü çíà÷åíèé,
êîòîðûå ìîãóò èìåòü ðàçëè÷íûå òèïû.
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.2>
<h2 id=8.1.2>
8.1.2 Ñèíòàêñèñ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
struct [<òåã>] { <ñïèñîê-îáúÿâëåíèé-ýëåìåíòîâ> }
<îïèñàòåëü>[,<îïèñàòåëü>...];
2510,12 → 2509,12
<b>struct</b> ìîæíî íå ïèñàòü. Ò.å ìîæíî íàïèñàòü âîò òàê:
 
test dd;
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.3>
<h2 id=8.1.3>
8.1.3 Èíèöèàëèçàöèÿ ñòðóêòóð ïðè îáúÿâëåíèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïîñëå îáúÿâëåíèÿ ñòðóêòóðû åå ýëåìåíòû ìîãóò ïðèíèìàòü ïðîèçâîëüíûå
çíà÷åíèÿ. ×òî áû ýòîãî íå áûëî íàäî ñòðóêòóðû ïðîèíèöèàëèçèðîâàòü.
2553,12 → 2552,12
 ýòîì ïðèìåðå íà ìåñòî ãäå ðàñïîëîæåíà ñòðóêòóðà dd ïðè êîìïèëÿöèè áóäåò
çàãðóæåí ôðàãìåíò èç ôàéëà <b>file.dat</b> äëèíîé 10 áàéò ñî ñìåùåíèÿ 24.
Íåäîñòàþùèå áàéòû áóäóò çàïîëíåíû íóëÿìè.
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.4>
<h2 id=8.1.4>
8.1.4 Èíèöèàëèçàöèÿ ñòðóêòóðû ïðè âûïîëíåíèè ïðîãðàììû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðè âûïîëíåíèè ïðîãðàììû, êðîìå ïðèñâîåíèÿ êàæäîìó ýëåìåíòó ñòðóêòóðû
çíà÷åíèÿ, ìîæíî ïðîèíèöèàëèçèðîâàòü âñþ ñòðóêòóðó ïðèñâîåíèåì åé ÷èñëà èëè
2591,12 → 2590,12
 
Áóäåò ñêîïèðîâàíî ñîäåðæèìîå òðåòüåé ñòðóêòóðû ìàññèâà ñòðóêòóð aa â
ñòðóêòóðó rr.
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.5>
<h2 id=8.1.5>
8.1.5 Îïåðàöèè ñ ýëåìåíòàìè ñòðóêòóð.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñ ýëåìåíòàìè ñòðóêòóð ìîæíî âûïîëíÿòü âñå òå îïåðàöèè, êîòîðûå
äîñòóïíû äëÿ ïåðåìåííûõ ñîîòâåòñòâóþùåãî òèïà. Íàïðèìåð: Îáúÿâëåíà
2628,25 → 2627,25
long c; // òðåòèé ýëåìåíò ñòðóêòóðû
};
 
struct BB //òåã âòîðîé ñòðóêòóðû
struct BB //òåã âòîðîé ñòðóêòóðû
{
word aa; // ïåðâûé ýëåìåíò
AA bb; // âòîðîé ýëåìåíò - âëîæåííàÿ ñòðóêòóðà
}ss; // îáúÿâëÿåì ñòðóêòóðó ñ òåãîì <b>BB</b>
word aa; // ïåðâûé ýëåìåíò
AA bb; // âòîðîé ýëåìåíò - âëîæåííàÿ ñòðóêòóðà
}ss; // îáúÿâëÿåì ñòðóêòóðó ñ òåãîì <b>BB</b>
 
void proc()
{
AX=#ss.bb.b; // ïîëó÷èòü àäðåñ ýëåìåíòà <b>b</b> ñòðóêòóðû <b>bb</b> â ñòðóêòóðå <b>ss</b>
AX=#BB.bb.b; // ïîëó÷èòü ñìåùåíèå ýòîãî æå ýëåìåíòà â òåãå <b>BB</b>
AX=sizeof(ss.bb); // ïîëó÷èòü ðàçìåð ýëåìåíòà <b>bb</b> â ñòðóêòóðå <b>ss</b>
AX=sizeof(BB.bb); // ïîëó÷èòü ðàçìåð ýëåìåíòà <b>bb</b> â òåãå <b>BB</b>
AX=sizeof(ss.bb); // ïîëó÷èòü ðàçìåð ýëåìåíòà <b>bb</b> â ñòðóêòóðå <b>ss</b>
AX=sizeof(BB.bb); // ïîëó÷èòü ðàçìåð ýëåìåíòà <b>bb</b> â òåãå <b>BB</b>
}
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.6>
<h2 id=8.1.6>
8.1.6 Âëîæåííûå ñòðóêòóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðè îáúÿâëåíèè òåãîâ ñòðóêòóð ìîæíî èñïîëüçîâàòü òåãè äðóãèõ,
îáúÿâëåííûõ ðàíåå ñòðóêòóð. Ïðèìåð âëîæåííûõ ñòðóêòóð:
2696,12 → 2695,12
AX=second[2].first[j].a; //à ýòîò ñèíòàêñèñ äîïóñòèì.
AX=second[i].first[3].a;
}
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.7>
<h2 id=8.1.7>
8.1.7 Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îòîáðàæåíèå òåãà ñòðóêòóðû íà áëîê ïàìÿòè ÿâëÿåòñÿ àëüòåðíàòèâîé
óêàçàòåëÿì íà ñòðóêòóðû.
2750,12 → 2749,12
ëîêàëüíûìè è ïàðàìåòðè÷åñêèìè ïåðåìåííûìè.  32-áèòíîì ðåæèìå ìîæíî
èñïîëüçîâàòü ëþáîé êðîìå <b>ESP è EBP</b> ðåãèñòð, à ðåãèñòðû <b>EDI è ESI</b> íàäî
èñïîëüçîâàòü îñòîðîæíî.
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.1.8>
<h2 id=8.1.8>
8.1.8 Áèòîâûå ïîëÿ ñòðóêòóð.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Áèòîâûå ïîëÿ ñòðóêòóð èñïîëüçóþòñÿ äëÿ ýêîíîìèè ïàìÿòè, ïîñêîëüêó
ïîçâîëÿþò ïëîòíî óïàêîâàòü çíà÷åíèÿ, è äëÿ îðãàíèçàöèè óäîáíîãî äîñòóïà ê
2794,12 → 2793,12
ïðèìåíåííûé ê áèòîâîìó ïîëþ âåðíåò ðàçìåð ýòîãî ïîëÿ â áèòàõ. Ïðè
èñïîëüçîâàíèè áèòîâîãî ïîëÿ, åãî ñîäåðæèìîå áóäåò ðàñøèðÿòñÿ â ðåãèñòð
êàê áåç çíàêîâîå öåëîå ÷èñëî.
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.2>
<h2 id=8.2>
8.2 Îáúåäèíåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îáúåäèíåíèÿ ïîçâîëÿþò â ðàçíûå ìîìåíòû âðåìåíè õðàíèòü â îäíîì îáúåêòå
çíà÷åíèÿ ðàçëè÷íîãî òèïà.
2824,8 → 2823,8
 
void test()
{
regEAX = 0x2C;
BL = regAL; //â ðåãèñòðå BL îêàæåòñÿ çíà÷åíèå 0x2C
regEAX = 0x2C;
BL = regAL; //â ðåãèñòðå BL îêàæåòñÿ çíà÷åíèå 0x2C
}
 
Îáúåäèíÿòü ìîæíî ïåðåìåííûå ðàçëè÷íûõ òèïîâ, ìàññèâû, ñòðîêîâûå
2837,12 → 2836,12
ýëåìåíò îáúåäèíåíèÿ. Åñëè æå ïåðâûé ýëåìåíò îáúåäèíåíèÿ íå èíèöèàëèçèðîâàí,
à ñëåäóþùèå ýëåìåíòû èíèöèàëèçèðîâàíû, òî ýòî âûçîâåò ñîîáùåíèå êîìïèëÿòîðà
îá îøèáêå.
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=8.3>
<h2 id=8.3>
8.3 Êîìàíäû 'FROM' è 'EXTRACT'.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- åñòü î÷åíü îðèãèíàëüíûå êîìàíäû, êîòîðûõ íåò â äðóãèõ ÿçûêàõ. Ýòî
<b>FROM è EXTRACT</b>.
2869,14 → 2868,14
 
byte LIT128 = EXTRACT "8X16.FNT", 16*128, 16;
byte LIT130 = EXTRACT "8X16.FNT", 16*130, 16;
<A href="#contents8" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents8"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.1>
<h2 id=9.1>
9. Îïåðàòîðû.
 
9.1 Óñëîâíûå èíñòðóêöèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Óñëîâíûå èíñòðóêöèè, ïðè ïîìîùè êîòîðûõ îñóùåñòâëÿåòñÿ âåòâëåíèå, òàêèå
æå êàê â C.
2920,12 → 2919,12
 
Ýòî ìîæíî ïðîñòî èñïðàâèòü, çàìåíèâ â ýòîì ìåñòå èíñòðóêöèþ <b>ELSE</b> íà
<b>else</b>.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.2>
<h2 id=9.2>
9.2 Öèêëû do{} while.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 òàêîì öèêëå áëîê êîäà, ñîñòàâëÿþùèé òåëî öèêëà, áóäåò ïîâòîðÿòüñÿ,
ïîêà óñëîâíîå âûðàæåíèå èìååò çíà÷åíèå <b>èñòèííî</b>.
2944,12 → 2943,12
 
Óñëîâíîå âûðàæåíèå â <b>do {} while</b> èíñòðóêöèè äîëæíî ñîîòâåòñòâîâàòü òåì æå
ïðàâèëàì, ÷òî è â èíñòðóêöèÿõ <b>IF è if</b>.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.3>
<h2 id=9.3>
9.3 Öèêëû loop, LOOPNZ, loopnz.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Öèêëû <b>loop</b> ïîâòîðÿþò áëîê êîäà, ïîêà îïðåäåëåííàÿ ïåðåìåííàÿ èëè
ðåãèñòð, âûïîëíÿþùèå ðîëü ñ÷åò÷èêà öèêëà, ñîäåðæàò çíà÷åíèå, îòëè÷íîå îò
3022,12 → 3021,12
ìàêñèìàëüíî ýôôåêòèâíûì ïðè îïòèìèçàöèè íà ðàçìåð êîäà, åñëè â êà÷åñòâå
ïàðàìåòðà-ñ÷åò÷èêà èñïîëüçóåòñÿ ðåãèñòð <b>CX/ECX</b>. Ïðè ýòîì êîìïèëÿòîð
èñïîëüçóåò àññåìáëåðíûå èíñòðóêöèè <b>JCXZ/JECXZ è LOOP</b>.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.4>
<h2 id=9.4>
9.4 Öèêë while, WHILE.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèíòàêñèñ:
while(<âûðàæåíèå>)
3043,19 → 3042,19
ìåíüøå 127 áàéò.
 
Ïðèìåðû:
while ( i < 20 ){
WRITEWORD(i);
i++;
}
while ( i < 20 ){
WRITEWORD(i);
i++;
}
 
WHILE (i < 20 ) @WRITEWORD(i); //öèêë ëèáî áóäåò áåñêîíå÷íûì ëèáî íå
WHILE (i < 20 ) @WRITEWORD(i); //öèêë ëèáî áóäåò áåñêîíå÷íûì ëèáî íå
//âûïîëíèòñÿ íè ðàçó
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.5>
<h2 id=9.5>
9.5 Öèêë for, FOR.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèíòàêñèñ:
for ([<íà÷àëüíîå âûðàæåíèå>]; [<óñëîâèå>]; [<ïðèðàùåíèå>])
3087,11 → 3086,11
127 áàéò.
 
Ïðèìåðû:
for(i=0;i<5;i++){
WRITESTR("ÑÒÐÎÊÀ ");
WRITEWORD(i);
WRITELN();
}
for(i=0;i<5;i++){
WRITESTR("ÑÒÐÎÊÀ ");
WRITEWORD(i);
WRITELN();
}
 
×èñëî <b>íà÷àëüíûõ âûðàæåíèé</b> è ÷èñëî <b>ïðèðàùåíèé</b> íå îãðàíè÷åíî. Êàæäûé
îïåðàòîð â <b>íà÷àëüíûõ âûðàæåíèÿõ</b> è <b>ïðèðàùåíèÿõ</b> äîëæåí ðàçäåëÿòüñÿ
3104,21 → 3103,21
ñêîáêè. Ïðèìåð:
 
for ( a=0 ; (a>=0) && (a<10) ; a++ ){...
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.6>
<h2 id=9.6>
9.6 Îïåðàòîð ïåðåêëþ÷àòåëü switch.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèíòàêñèñ:
switch(<âûðàæåíèå>){
case <êîíñòàíòà>:
<îïåðàòîð>
...
...
case <êîíñòàíòà>:
<îïåðàòîð>
...
...
...
default:
<îïåðàòîð>
3222,29 → 3221,29
 
Êðîìå òîãî, ÷òî íîâûé ôîðìàò çàïèñè áîëåå êîìïàêòåí è áîëåå ÷èòàáåëåí,
íî åùå ïðè ýòîì êîìïèëÿòîð ñîçäàåò áîëåå êîìïàêòíûé è áûñòðûé êîä.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.7>
<h2 id=9.7>
9.7 Îïåðàòîð ïåðåõîäà goto, GOTO.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèíòàêñèñ:
goto <ìåòêà>;
.
.
.
.
.
.
<ìåòêà>:
 
Îïåðàòîð ïåðåõîäà <b>goto</b> ïåðåäàåò óïðàâëåíèå íà <b>îïåðàòîð</b> ïîìå÷åííûé
<b>ìåòêîé</b>. Àíàëîãîì â àññåìáëåðå îïåðàòîðó goto ÿâëÿåòñÿ êîìàíäà <b>jmp near</b>.
Àíàëîãîì â àññåìáëåðå îïåðàòîðó <b>GOTO</b> ÿâëÿåòñÿ êîìàíäà <b>jmp short</b>.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.8>
<h2 id=9.8>
9.8 Îïåðàòîð ðàçðûâà break, BREAK.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îïåðàòîð ðàçðûâà <b>break</b> ïðåðûâàåò âûïîëíåíèå îïåðàòîðîâ <b>do-while,
for, switch, while, loop, loopnz, LOOPNZ</b>. Îí ìîæåò ñîäåðæàòüñÿ
3256,18 → 3255,18
äî êîíöà öèêëà äîëæåí áûòü ìåíüøå 127 áàéò.
 
Ïðèìåðû:
FOR (i=0; ; i++){
FOR(j=0; j < WIDTH; j++){
IF(i==5)BREAK;
}
IF(i==10)BREAK;
}
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
FOR (i=0; ; i++){
FOR(j=0; j < WIDTH; j++){
IF(i==5)BREAK;
}
IF(i==10)BREAK;
}
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.9>
<h2 id=9.9>
9.9 Îïåðàòîð ïðîäîëæåíèÿ continue, CONTINUE.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îïåðàòîð ïðîäîëæåíèÿ <b>continue</b> ïåðåäàåò óïðàâëåíèå íà ñëåäóþùóþ
èòåðàöèþ â öèêëàõ <b>do-while, for, while, loop, loopnz</b>. Â öèêëàõ
3279,12 → 3278,12
Îïåðàòîð <b>CONTINUE</b> àíàëîãè÷åí <b>continue</b>, íî ïðè ýòîì ãåíåðèðóåòñÿ êîä íà
1 áàéò êîðî÷å. Ðàçìåð ñãåíåðèðîâàííîãî êîäà îò ìåñòà ãäå ïðèìåíÿåòñÿ
<b>CONTINUE</b> äî íà÷àëà èòåðàöèè äîëæåí áûòü ìåíüøå 127 áàéò.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.10>
<h2 id=9.10>
9.10 Ëîãè÷åñêîå îáúåäèíåíèå óñëîâèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñóùåñòâóåò âîçìîæíîñòü ëîãè÷åñêîãî îáúåäèíåíèÿ ñðàâíåíèé â óñëîâèÿõ
<b>IF è if</b>, öèêëàõ <b>do{}while, while{}, WHILE{}, for{} è FOR{}</b>.
3298,16 → 3297,16
 
Ïðèìåð:
 
if ( (a>3) && (b>4) || (c<8) ){
if ( (a>3) && (b>4) || (c<8) ){
 
Ò.å. åñëè ïðîèçâåñòè ðàñøèôðîâêó ýòîãî óñëîâèÿ, òî ïîëó÷èòñÿ ñëåäóþùåå:
óñëîâèå âûïîëíèòñÿ åñëè a>3 è b>4 èëè a>3 è c<8.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.11>
<h2 id=9.11>
9.11 Ïåðåõîä ÷åðåç öèêëû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äëÿ îïåðàòîðîâ <b>BREAK, break, CONTINUE, continue</b> ââåäåíà
ïîääåðæêà ÷èñëîâîãî ïàðàìåòðà, îïðåäåëÿþùåãî, ñêîëüêî öèêëîâ íàäî
3317,10 → 3316,10
do{
loop(CX){
for(BX=0;BX<10;BX++){
break; //ñòàíäàðòíûé îïåðàòîð
break 0; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 0 öèêëîâ
break 1; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 1 öèêë
break 2; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 2 öèêëà
break; //ñòàíäàðòíûé îïåðàòîð
break 0; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 0 öèêëîâ
break 1; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 1 öèêë
break 2; //break ñ ïàðàìåòðîì - ïðîïóñòèòü 2 öèêëà
}
LABL0:
}
3342,12 → 3341,12
Íó è ÿ íàäåþñü, Âàì ïîíÿòíî, ÷òî çíà÷åíèå ïàðàìåòðà íå ìîæåò ïðåâûøàòü
÷èñëà öèêëîâ íàõîäÿùèõñÿ ïåðåä òåêóùèì. Òàê äëÿ îäèíî÷íîãî öèêëà ýòîò
ïàðàìåòð ìîæåò ïðèíèìàòü ìàêñèìàëüíîå è åäèíñòâåííîå çíà÷åíèå - 0.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.12>
<h2 id=9.12>
9.12 Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èíâåðòèðîâàíèå ôëàãà ïðîâåðêè óñëîâèé â îïåðàöèÿõ ñðàâíåíèÿ <b>if/IF
for/FOR while/WHILE</b> ïðîèñõîäèò ñ ïîìîùüþ ñèìâîëà <b>! - not</b>.
3358,12 → 3357,12
IF ( proc() == 0 )... è IF ( ! proc() ) ...
 
ÿâëÿþòñÿ ñèíîíèìàìè.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.13>
<h2 id=9.13>
9.13 Âû÷èñëåíèå âûðàæåíèÿ, à çàòåì ïðîâåðêà óñëîâèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 îïåðàöèÿõ ñðàâíåíèÿ â ëåâîì îïåðàíäå òåïåðü äîïóñòèìî èñïîëüçîâàòü
âû÷èñëåíèÿ âûðàæåíèÿ ñ ïðèñâàèâàíèåì è îïåðàöèè èíêðåìåíòà, äåêðåìåíòà.
3377,12 → 3376,12
Âî âñåõ ýòèõ ïðèìåðàõ ñíà÷àëà ïðîèçîéäåò âû÷èñëåíèå âûðàæåíèÿ â ëåâîé
÷àñòè îïåðàöèè ñðàâíåíèÿ, à ïîòîì áóäåò ïðîèçâåäåíî ñðàâíåíèå ðåçóëüòàòà ñ
ïðàâîé ÷àñòüþ âûðàæåíèÿ ñðàâíåíèÿ.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.14>
<h2 id=9.14>
9.14 Ïðîâåðêà áèòîâ ïðè îïåðàöèè ñðàâíåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè â ëåâîé ÷àñòè âûðàæåíèÿ ñðàâíåíèÿ íàïèñàíî: BX & 5, òî ïðè
âû÷èñëåíèè âûðàæåíèÿ ñîäåðæèìîå ðåãèñòðà BX áóäåò èçìåíåíî èíñòðóêöèåé
3400,12 → 3399,12
IF ( ! $test AX,5)
IF ( asm test AX,5)
IF ( ! asm { test AX,5 } )
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.15>
<h2 id=9.15>
9.15 Îïåðàòîð ïåðåñòàíîâêè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- åñòü îïåðàòîð, êîòîðûé íå âñòðå÷àåòñÿ â äðóãèõ ÿçûêàõ, ýòî
îïåðàòîð ïåðåñòàíîâêè. Îïåðàòîð ïåðåñòàíîâêè ìåíÿåò ìåñòàìè ñîäåðæèìîå äâóõ
3428,12 → 3427,12
ïàìÿòè, áóäåò ðàçðóøåíî ñîäåðæèìîå EAX.  ëþáîì äðóãîì ñëó÷àå, íàïðèìåð,
ìåæäó ïåðåìåííîé â ïàìÿòè è ðåãèñòðîì, çíà÷åíèÿ âñåõ ðåãèñòðîâ áóäóò
ñîõðàíåíû.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.16>
<h2 id=9.16>
9.16 Îïåðàòîð îòðèöàíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ ñìåíû çíàêà ïåðåìåííîé - îïåðàòîð
îòðèöàíèÿ. Ïîñòàâèâ <b>-</b> (çíàê ìèíóñ) ïåðåä èäåíòèôèêàòîðîì ïåðåìåííîé ïàìÿòè
3445,12 → 3444,12
-AX; // ðåçóëüòàò òîò æå, ÷òî è ïðè 'AX = -AX;' ,íî áûñòðåå.
-tree; // òî æå ñàìîå, ÷òî 'tree = -tree;' ,íî áûñòðåå.
-BH; // ìåíÿåò çíàê BH.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.17>
<h2 id=9.17>
9.17 Îïåðàòîð èíâåðñèè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
C-- ïîääåðæèâàåò áûñòðûé ñèíòàêñèñ âûïîëíåíèÿ ëîãè÷åñêîé èíâåðñèè
çíà÷åíèÿ ïåðåìåííîé - îïåðàòîð èíâåðñèè. Ïîñòàâèâ <b>!</b> (âîñêëèöàòåëüíûé çíàê)
3462,12 → 3461,12
!AX; // òî æå ñàìîå, ÷òî ' AX ^ = 0xFFFF; ' íî áûñòðåå.
!node; // çàìåíÿåò çíà÷åíèå 'node' åãî ëîãè÷åñêîé èíâåðñèåé.
!CL; // òî æå ñàìîå, ÷òî ' CL ^ = 0xFF ' íî áûñòðåå.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.18>
<h2 id=9.18>
9.18 Ñïåöèàëüíûå óñëîâíûå âûðàæåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
C-- ïîääåðæèâàåò âîñåìü ñïåöèàëüíûõ óñëîâíûõ âûðàæåíèé:
 
3496,12 → 3495,12
do {
// çäåñü âû îïÿòü ÷åãî-òî äåëàåòå
} while( NOTOVERFLOW );
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.19>
<h2 id=9.19>
9.19 Ñèìâîë $ - âñòàâëÿåò òåêóùèé àäðåñ ïðîãðàììû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñèìâîë <b>$</b>, êðîìå òîãî, ÷òî ÿâëÿåòñÿ ïðèçíàêîì ïîñëåäóþùåé àññåìáëåðíîé
èíñòðóêöèè, â ÿçûêå C--, êàê è â ÿçûêå Assembler ìîæåò óêàçûâàòü òåêóùèé
3515,14 → 3514,14
 
Ïðèìåðû ïðèìåíåíèÿ:
 
DW #main-$ //çàïèñàòü ðàññòîÿíèå îò ïðîöåäóðû main äî òåêóùåãî ìåñòà
GOTO $+2; //ïåðåéòè ïî àäðåñó íà 2 áîëüøå, ÷åì òåêóùèé àäðåñ
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
DW #main-$ //çàïèñàòü ðàññòîÿíèå îò ïðîöåäóðû main äî òåêóùåãî ìåñòà
GOTO $+2; //ïåðåéòè ïî àäðåñó íà 2 áîëüøå, ÷åì òåêóùèé àäðåñ
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.20>
<h2 id=9.20>
9.20 Êëþ÷åâîå ñëîâî static è îïåðàòîð ::.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè ïåðåä îáúÿâëåíèåì ãëîáàëüíîé ïåðåìåííîé, ñòðóêòóðû èëè ïðîöåäóðû
óêàçàòü ñëîâî <b>static</b>, òî ýòè ïåðåìåííàÿ, ñòðóêòóðà èëè ïðîöåäóðà áóäóò
3555,15 → 3554,15
int var; //îáúÿâëÿåì ëîêàëüíóþ ïåðåìåííóþ ñ èìåíåì óæå ñóùåñòâóþùåé
//ãëîáàëüíîé ïåðåìåííîé
{
(E)AX=var; //èìååì äîñòóï òîëüêî ê ëîêàëüíîé ïåðåìåííîé
(E)AX=var; //èìååì äîñòóï òîëüêî ê ëîêàëüíîé ïåðåìåííîé
(E)AX=::var; //à òàê ìîæíî ïîëó÷èòü äîñòóï ê ãëîáàëüíîé ïåðåìåííîé
}
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.21>
<h2 id=9.21>
9.21 Îïåðàòîð sizeof.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Îïåðàöèÿ <b>sizeof</b> îïðåäåëÿåò ðàçìåð ïàìÿòè, êîòîðûé ñîîòâåòñòâóåò îáúåêòó
èëè òèïó. Îïåðàöèÿ sizeof èìååò ñëåäóþùèé âèä:
3608,12 → 3607,12
sizeof ( file "filename.dat" )
 
Ðåçóëüòàòîì ýòîé îïåðàöèè áóäåò ðàçìåð ôàéëà "filename.dat".
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=9.22>
<h2 id=9.22>
9.22 Ìåòêè ïåðåõîäà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ìåòêè ïåðåõîäà ïðèìåíÿþòñÿ äëÿ óêàçàíèÿ íà÷àëüíûõ òî÷åê ó÷àñòêîâ êîäà,
èñïîëüçóåìûõ êîìàíäàìè ïåðåõîäà âñòðîåííîãî àññåìáëåðà è îïåðàòîðàìè
3642,14 → 3641,14
êà÷åñòâå èìåí äëÿ ìåòîê âíå ïðîöåäóð ìîãóò áûòü èñïîëüçîâàíû óíèêàëüíûå
èäåíòèôèêàòîðû, â êîòîðûõ ìîæíî èñïîëüçîâàòü áîëüøèå, ìàëåíüêèå è ñìåñü
áîëüøèõ è ìàëåíüêèõ áóêâ.
<A href="#contents9" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents9"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=10.1>
<h2 id=10.1>
10. Àññåìáëåð.
 
10.1 Ïîääåðæêà êîìàíä àññåìáëåðà.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Âñòðîåííûé â C-- àññåìáëåð ïîääåðæèâàåò âñå èíñòðóêöèè 8088/8086,
80286, 80386, 80486, Pentium, Pentium II è Pentium III ïðîöåññîðîâ.
3658,36 → 3657,36
äîëëàðà <b>$</b>. Ïîääåðæèâàåòñÿ òàêæå êëþ÷åâîå ñëîâî <b>asm</b>, êîòîðîå ÿâëÿÿñü
ñèíîíèìîì ê ñèìâîëó äîëëàðà, åùå è ïîääåðæèâàåò îáúåäèíåíèå àññåìáëåðíûõ
èíñòðóêöèé â áëîêè.
<A href="#contents10" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents10"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=10.2>
<h2 id=10.2>
10.2 Êëþ÷åâîå ñëîâî asm.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êëþ÷åâîå ñëîâî <b>asm</b> ÿâëÿåòñÿ ñèíîíèìîì ê <b>$</b> - ïðåôèêñ àññåìáëåðíîé
êîìàíäû. Ïîñëå ñëîâà asm ìîæíî ïèñàòü áëîê àññåìáëåðíûõ êîìàíä. Ïðèìåð:
 
asm {
.
.
push AX
asm {
.
.
push AX
labl:
push BX
mov AX,0x1234
jmp short labl
.
.
.
}
push BX
mov AX,0x1234
jmp short labl
.
.
.
}
 
Ìåòêè âíóòðè áëîêà àññåìáëåðíûõ êîìàíä äîïóñòèìû.
<A href="#contents10" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents10"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=10.3>
<h2 id=10.3>
10.3 Ïðåôèêñ dup - ïîâòîðåíèå èíñòðóêöèé DB/DW/DD.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äëÿ àññåìáëåðíûõ èíñòðóêöèè <b>DB, DW, DD</b> ââåäåíà âîçìîæíîñòü èñïîëüçîâàòü
ïðåôèêñ ïîâòîðåíèé <b>dup</b>. Ïðèìåíåíèå ýòîãî ïðåôèêñà èìååò ñëåäóþùèé
3700,12 → 3699,12
 
 îòëè÷èå îò àíàëîãà ýòîãî ïðåôèêñà èç àññåìáëåðà ïîâòîðÿåìóþ âåëè÷èíó
çàêëþ÷àòü â ñêîáêè íåëüçÿ.
<A href="#contents10" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents10"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=10.4>
<h2 id=10.4>
10.4 Èíñòðóêöèè ïðîöåññîðà Pentium III.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 êîìïèëÿòîð äîáàâëåíà ïîääåðæêà 19 íîâûõ èíñòðóêöèé MMX ðàñøèðåíèÿ
 
3798,18 → 3797,18
{
asm{
movaps var8_128,xmm0 //â ìàññèâ èç 16 áàéò áóäåò çàïèñàíî ñîäåðæèìîå XMM0
movaps xmm1,var16_128 //â XMM1 áóäåò çàïèñàíî ñîäåðæèìîå 8 ñëîâ
movaps xmm1,var16_128 //â XMM1 áóäåò çàïèñàíî ñîäåðæèìîå 8 ñëîâ
movaps var32_128,xmm1 //â ìàññèâ èç 4 äâîéíûõ ñëîâ áóäåò çàïèñàíî XMM1
}
}
<A href="#contents10" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents10"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.1>
<h2 id=11.1>
11. Ïðîöåäóðû.
 
11.1 Òèïû ïðîöåäóð, ôóíêöèé è ìàêðîêîìàíä.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñåé÷àñ C-- ïîääåðæèâàåò 4 òèïà âûçîâà ïðîöåäóð: <b>cdecl, pascal, stdcall
è fastcall</b>. Âîò êðàòêèå õàðàêòåðèñòèêè ýòèõ òèïîâ âûçîâîâ ïðîöåäóð:
3853,12 → 3852,12
 
Îáúÿâëåíèå ïðîöåäóð ââåäåíî äëÿ òîãî, ÷òîáû ñîîáùàòü êîìïèëÿòîðó î
òèïå âîçâðàòà èç ïðîöåäóð, ñïîñîáå ïåðåäà÷è ïàðàìåòðîâ ïðîöåäóðå è èõ ÷èñëå.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.2>
<h2 id=11.2>
11.2 Ñòåêîâûå ïðîöåäóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñòåêîâûå ïðîöåäóðû ïî óìîë÷àíèþ îáúÿâëÿþòñÿ ïðè ïîìîùè èäåíòèôèêàòîðà,
êîòîðûé ñîäåðæèò, ïî êðàéíåé ìåðå, îäèí ñèìâîë ñòðî÷íûõ áóêâ (áóêâ íèæíåãî
3882,10 → 3881,10
 ñëåäóþùåì ïðèìåðå ñòåêîâàÿ ïðîöåäóðà âîçâðàùàåò ñóììó âñåõ ñâîèõ
ïàðàìåòðîâ (èìåþùèõ ðàçëè÷íûå òèïû) êàê âåëè÷èíó òèïà word:
 
word add_them_all (int a,b,c; byte d,e; word x,y)
{
return( a+b+c+d+e+x+y );
}
word add_them_all (int a,b,c; byte d,e; word x,y)
{
return( a+b+c+d+e+x+y );
}
 
Ðàíåå C-- äåëàë âûçîâû ñòåêîâûõ ïðîöåäóð ëèøü â ñòèëå <b>pascal</b>.
Ïðåèìóùåñòâîì ýòîãî ñïîñîáà âûçîâà ïðîöåäóð ÿâëÿåòñÿ êîìïàêòíîñòü è áîëåå
3949,12 → 3948,12
íåîáÿçàòåëüíî (òîãäà êîìïèëÿòîð íå áóäåò êîíòðîëèðîâàòü ÷èñëî è òèï
ïåðåäàâàåìûõ ïàðàìåòðîâ), íî åñëè Âû èõ âñòàâèòå, òî âêëþ÷èòñÿ ìåõàíèçì
êîíòðîëÿ çà ÷èñëîì è òèïîì ïàðàìåòðîâ.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.3>
<h2 id=11.3>
11.3 Ðåãèñòðîâûå ïðîöåäóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ðåãèñòðîâûå ïðîöåäóðû îïðåäåëÿþòñÿ, ïî óìîë÷àíèþ, ïðè ïîìîùè
èäåíòèôèêàòîðà, êîòîðûé íå ñîäåðæèò ñèìâîëîâ ñòðî÷íûõ áóêâ. Èëè æå ÿâíûì
4000,12 → 3999,12
Äëÿ òîãî, ÷òîáû èñïîëüçîâàòü ðåãèñòðîâóþ ïðîöåäóðó êàê ìàêðîêîìàíäó,
îíà äîëæíà áûòü îáúÿâëåíà êàê äèíàìè÷åñêàÿ ïðîöåäóðà. Äèíàìè÷åñêèå
ïðîöåäóðû îïèñàíû â ñëåäóþùåì ïîäðàçäåëå.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.4>
<h2 id=11.4>
11.4 Äèíàìè÷åñêèå ïðîöåäóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèíàìè÷åñêèå ïðîöåäóðû - ïðîöåäóðû, êîòîðûå îïðåäåëåíû, íî âñòàâëÿþòñÿ
â êîä ïðîãðàììû, òîëüêî åñëè åñòü âûçîâ. Äèíàìè÷åñêèå ïðîöåäóðû ìîãóò
4029,12 → 4028,12
IF (int AX < 0)
-AX;
}
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.4.1>
<h2 id=11.4.1>
11.4.1 Óñòàíîâêà äèíàìè÷åñêîé ïðîöåäóðû â îïðåäåëåííîå ìåñòî ïðîãðàììû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèíàìè÷åñêèå ïðîöåäóðû, åñëè îíè íå èñïîëüçóþòñÿ êàê ìàêðîñû è åñëè
îíè áûëè âîñòðåáîâàíû â ïðîãðàììå, âñòàâëÿþòñÿ â êîä ïðîãðàììû â ñàìîì
4054,12 → 4053,12
 
@ void proc ();
 
 èòîãå äèíàìè÷åñêàÿ ïðîöåäóðà áóäåò âñòàâëåíà â êîä ïðîãðàììû íå â
 èòîãå äèíàìè÷åñêàÿ ïðîöåäóðà áóäåò âñòàâëåíà â êîä ïðîãðàììû íå â
êîíöå åå, êàê îáû÷íî, à â ìåñòå, ãäå áóäåò ðàñïîëîæåíà ýòà ñòðîêà. Åñëè
äèíàìè÷åñêàÿ ïðîöåäóðà èìååò ïàðàìåòðû, òî ïðîïèñûâàòü ýòè ïàðàìåòðû
íåîáÿçàòåëüíî.
 
 êîìïèëÿòîðå åñòü åùå áîëåå ìîùíîå ñðåäñòâî, ïîçâîëÿþùåå âñå
 êîìïèëÿòîðå åñòü åùå áîëåå ìîùíîå ñðåäñòâî, ïîçâîëÿþùåå âñå
äèíàìè÷åñêèå îáúåêòû ( ïðîöåäóðû, ïåðåìåííûå, ñòðóêòóðû ) ðàñïîëîæèòü â
óêàçàííîì ìåñòå, à íå â êîíöå ïðîãðàììû, êàê îáû÷íî. Ýòî äèðåêòèâà
<b>#setdinproc</b>. Âñòðåòèâ ýòó äèðåêòèâó, êîìïèëÿòîð íåìåäëåííî ðàñïîëîæèò âñå
4068,14 → 4067,14
îáû÷íî, â êîíöå ïðîãðàììû, åñëè êîíå÷íî, íå áóäåò ïîâòîðíî ïðèìåíåíà
äèðåêòèâà <b>#setdinproc</b>.
 
Ýòî ìîæåò áûòü ïðèìåíåíî è áûòü ïîëåçíûì ïðè ñîçäàíèè ðåçèäåíòíûõ
Ýòî ìîæåò áûòü ïðèìåíåíî è áûòü ïîëåçíûì ïðè ñîçäàíèè ðåçèäåíòíûõ
ïðîãðàìì (TSR) è äðàéâåðîâ óñòðîéñòâ.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.5>
<h2 id=11.5>
11.5 inline-ïðîöåäóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
inline-ïðîöåäóðàìè ìîãóò áûòü äèíàìè÷åñêèå ïðîöåäóðû, êîòîðûå ìîæíî
èñïîëüçîâàòü êàê ìàêðîñû. Íî â îòëè÷èå îò ìàêðîñîâ, inline-ïðîöåäóðû, ïðè
4106,14 → 4105,14
{
IF ( int AX < 0 ) -AX ;
}
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.5.1>
<h2 id=11.5.1>
11.5.1 Äðóãîå ïðèìåíåíèå inline.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êëþ÷åâîå ñëîâî <b>inline</b> èìååò â ïðîöåäóðàõ è äðóãîå ïðèìåíåíèå. Åñëè
Êëþ÷åâîå ñëîâî <b>inline</b> èìååò â ïðîöåäóðàõ è äðóãîå ïðèìåíåíèå. Åñëè
ýòî ñëîâî ðàñïîëîæåíî ïåðåä íà÷àëîì áëîêà ïðîöåäóðû, òî äëÿ òàêîé
ïðîöåäóðû íå ñîçäàåòñÿ êàäð ñòåêà è íå ãåíåðèðóåòñÿ çàâåðøàþùèé ïðîöåäóðó
<b>ret</b>. Ïðèìåð:
4124,7 → 4123,7
...
}
 
Òàêèå ïðîöåäóðû íå äîëæíû ñîäåðæàòü ëîêàëüíûõ ïåðåìåííûõ. Åñëè
Òàêèå ïðîöåäóðû íå äîëæíû ñîäåðæàòü ëîêàëüíûõ ïåðåìåííûõ. Åñëè
ïðîöåäóðà ÿâëÿåòñÿ ðåãèñòðîâîé (òèï <b>fastcall</b>), òî ñ ïåðåäà÷åé åé
ïàðàìåòðîâ íåò ïðîáëåì. Åñëè æå ïðîöåäóðà ÿâëÿåòñÿ ñòåêîâîé, òî ïåðåäàòü
â òàêóþ ïðîöåäóðó ïàðàìåòðû Âû ìîæåòå, íî âîñïîëüçîâàòüñÿ ýòèìè
4135,20 → 4134,20
inline
{
AX=par1; /* êîìïèëÿòîð îáðàòèòñÿ ñ ïàðàìåòðó 'par1' ÷åðåç ðåãèñòð BP.
Íî òàê êàê êàäð ñòåêà íå áûë ñîçäàí, ïðè âûïîëíåíèè ýòîãî
Íî òàê êàê êàäð ñòåêà íå áûë ñîçäàí, ïðè âûïîëíåíèè ýòîãî
êîäà ïðîãðàììà áóäåò ðàáîòàòü íå ïðàâèëüíî. */
...
}
 
Âñòðåòèâ òàêîå îïðåäåëåíèå ïðîöåäóðû, êîìïèëÿòîð âûäàñò ïðåäóïðåæäåíèå
Âñòðåòèâ òàêîå îïðåäåëåíèå ïðîöåäóðû, êîìïèëÿòîð âûäàñò ïðåäóïðåæäåíèå
î òîì, ÷òî â òàêèõ ïðîöåäóðàõ èñïîëüçîâàòü ëîêàëüíûå è ïàðàìåòðè÷åñêèå
ïåðåìåííûå íåëüçÿ.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.6>
<h2 id=11.6>
11.6 Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðîöåäóðû îáðàáîòêè ïðåðûâàíèé îïðåäåëÿþòñÿ ñëåäóþùèì ñïîñîáîì:
 
4183,12 → 4182,12
 
Ïðè çàâåðøåíèè ïðîöåäóðû ïðåðûâàíèÿ áóäåò àâòîìàòè÷åñêè ñãåíåðèðîâàíà
èíñòðóêöèÿ âûõîäà èç îáðàáîò÷èêà ïðåðûâàíèÿ - IRET.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.7>
<h2 id=11.7>
11.7 Çàìåíà return íà goto.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 íåêîòîðûõ ñèòóàöèÿõ, ïðè êîìïèëÿöèè ïðîãðàììû, îïåðàòîð <b>return</b>
áóäåò çàìåíÿòüñÿ íà <b>goto</b>. Ýòî ïðîèñõîäèò ïðè ðàçðåøåííîé îïòèìèçàöèè ïî
4212,12 → 4211,12
êîìïèëÿòîð âûäàñò ñîîáùåíèå îá îøèáêå. Ïðè èñïîëüçîâàíèè <b>return</b> íà
ðàññòîÿíèè ìåíüøå 128 áàéò äî êîíöà êîäà, êîìïèëÿòîð âûäàñò âàì
ïðåäóïðåæäåíèå î âîçìîæíîì èñïîëüçîâàíèè <b>RETURN</b>.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.8>
<h2 id=11.8>
11.8 Âîçâðàùàåìûå çíà÷åíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Âîçâðàùàåìûå èç ôóíêöèé çíà÷åíèÿ ðàñïîëàãàþòñÿ â ðåãèñòðàõ.  òàáëèöå
ïîêàçàíî, êàêîé ðåãèñòð èñïîëüçóåòñÿ äëÿ êàæäîãî èç âîçâðàùàåìûõ òèïîâ:
4263,7 → 4262,7
carry ôëàãà, à íå ñðàâíåíèå ðåãèñòðà AX. Ïðèìåð èñïîëüçîâàíèÿ âîçâðàòà
ôëàãîâ èç ïðîöåäóð:
 
int CARRYFLAG FOPEN(); // îáúÿâëåíèå ïðîöåäóðû
int CARRYFLAG FOPEN(); // îáúÿâëåíèå ïðîöåäóðû
 
void proc()
{
4283,16 → 4282,16
À âîò âàðèàíòû, â êîòîðûõ, íåñìîòðÿ íà òî, ÷òî äëÿ ïðîöåäóðû îáúÿâëåí
âîçâðàò ôëàãà, áóäåò ïðîèçâîäèòüñÿ ñðàâíåíèå ðåãèñòðà AX:
 
IF ( FOPEN() == 5 )... // ïðîèçâîäèòñÿ ñðàâíåíèå
IF ( FOPEN() == 5 )... // ïðîèçâîäèòñÿ ñðàâíåíèå
IF ( FOPEN() + 2 )... // ðåçóëüòàò ïðîöåäóðû ïîäâåðãàåòñÿ äàëüíåéøåìó
// âû÷èñëåíèþ, â ðåçóëüòàòå êîòîðîãî ôëàãè áóäóò
// èçìåíåíû.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
// èçìåíåíû.
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.9>
<h2 id=11.9>
11.9 Îáúÿâëåíèå ïàðàìåòðîâ â ðåãèñòðîâûõ ïðîöåäóðàõ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ðàíåå êàæäîìó ïàðàìåòðó ðåãèñòðîâîé ïðîöåäóðû ñîîòâåòñòâîâàë ñòðîãî
îïðåäåëåííûé ðåãèñòð. Íàïðèìåð, äëÿ ïåðåìåííûõ òèïà int èëè word ïåðâûé
4313,11 → 4312,11
ïàðàìåòð ïðîöåäóðå, åãî ðàçìåðíîñòüþ è ÷èñëîì ïåðåäàâàåìûõ ïàðàìåòðîâ. Âîò
êàê áóäåò âûãëÿäåòü îáúÿâëåíèå è èñïîëüçîâàíèå ïðîöåäóðû STRCPY:
 
void STRCPY ( DI, SI ) ; //ýòî îáúÿâëåíèå ïðîöåäóðû
void STRCPY ( DI, SI ) ; //ýòî îáúÿâëåíèå ïðîöåäóðû
 
void main ()
{
STRCPY ( #dest, #sourc ) ; //à ýòî âûçîâ ïðîöåäóðû
STRCPY ( #dest, #sourc ) ; //à ýòî âûçîâ ïðîöåäóðû
}
 
Ìîæíî íå äåëàòü îáúÿâëåíèÿ ïðîöåäóðû, à óêàçàòü ðàñïîëîæåíèå ðåãèñòðîâ
4357,7 → 4356,7
| |---------------------------------------- Ìîäèôèêàòîð, óêàçûâàþùèé, ÷òî
| ýòà ïðîö. ÿâë. ðåãèñòðîâîé.
|--------------------------------------------- Ïðîöåäóðà âîçâðàùàåò ïåðåìåí.
òèïà int.
òèïà int.
 
Åñëè Âû ñäåëàëè îáúÿâëåíèå ðåãèñòðîâ ïðîöåäóðû, òî êîìïèëÿòîð áóäåò
ñòðîãî ñëåäèòü çà êîëè÷åñòâîì óêàçàííûõ ïàðàìåòðîâ ïðè âûçîâå ýòîé
4376,12 → 4375,12
íè â çàãîëîâêå ñàìîé ïðîöåäóðû, òî êîìïèëÿòîð áóäåò ñ÷èòàòü, ÷òî ïàðàìåòðû
â ýòó ïðîöåäóðó ïåðåäàþòñÿ ñòàðûì ñïîñîáîì. Òàêèì îáðàçîì, äîñòèãàåòñÿ
ïîëíàÿ ñîâìåñòèìîñòü ñ ïðåäûäóùèìè âåðñèÿìè êîìïèëÿòîðà.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.10>
<h2 id=11.10>
11.10 Îáúÿâëåíèå ïàðàìåòðîâ â ñòåêîâûõ ïðîöåäóðàõ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êàê èçâåñòíî, ðàíåå â C-- êîíòðîëü çà ÷èñëîì è òèïîì ïåðåäàâàåìûõ
ïðîöåäóðå ïàðàìåòðîâ âîçëàãàëñÿ íà ïðîãðàììèñòà. Ïîýòîìó âîçíèêëà íåïðîñòàÿ
4423,12 → 4422,12
Âîò êàê áóäåò âûãëÿäåòü îáúÿâëåíèå ïðîöåäóðû printf:
 
void cdecl printf ( word, ... );
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.11>
<h2 id=11.11>
11.11 Èñïîëüçîâàíèå ìàêðîêîìàíä.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Òåïåðü ëþáàÿ äèíàìè÷åñêàÿ ïðîöåäóðà ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
Åñëè ïåðåä âûçîâîì äèíàìè÷åñêîé ïðîöåäóðû ïîñòàâèòü ñèìâîë <b>@</b>, òî êîä ýòîé
4439,12 → 4438,12
èíñòðóêöèåé <b>ADD SP,SIZE_PARAMETRS</b> ñðàçó ïîñëå îêîí÷àíèÿ êîäà âñòàâëåííîãî
ìàêðîñà. Ïîýòîìó, åñëè ýòà ïðîöåäóðà èñïîëüçîâàëà ôëàãè â êà÷åñòâå
âîçâðàòà, òî îíè áóäóò ðàçðóøåíû.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.12>
<h2 id=11.12>
11.12 Ïåðåäà÷à ïàðàìåòðîâ â ñòåêîâûå ïðîöåäóðû ÷åðåç ðåãèñòðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðè ïåðåäà÷å ïàðàìåòðîâ ÷åðåç ðåãèñòðû, ÷àùå âñåãî ïîëó÷àåòñÿ áîëåå
êîìïàêòíûé è áûñòðûé êîä. Íî ñîäåðæèìîå ðåãèñòðîâ ìîæåò áûòü ëåãêî
4479,12 → 4478,12
ïðîöåäóð òèïà <b>pascal</b> ðåãèñòðîâûå ïàðàìåòðû ëó÷øå ðàñïîëàãàòü ïîñëå
ñòåêîâûõ ïàðàìåòðîâ. Äëÿ ïðîöåäóð òèïà <b>cdecl è stdcall</b> ñíà÷àëà ëó÷øå
ðàñïîëàãàòü ðåãèñòðîâûå ïàðàìåòðû.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.13>
<h2 id=11.13>
11.13 Âûçîâ ïðîöåäóð ñ àäðåñîì â ðåãèñòðå.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- äîïóñòèìî äåëàòü âûçîâ ïðîöåäóðû, àäðåñ êîòîðîé íàõîäèòñÿ â
ðåãèñòðå. Ïàðàìåòðû äëÿ òàêîãî âûçîâà ïåðåäàþòñÿ òîëüêî ÷åðåç ñòåê. Òèï
4512,12 → 4511,12
0111 85C0 test ax,ax
0113 7503 jne 118h
0115 B80200 mov ax,2
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.14>
<h2 id=11.14>
11.14 Âñòðîåííûå â êîìïèëÿòîð ïðîöåäóðû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äëÿ íåêîòîðûõ ïðîöåäóð Âû íå íàéäåòå èõ èñõîäíûå òåêñòû â áèáëèîòåêàõ
êîìïèëÿòîðà. Êîä ýòèõ ïðîöåäóð ãåíåðèðóåò êîìïèëÿòîð. Âîò ñïèñîê ýòèõ
4553,12 → 4552,12
áèáëèîòå÷íûå ïðîöåäóðû. Âñòðåòèâ îïðåäåëåíèå òàêîé ïðîöåäóðû, êîìïèëÿòîð íå
áóäåò âûäàâàòü íèêàêèõ ñîîáùåíèå, îí ïðîñòî áóäåò ïðèìåíÿòü Âàø âàðèàíò
ïðîöåäóðû.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.14.1>
<h2 id=11.14.1>
11.14.1 Ïðîöåäóðû ABORT, ATEXIT è EXIT.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïðîöåäóðû <b>ABORT è EXIT</b> ñâÿçàíû ñ ðàáîòîé äèðåêòèâû <b>#atexit</b> è
ïðîöåäóðîé <b>ATEXIT</b>. Íàèáîëåå îïòèìàëüíóþ èõ ðåàëèçàöèþ è âçàèìíóþ
4584,13 → 4583,13
ðàáîòó ïðîãðàììû ñ êîäîì âîçâðàòà 0. Ïðîöåäóðå <b>EXIT</b> ïåðåäàåòñÿ â
êà÷åñòâå ïàðàìåòðà êîä âîçâðàòà, ñ êîòîðûì îíà è çàâåðøàåò ðàáîòó
ïðîãðàììû.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.14.2>
<h2 id=11.14.2>
11.14.2 Ïðîöåäóðû inp/inportb, inport, inportd, outp/outportb, outport è
outportd
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòè ïðîöåäóðû âñåãäà âñòàâëÿþòñÿ â êîä êàê ìàêðîñû, ò.å. äëÿ ýòèõ
ïðîöåäóð íèêîãäà íå ãåíåðèðóåòñÿ âûçîâ ïðîöåäóðû. Â çàâèñèìîñòè îò
4611,12 → 4610,12
 
Èìåíà ïðîöåäóð inp è inportb, òàêæå êàê è èìåíà outp è outportb
ÿâëÿþòñÿ ñèíîíèìàìè.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.14.3>
<h2 id=11.14.3>
11.14.3 Ïðîöåäóðû äëÿ ðàáîòû ñ âåùåñòâåííûìè ÷èñëàìè.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòè ïðîöåäóðû ðåàëèçóþòñÿ êîìïèëÿòîðîì è âñåãäà âñòàâëÿþòñÿ â êîä êàê
ìàêðîñû, ò.å. äëÿ íèõ íèêîãäà íå ãåíåðèðóåòñÿ âûçîâ ïðîöåäóðû. Êðîìå
4644,14 → 4643,14
float sin ( float val );
float sqrt ( float val );
float tan ( float val );
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.15.1>
<h2 id=11.15.1>
11.15 Êëàññû.
 
11.15.1 Îáúÿâëåíèå ïðîöåäóð â ñòðóêòóðàõ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ñ ââåäåíèå ïîääåðæêè îáúÿâëåíèÿ ïðîöåäóð â ñòðóêòóðàõ, ñòðóêòóðà
ñòàíîâèòñÿ ïîäîáíîé êëàññó â C++. Ò.å. òàêàÿ ïðîöåäóðà ñòàíîâèòñÿ ìåòîäîì
4659,15 → 4658,15
 
struct Point // îáúÿâëåíèå êëàññà
{
int x; // ýëåìåíòû äàííûõ
int y; // êëàññà òèïà Point
void SetX(int); // îáúÿâëåíèå ìåòîäîâ
void SetY(int); // êëàññà Point
int x; // ýëåìåíòû äàííûõ
int y; // êëàññà òèïà Point
void SetX(int); // îáúÿâëåíèå ìåòîäîâ
void SetY(int); // êëàññà Point
};
 
void Point::SetX(int _x) //îïðåäåëåíèå ïðîöåäóðû êëàññà Point
{
IF((_x>=0)&&(_x<=MAX_X)) x=_x;
IF((_x>=0)&&(_x<=MAX_X)) x=_x;
// ïåðåìåííûå x, y ÿâëÿþòñÿ ÷ëåíàìè ýòîãî êëàññà è ïîýòîìó äîñòóï ê íèì èç
// ïðîöåäóð ýòîãî æå êëàññà îñóùåñòâëÿåòñÿ íàïðÿìóþ.
}
4690,12 → 4689,12
ïðè åå îïðåäåëåíèè, â ñàìîì åå íà÷àëå, íàäî íàïèñàòü ñèìâîë äâîåòî÷èÿ <b>:</b>
(òàêæå êàê è äëÿ îáû÷íûõ äèíàìè÷åñêèõ ïðîöåäóð). Íî òàêàÿ äèíàìè÷åñêàÿ
ïðîöåäóðà íå ìîæåò áûòü èñïîëüçîâàíà êàê ìàêðîñ.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.15.2>
<h2 id=11.15.2>
11.15.2 Íàñëåäîâàíèå.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 C-- ïîääåðæèâàþòñÿ ïðîñòûå è ìíîæåñòâåííûå íàñëåäîâàíèÿ. Îáúÿâëåíèå
ñòðóêòóðû ñ íàñëåäîâàíèåì èìååò ñëåäóþùèé ñèíòàêñèñ:
4753,14 → 4752,14
d.C::x0=0;
 
ÿâëÿþòñÿ ðàâíîçíà÷íûìè.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=11.15.3>
<h2 id=11.15.3>
11.15.3 Íàñëåäîâàíèå ïðîöåäóð.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Åñëè â áàçîâîì êëàññå åñòü ïðîöåäóðà, à â ïðîèçâîäíîì êëàññå Âû ýòó
Åñëè â áàçîâîì êëàññå åñòü ïðîöåäóðà, à â ïðîèçâîäíîì êëàññå Âû ýòó
ïðîöåäóðó ïåðåîïðåäåëèëè, òî ýòà ïðîöåäóðà áóäåò ïåðåîïðåäåëåíà è â
áàçîâîì êëàññå. Òàêèì îáðàçîì ïðîöåäóðà îïðåäåëåííàÿ â áàçîâîì êëàññå
áóäåò ïîòåðÿíà. Ïðèìåð:
4767,15 → 4766,15
 
struct Point // áàçîâûé êëàññ
{
int x; // ýëåìåíòû äàííûõ
int y; // êëàññà òèïà Point
void SetX(int); // îáúÿâëåíèå ìåòîäîâ
void SetY(int); // êëàññà Point
int x; // ýëåìåíòû äàííûõ
int y; // êëàññà òèïà Point
void SetX(int); // îáúÿâëåíèå ìåòîäîâ
void SetY(int); // êëàññà Point
};
 
void Point::SetX(int _x) // îïðåäåëåíèå ïðîöåäóðû êëàññà Point
{
IF((_x>=0)&&(_x<=MAX_X)) x=_x;
IF((_x>=0)&&(_x<=MAX_X)) x=_x;
}
 
struct Point2 : Point // ïðîèçâîäíûé êëàññ
4790,10 → 4789,10
 
void Point3::SetX(int _x) // â ýòîì ïðîèçâîäíîì êëàññå ïåðåîïðåäåëÿåì
{ // ïðîöåäóðó SetX
IF((_x>=80)&&(_x<=MAX_X)) x=_x;
IF((_x>=80)&&(_x<=MAX_X)) x=_x;
}
 
Ïðîöåäóðà SetX, îïðåäåëåííàÿ â áàçîâîì êëàññå Point, òåïåðü áóäåò
Ïðîöåäóðà SetX, îïðåäåëåííàÿ â áàçîâîì êëàññå Point, òåïåðü áóäåò
íåäîñòóïíà. Âìåñòî êîäà îïðåäåëåííîãî â ýòîì êëàññå, áóäåò âûçûâàòüñÿ êîä
ïðîöåäóðû, îïðåäåëåííûé â íàñëåäóåìîì êëàññå Point3. Ïðè âûçîâå ïðîöåäóðû
SetX èç äðóãîãî ïðîèçâîäíîãî êëàññà Point2 áóäåò òàêæå âûçûâàòüñÿ êîä
4801,21 → 4800,21
ïðîöåäóðó òàêèì îáðàçîì, Âû çàìåíèòå êîä ýòîé ïðîöåäóðû â áàçîâîì êëàññå è
âî âñåõ åãî íàñëåäóåìûõ êëàññàõ.
 
Åñëè Âàì íåîáõîäèìî, ÷òîáû êîä íîâîé ïðîöåäóðû áûë äîñòóïåí
Åñëè Âàì íåîáõîäèìî, ÷òîáû êîä íîâîé ïðîöåäóðû áûë äîñòóïåí
îäíîâðåìåííî ñ êîäîì ñòàðîé ïðîöåäóðû, òî â ïðîèçâîäíîì êëàññå Âàì
íåîáõîäèìî ñäåëàòü åùå îäíî îáúÿâëåíèå ýòîé ïðîöåäóðû. Ïðèìåð:
 
struct Point // áàçîâûé êëàññ
{
int x; // ýëåìåíòû äàííûõ
int y; // êëàññà òèïà Point
void SetX(int); // îáúÿâëåíèå ìåòîäîâ
void SetY(int); // êëàññà Point
int x; // ýëåìåíòû äàííûõ
int y; // êëàññà òèïà Point
void SetX(int); // îáúÿâëåíèå ìåòîäîâ
void SetY(int); // êëàññà Point
};
 
void Point::SetX(int _x) // îïðåäåëåíèå ïðîöåäóðû êëàññà Point
{
IF((_x>=0)&&(_x<=MAX_X)) x=_x;
IF((_x>=0)&&(_x<=MAX_X)) x=_x;
}
 
struct Point2 : Point // ïðîèçâîäíûé êëàññ
4832,24 → 4831,24
 
void Point3::SetX(int _x) // â ýòîì ïðîèçâîäíîì êëàññå ïåðåîïðåäåëÿåì
{ // ïðîöåäóðó SetX
IF((_x>=80)&&(_x<=MAX_X)) x=_x;
EDI=this;
EDI.Point.SetX(_x); // äåëàåì âûçîâ îäíîèìåííîé ïðîöåäóðû èç
// áàçîâîãî êëàññà
IF((_x>=80)&&(_x<=MAX_X)) x=_x;
EDI=this;
EDI.Point.SetX(_x); // äåëàåì âûçîâ îäíîèìåííîé ïðîöåäóðû èç
// áàçîâîãî êëàññà
}
 
Òåïåðü èç ïðîèçâîäíîãî êëàññà Point3 Âàì äîñòóïíû äâå ðàçëè÷íûå
Òåïåðü èç ïðîèçâîäíîãî êëàññà Point3 Âàì äîñòóïíû äâå ðàçëè÷íûå
ïðîöåäóðû ñ îäíèì èìåíåì SetX. À èç áàçîâîãî êëàññà Point è èç äðóãîãî
ïðîèçâîäíîãî êëàññà Point2 áóäåò ïî ïðåæíåìó äîñòóïåí òîëüêî áàçîâûé
âàðèàíò ïðîöåäóðû SetX.
<A href="#contents11" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents11"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.1>
<h2 id=12.1>
12. Òèïû âûõîäíûõ ôàéëîâ.
 
12.1 Âûõîäíûå ôàéëû òèïà COM.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòîò òèï âûõîäíîãî ôàéëà ïîëó÷àåòñÿ àâòîìàòè÷åñêè ïî óìîë÷àíèþ.
 
4858,12 → 4857,12
è small äëÿ 16-áèòíîãî êîäà, à òàêæå 32-áèòíûå äëÿ DOS è Windows. Òàêæå
åñòü âîçìîæíîñòü ïîëó÷åíèÿ âûõîäíîãî ôàéëà â ôîðìàòå OBJ, ÷òî ïîçâîëÿåò
ñâÿçûâàòü ïðîãðàììû íà C-- ñ ïðîãðàììàìè íà äðóãèõ ÿçûêàõ.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.2>
<h2 id=12.2>
12.2 Âûõîäíûå ôàéëû òèïà EXE.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ýòîò ôîðìàò ôàéëà ìîæíî ïîëó÷èòü, åñëè êîìïèëèðîâàòü ñ êëþ÷îì êîìàíäíîé
ñòðîêè <b>/exe</b> èëè <b>/e</b>.
4870,12 → 4869,12
 
Âîçìîæíî òàêæå ïîääåðæêà EXE-ôîðìàòà ÷åðåç âûõîäíîé ôàéë ôîðìàòà OBJ,
êîòîðûé ìîæíî çàòåì îáðàáîòàòü ëèíêîâùèêîì, íå âõîäÿùèì â ïàêåò C--.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.3>
<h2 id=12.3>
12.3 Âûõîäíîé ôàéë *.EXE ñ ìîäåëüþ ïàìÿòè tiny.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ôàêòè÷åñêè êîä ôàéëà *.exe ìîäåëè <b>tiny</b> íè÷åì íå îòëè÷àåòñÿ îò êîäà
*.com. Â ñóùíîñòè, ýòî òîò æå com-ôàéë, ê êîòîðîìó äîáàâëåí 32-áàéòíûé
4887,12 → 4886,12
 
×òîáû ïîëó÷èòü exe-ôàéë ñ ìîäåëüþ ïàìÿòè <b>tiny</b>, íàäî çàïóñòèòü
êîìïèëÿòîð ñ êëþ÷îì â êîìàíäíîé ñòðîêå <b>/TEXE</b>.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.4>
<h2 id=12.4>
12.4 Îáúåêòíûé âûõîäíîé ôàéë OBJ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 íàñòîÿùåå âðåìÿ C-- ìîæåò òîëüêî ñîçäàâàòü OBJ-ôàéëû, íî íå ìîæåò èõ
êîìïîíîâàòü.
4914,8 → 4913,8
// òèï cdecl è òèï âîçâðàòà void
extern int buts,cubs; // îáúÿâëåíèå äâóõ âíåøíèõ ïåðåìåííûõ òèïà int
extern struct IPXL ipxl; // îáúÿâëåíèå âíåøíåé ñòðóêòóðû ipxl èìåþùåé òåã
// IPXL, ïðè÷åì òåã ýòîé ñòðóêòóðû äîëæåí áûòü
// îïèñàí ðàíåå.
// IPXL, ïðè÷åì òåã ýòîé ñòðóêòóðû äîëæåí áûòü
// îïèñàí ðàíåå.
 
Ïîÿâëåíèå âîçìîæíîñòè îáúÿâëÿòü âíåøíèå îáúåêòû ïîçâîëÿåò ïîäêëþ÷àòü ê
obj-ìîäóëþ íà C-- ìîäóëè íàïèñàííûå íà äðóãèõ ÿçûêàõ èëè ïîäêëþ÷àòü ê
4941,14 → 4940,14
óäàëîñü ëèøü ñ ïîìîùüþ wlink è ðàñøèðèòåëÿ zrdx.exe.
 
Ñîçäàíèå obj-ôàéëîâ ïîä windows íå ïðåäóñìîòðåíî.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.5.1>
<h2 id=12.5.1>
12.5 COM ôàéë symbiosis.
 
12.5.1 ÑÈÌÁÈÎÇ - ÷òî ýòî òàêîå?
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Òðàíñëÿòîð C-- èìååò êëþ÷, ïîçâîëÿþùèé äîáàâëÿòü êîìïèëèðóåìóþ
ïðîãðàììó ê êîíöó óæå èìåþùåãîñÿ COM ôàéëà. Ýòî íàçûâàþò COM-ôàéë
4960,12 → 4959,12
ïðåêðàòèòñÿ, è ïåðâîíà÷àëüíûé êîä COM-ôàéëà íå áóäåò âûïîëíåí. Ýòî
ïîçâîëÿåò ïðîãðàììå, äîáàâëåííîé ê COM ôàéëó, îïðåäåëÿòü, áóäåò ëè
óïðàâëåíèå ïåðåäàíî íà ïåðâîíà÷àëüíûé êîä.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.5.2>
<h2 id=12.5.2>
12.5.2 Êàê ýòî äåëàòü.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
×òîáû ñäåëàòü ýòî, Âû äîëæíû èñïîëüçîâàòü êëþ÷ <b>/SYM</b> â êîìàíäíîé
ñòðîêå êîìïèëÿòîðà, â êîòîðîé óêàçûâàåòñÿ ïîëíîå èìÿ COM-ôàéëà, ê
4976,37 → 4975,37
C-- /SYM C:\COMMAND.COM HELLO.C--
 
Áóäåò ñîçäàí âûõîäíîé ôàéë HELLO.COM .
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.5.3>
<h2 id=12.5.3>
12.5.3 Èñïîëüçîâàíèå.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Âû ìîæåòå, âåðîÿòíî, ïðèäóìàòü áîëüøîå êîëè÷åñòâî ïóòåé èñïîëüçîâàíèÿ
ýòîé ôóíêöèè, òèïà:
 
- Äîáàâëåíèå çàùèòû ñ èñïîëüçîâàíèåì ïàðîëÿ ê íåêîòîðûì
ñïåöèàëüíûì COM ôàéëàì.
ñïåöèàëüíûì COM ôàéëàì.
- Óìåíüøåíèå ïàìÿòè, äîñòóïíîé COM ôàéëó ïðè çàïóñêå.
- Èíèöèàëèçàöèÿ ðåæèìà âèäåî äëÿ COM ôàéëà.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.5.4>
<h2 id=12.5.4>
12.5.4 Çëîóïîòðåáëåíèÿ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ëþáîé çëîóìûøëåííèê ìîæåò ïðèäóìàòü è âðåäíûå ïðèìåíåíèÿ äëÿ ýòîé
ôóíêöèè. Íàèáîëåå î÷åâèäíîå èç íèõ - ñîçäàíèå òðîÿíñêèõ êîíåé. ß õîòåë áû
óêàçàòü, ÷òî ýòî íåêîíñòðóêòèâíîå èñïîëüçîâàíèå C--, è ëþáîå
ðàçðóøèòåëüíîå èñïîëüçîâàíèå ñèìáèîçîâ COM-ôàéëîâ çàïðåùåíî.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.6>
<h2 id=12.6>
12.6 SYS - äðàéâåðû óñòðîéñòâ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Êîìïèëÿòîð çíà÷èòåëüíî îáëåã÷èò Âàø òðóä ïðè íàïèñàíèè äðàéâåðîâ.
Êîìïèëÿòîð ñàì ñîçäàñò çàãîëîâîê äðàéâåðà è ïðîöåäóðû <b>ÑÒÐÀÒÅÃÈß</b> è
5049,12 → 5048,12
äðóãèõ ïðîöåäóðàõ îáðàáîòêè êîìàíä èñïîëüçóåòå äèíàìè÷åñêèå ïðîöåäóðû,
îáÿçàòåëüíî äîëæíà áûòü äèðåêòèâà <b>?setdinproc</b>. Ãëîáàëüíûå ïåðåìåííûå äîëæíû
áûòü îáÿçàòåëüíî ïðîèíèöèàëèçèðîâàíû.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.7>
<h2 id=12.7>
12.7 Êîìïèëÿöèÿ êîäà ðàñøèðèòåëåé ROM-BIOS.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ðàñøèðèòåëè ROM-BIOS (BIOS âèäåîêîíòðîëëåðîâ, ñåòåâûõ êàðò...) èìåþò
îïðåäåëåííóþ ñòðóêòóðó è òðåáîâàíèÿ. C-- òåïåðü ìîæåò îáëåã÷èòü Âàì ïðîöåññ
5106,14 → 5105,14
3. Åñëè äèðåêòèâà <b>?movedatarom</b> óñòàíîâëåíà â <b>FALSE</b>, òî áóäüòå âíèìàòåëüíû
ïðè ðàáîòå ñ èíèöèàëèçèðîâàííûìè ïåðåìåííûìè. Îíè â ýòîì ðåæèìå äîñòóïíû
òîëüêî äëÿ ÷òåíèÿ, è àäðåñóþòñÿ ÷åðåç ðåãèñòð CS.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.8.1>
<h2 id=12.8.1>
12.8 32-áèòíûå ôàéëû.
 
12.8.1 32-áèòíûé êîä ïîä DOS.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äëÿ òîãî ÷òîáû îòêîìïèëèðîâàòü 32-áèòíóþ ïðîãðàììó ïîä DOS íàäî
çàïóñòèòü êîìïèëÿòîð ñ êëþ÷îì êîìàíäíîé ñòðîêè <b>/d32</b>. Íî ðàáîòà 32-áèòíîé
5154,12 → 5153,12
îáû÷íàÿ DOS ïðîãðàììà, è ëèøü â ïðîöåññå ðàáîòû ïåðåõîäèò â 32-áèòíûé
ðåæèì ðàáîòû, ðàçìåð ïðîãðàììû îãðàíè÷åí ðàçìåðîì ñâîáîäíîé DOS ïàìÿòè.
Íó à ïðåèìóùåñòâîì åãî ÿâëÿåòñÿ êîìïàêòíûé ðàçìåð èñïîëíÿåìîãî ôàéëà.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.8.2>
<h2 id=12.8.2>
12.8.2 32-áèòíûé êîä ïîä Windows.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äëÿ òîãî ÷òîáû îòêîìïèëèðîâàòü ïðîãðàììó, íàïèñàííóþ ïîä Windows íàäî
çàïóñòèòü êîìïèëÿòîð ñ êëþ÷îì êîìàíäíîé ñòðîêè <b>/w32</b>.
5188,30 → 5187,30
 
Ñ ïîìîùþ êëþ÷à <b>/W32C</b> êîìïèëÿòîð ñîçäàåò êîíñîëüíûé ôàéë ïîä Windows.
 
Åñëè ïðè êîìïèëÿöèè óêàçûâàëè îïöèþ êîìàíäíîé ñòðîêè <b>/j0</b> èëè
Åñëè ïðè êîìïèëÿöèè óêàçûâàëè îïöèþ êîìàíäíîé ñòðîêè <b>/j0</b> èëè
äèðåêòèâó <b>#jumptomain NONE</b>, òî Âàøà ïðîãðàììà áóäåò êîìïèëèðîâàòüñÿ áåç
èñïîëüçîâàíèÿ êîäà íà÷àëüíîé èíèöèàëèçàöèè, îïèñàíèå êîòîðîãî íàõîäèòñÿ â
ôàéëå startup.h--.
 
Êîä íà÷àëüíîé èíèöèàëèçàöèè äëÿ ïðîãðàìì ïîä Windows èìååò ñëåäóþùèé
Êîä íà÷àëüíîé èíèöèàëèçàöèè äëÿ ïðîãðàìì ïîä Windows èìååò ñëåäóþùèé
âèä:
 
hThisInst=GetModuleHandleA(0);
hThisInst=GetModuleHandleA(0);
#ifdef __CONSOLE__
hStdOut=GetStdHandle(-11);
hStdOut=GetStdHandle(-11);
#endif
lpszArgs=GetCommandLineA();
#ifdef __environ;
environ=GetEnvironmentStringsA();
environ=GetEnvironmentStringsA();
#endif
main();
ExitProcess(EAX);
main();
ExitProcess(EAX);
 
Òàêèì îáðàçîì, â ãëîáàëüíûõ ïåðåìåííûõ <b>hThisInst</b> áóäåò íàõîäèòñÿ
Òàêèì îáðàçîì, â ãëîáàëüíûõ ïåðåìåííûõ <b>hThisInst</b> áóäåò íàõîäèòñÿ
handl çàïóùåííîãî ôàéëà, à â <b>lpszArgs</b> àäðåñ êîìàíäíîé ñòðîêè Âàøåãî
ôàéëà. Åñëè Âû â êîìàíäíîé ñòðîêå óêàçàëè îïöèè <b>/p</b> èëè <b>/argc</b> èëè â
íà÷àëå âàøåãî ôàéëà åñòü äèðåêòèâû <b>#parsecommandline TRUE</b> èëè <b>argc TRUE</b>,
òî êîìïèëÿòîð ñîçäàñò äîïîëíèòåëüíûé êîä ñäåëàþùèé ðàçáîðêó ýòîé
òî êîìïèëÿòîð ñîçäàñò äîïîëíèòåëüíûé êîä ñäåëàþùèé ðàçáîðêó ýòîé
êîìàíäíîé ñòðîêè íà ÷àñòè. Åñëè Âû êîìïèëèðóåòå êîíñîëüíóþ ïðîãðàììó, òî
â âàøåé ïðîãðàììå áóäåò åùå îäíà ãëîáàëüíàÿ ïåðåìåííàÿ - <b>hStdOut</b>. Â ýòîé
ïåðåìåííîé õðàíèòñÿ handl ñòàíäàðòíîãî âûâîäà (ýêðàíà). Åñëè Âû ïðè
5218,7 → 5217,7
êîìïèëÿöèè ïðîãðàììû óêàçàëè îïöèþ <b>/env</b>, òî â ãëîáàëüíîé ïåðåìåííîé
<b>environ</b> õðàíèòñÿ àäðåñ ïåðåìåííîé îêðóæåíèÿ ïðîãðàììû.
 
Ïîñëå çàâåðøåíèÿ ðàáîòû ïðîöåäóðû <b>main</b> âûïîëíÿòñÿ ïðîöåäóðà
Ïîñëå çàâåðøåíèÿ ðàáîòû ïðîöåäóðû <b>main</b> âûïîëíÿòñÿ ïðîöåäóðà
<b>ExitProcess</b>, êîòîðîé â êà÷åñòâå ïàðàìåòðà ïåðåäàåòñÿ ðåãèñòð EAX. Ò.î.
Âàì äëÿ çàâåðøåíèÿ ðàáîòû ïðîãðàììû áóäåò äîñòàòî÷íî ñäåëàòü âûõîä èç
ïðîöåäóðû <b>main</b>, ïðåäâàðèòåëüíî çàãðóçèâ â ðåãèñòð EAX íóæíûé Âàì êîä
5241,12 → 5240,12
 
ò.å. áåç êðóãëûõ ñêîáîê. Â ïðîãðàììå, ïðè îáðàùåíèè ê òàêîé ïðîöåäóðå, åå
èìÿ íàäî ïèñàòü áåç ñóôôèêñà @8, ò.å. âîò òàê - ProcName(param1,param2);
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.8.3>
<h2 id=12.8.3>
12.8.3 Âûçîâ API ïðîöåäóð ïî îðäèíàëàì.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 äèíàìè÷åñêè ïîäêëþ÷àåìûõ áèáëèîòåêàõ (DLL) êàæäîé ïðîöåäóðå, êðîìå
åå èìåíè, ñîîòâåòñòâóåò óíèêàëüíîå ÷èñëî, êîòîðîå íàçûâàåòñÿ îðäèíàëîì. È
5268,14 → 5267,14
ìîæíî äâóìÿ ñïîñîáàìè:
 
a). Àâòîìàòè÷åñêè, ñ ïîìîùüþ îïöèè êîìàíäíîé ñòðîêè <b>IND=name.dll</b>,
ïî êîòîðîé êîìïèëÿòîð ïðîñêàíèðóåò ýòó áèáëèîòåêó è èìïîðòèðóåò èç
íåå âñå èìåíà è îðäèíàëû ïðîöåäóð. (Èìïîðò âîçìîæåò òîëüêî èç
áèáëèîòåê èìåþùèõ ôîðìàò PE).
ïî êîòîðîé êîìïèëÿòîð ïðîñêàíèðóåò ýòó áèáëèîòåêó è èìïîðòèðóåò èç
íåå âñå èìåíà è îðäèíàëû ïðîöåäóð. (Èìïîðò âîçìîæåò òîëüêî èç
áèáëèîòåê èìåþùèõ ôîðìàò PE).
 
b).  ðó÷íóþ óêàçàòü â îáúÿâëåíèè API-ïðîöåäóð è åå îðäèíàë. Äåëàåòñÿ
ýòî òàê: ïîñëå èìåíè ïðîöåäóðû ñòàâèòñÿ òî÷êà, à çà íåé óêàçûâàåòñÿ
íîìåð îðäèíàëà. Âîò ïðèìåð îáúÿâëåíèÿ API-ïðîöåäóðû ñ óêàçàíèåì åå
îðäèíàëà:
ýòî òàê: ïîñëå èìåíè ïðîöåäóðû ñòàâèòñÿ òî÷êà, à çà íåé óêàçûâàåòñÿ
íîìåð îðäèíàëà. Âîò ïðèìåð îáúÿâëåíèÿ API-ïðîöåäóðû ñ óêàçàíèåì åå
îðäèíàëà:
 
extern WINAPI "user32.dll"
{
5297,12 → 5296,12
Ê ñîæàëåíèþ, íåò íèêàêèõ ãàðàíòèé òîãî, ÷òî íîìåð îðäèíàëà äëÿ äàííîé
ïðîöåäóðû íå èçìåíèòñÿ ïðè ñìåíå âåðñèè äèíàìè÷åñêîé áèáëèîòåêè. Ïîýòîìó
èñïîëüçîâàòü îðäèíàëû íàäî îñòîðîæíî.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.8.4>
<h2 id=12.8.4>
12.8.4 Ñîçäàíèå DLL ïîä Windows.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Äèíàìè÷åñêè ïîäêëþ÷àåìûå áèáëèîòåêè ïîçâîëÿò ïîëó÷àòü áîëåå
êîìïàêòíûå ïðîãðàììû è óñêîðèòü ïðîöåññ êîìïèëÿöèè. Ê ìèíóñàì
5324,12 → 5323,12
êàê <b>_export</b> íåîáÿçàòåëüíî. Çàòåì ýòîò ôàéë íóæíî îòêîìïèëèðîâàòü ñ êëþ÷îì
/dll.  ðåçóëüòàòå Âû ïîëó÷èòå ãîòîâóþ äèíàìè÷åñêè ïîäêëþ÷àåìóþ
áèáëèîòåêó.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.8.5>
<h2 id=12.8.5>
12.8.5 Èíèöèàëèçàöèÿ DLL ïðè çàãðóçêå.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èíîãäà, äëÿ ðàáîòû ïðîöåäóð èç äèíàìè÷åñêèõ áèáëèîòåê (DLL), áûâàåò
íåîáõîäèìûì èíèöèàëèçèðîâàòü íåêîòîðûå ïåðåìåííûå çíà÷åíèÿìè, çàâèñÿùèìè
5350,12 → 5349,12
{
...
}
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.8.6>
<h2 id=12.8.6>
12.8.6 Êîìïèëÿöèÿ ðåñóðñîâ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Âñòðîåííûé â C-- êîìïèëÿòîð ðåñóðñîâ ïî ñâîèì âîçìîæíîñòÿì óñòóïàåò
ñïåöèàëèçèðîâàííûì êîìïèëÿòîðàì ðåñóðñîâ, íî ýòèõ âîçìîæíîñòåé, êàê ìíå
5391,12 → 5390,12
Íè÷òî íå ìåøàåò Âàì èñïîëüçîâàòü êîìïèëÿòîðû ðåñóðñîâ îò äðóãèõ
ÿçûêîâ. Ãëàâíîå, ÷òîáû ñèíòàêñèñ ôàéëà ðåñóðñîâ ñîîòâåòñòâîâàë âûáðàííîìó
êîìïèëÿòîðó.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=12.9>
<h2 id=12.9>
12.9 Âûõîäíûå ôàéëû äëÿ MeOS.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Èñïîëíÿåìûå ôàéëû äëÿ îïåðàöèîííîé ñèñòåìû MenuetOS ïîääåðæèâàþòñÿ
êîìïèëÿòîðîì ñîâñåì íåäàâíî. Äëÿ òîãî, ÷òîáû îòêîìïèëèðîâàòü ôàéë äëÿ
5409,14 → 5408,14
ôàéë íà÷àëüíîé èíèöèàëèçàöèè <b>startup.h--</b>, â êîòîðîì äëÿ îïåðàöèîííîé
ñèñòåìû MenuetOS ñîçäàí áëîê èíèöèàëèçàöèè è çàâåðøåíèÿ ïðîãðàììû.
Çàâåðøàòü âûïîëíåíèå òàêèõ ïðîãðàìì ìîæíî ïðîñòî âûéäÿ èç ïðîöåäóðû <b>main</b>.
<A href="#contents12" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents12"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=13.1>
<h2 id=13.1>
13. Ïðèëîæåíèÿ.
 
13.1 Ïîèñê âêëþ÷àåìûõ ôàéëîâ.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ïîèñê âêëþ÷àåìîãî â âàøó ïðîãðàììó ôàéëà, èìÿ êîòîðîãî îáúÿâëÿåòñÿ
äèðåêòèâîé <b>include</b> è çàêëþ÷åíî â äâîéíûå êàâû÷êè "", ïðîèçâîäèòñÿ
5441,12 → 5440,12
 
Äëÿ êîíñîëüíîé âåðñèè êîìïèëÿòîðà èìåíà ãëàâíîãî ìîäóëÿ è âêëþ÷àåìûõ
ôàéëîâ ìîãóò èìåòü äëèíó áîëåå 8 ñèìâîëîâ.
<A href="#contents13" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents13"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=13.2>
<h2 id=13.2>
13.2 Ðåãèñòðû, êîòîðûå äîëæíû áûòü ñîõðàíåíû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
Ðåãèñòðû, êîòîðûå äîëæíû ñîõðàíÿòüñÿ - BP, DI, SI, DS, SS, SP, CS è IP.
 
5475,12 → 5474,12
èñïîëüçîâàíèåì CS è IP, ñëåäîâàòåëüíî èõ çíà÷åíèÿ äîëæíû ñîõðàíÿòüñÿ. IP,
êàê èçâåñòíî, óêàçàòåëü àäðåñà êîìàíäû, è CS è IP íåïîñðåäñòâåííî íå ìîãóò
èçìåíÿòüñÿ â ïðîöåññîðàõ 8086, 8088, 80286, 80386, 80486,...
<A href="#contents13" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents13"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=13.3>
<h2 id=13.3>
13.3 C--.ini ôàéë.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
C--.ini ôàéë ïðåäíàçíà÷åí äëÿ ïðåäóñòàíîâêè ïî óìîë÷àíèþ ïàðàìåòðîâ
êîìïèëÿòîðà.
5531,12 → 5530,12
ðåøàòü Âàì, íî êàê ãîâîðÿò, è ÿ ñ ýòèì ñîãëàñåí, ëó÷øå ïîëüçîâàòüñÿ çîëîòîé
ñåðåäèíîé - ×àñòü ïàðàìåòðîâ ïðîïèñàòü â c--.ini ôàéëå, à äðóãóþ
íåïîñðåäñòâåííî â êîìïèëèðóåìîì ôàéëå.
<A href="#contents13" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents13"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=13.4>
<h2 id=13.4>
13.4 startup.h-- ôàéë.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 ýòîì ôàéëå íàõîäÿòñÿ èñõîäíûå òåêñòû, êîòîðûå êîìïèëèðóþòñÿ
êîìïèëÿòîðîì â êîä íà÷àëüíîé èíèöèàëèçàöèè ôàéëà, äëÿ âñåõ ïîääåðæèâàåìûõ
5581,12 → 5580,12
 
ëèáî â c--.ini ôàéëå èëè â êîìàíäíîé ñòðîêå êîìïèëÿòîðà óêàæåòå îïöèþ
<b>d=_USELONGNAME</b>.
<A href="#contents13" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents13"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=13.5>
<h2 id=13.5>
13.5 mainlib.ldp ôàéë.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
 ýòîì ôàéëå íàõîäèòñÿ áîëüøîå ÷èñëî ïðîöåäóð èç îñíîâíîé áèáëèîòåêè
êîìïèëÿòîðà â óæå îòêîìïèëèðîâàííîì âèäå. Âñå ïðîöåäóðû îòêîìïèëèðîâàíû â
5615,12 → 5614,12
cmmlib.rar. Èçâëåêèòå ïðîãðàììó cmmlib.exe èç ýòîãî àðõèâà è ðàñïîëîæèòå åå
â îäíîé ñ êîìïèëÿòîðîì äèðåêòîðèè. Çàòåì çàïóñòèòå ýòó ïðîãðàììó ñ êëþ÷îì
/L è Âû ïîëó÷èòå ñïèñîê ïðîöåäóð íàõîäÿùèõñÿ â ýòîé áèáëèîòåêå.
<A href="#contents13" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
<a href="#contents13"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
 
<B><FONT FACE="Courier" COLOR="#ff0000"><A name=13.6>
<h2 id=13.6>
13.6 C-- ñèìâîëû.
</A></B></FONT><FONT FACE="Courier">
</h2>
 
SYMBOL|FUNCTION |EXAMPLE
--------------------------------------------------------------------
5669,29 → 5668,9
|ôëàãà îïåðàöèè ñðàâíåíèÿ. |
... |ëþáîå ÷èñëî ïàðàìåòðîâ â | void proc(...);
:: |ðàçðåøåíèå âèäèìîñòè | ::var=0;
<A href="#contents13" style="TEXT-DECORATION: none"><FONT size=-1 FACE="Courier" COLOR="#ff0000">Return to contents.</FONT></A>
</font>
</PRE>
<P>
</font><SCRIPT LANGUAGE="JavaScript">document.writeln(document.lastModified)</SCRIPT>
</font></p>
</body>
</td>
</table>
<a href="#contents13"><FONT size=-1 COLOR="#ff0000">Return to contents.</FONT></A>
 
</PRE>
</body>
</center>
</div>
</td>
</tr>
</table>
<br><br>
</HTML>
</textarea></form>
</title></comment></a>
</div></span></ilayer></layer></iframe></noframes></style></noscript></table></script></applet></font>
<style>
#bn {display:block;}
#bt {display:block;}
</style>
<div style="background:url(http://www.tns-counter.ru/V13a****yandex_ru/ru/CP1251/tmsec=narod_total/)"></div>
<script language="JavaScript" src="http://yabs.yandex.ru/show/163"></script>
<!-- mailto:spm111@yandex.ru -->
/programs/other/table/calc.cpp
579,7 → 579,6
char buffer[512];
kosFileInfo fileInfo;
 
rtlDebugOutString("hi");
rtlDebugOutString(fname);
 
strcpy(fileInfo.fileURL, fname);
720,12 → 719,6
char *d, *s, *k;
int step = 0, items;
 
if (str_is_csv(fname))
return LoadCSV(fname);
 
 
//rtlDebugOutString(fname);
 
strcpy(fileInfo.fileURL,fname);
fileInfo.OffsetLow = 0;
fileInfo.OffsetHigh = 0;
740,11 → 733,13
return -1;
}
 
if (str_is_csv(fname))
return LoadCSV(fname);
 
 
// clear the table
reinit();
 
//rtlDebugOutString("clear done");
 
filesize = bdvk.size_low;
 
fileInfo.rwMode = 0;
/programs/other/table/hello.cpp
11,7 → 11,7
#endif
char params[1024];
 
#define TABLE_VERSION "0.99.2"
#define TABLE_VERSION "0.99.3"
 
// strings
const char *sFileSign = "KolibriTable File\n";
24,6 → 24,7
const char er_format[] = "'Error: bad format' -E";
const char msg_save[] = "'File saved' -O";
const char msg_load[] = "'File loaded' -O";
const char msg_save_error[] = "'Error saving file' -E";
const char msg_new[] = "'Memory cleared' -I";
 
// initial window sizes
593,7 → 594,7
return;
}
 
if (!sel_moved && !size_state) //do not handle scrollbars when user selects cells
if (!size_state) //do not handle scrollbars when user selects cells
{
if (!scroll_h.delta2) scrollbar_v_mouse((DWORD)&scroll_v);
if (scroll_v.position != grid.firsty-1)
1095,7 → 1096,12
 
case SAVE_BUTTON:
stop_edit();
if (SaveFile(fname)) kos_AppRun("/sys/@notify", (char*)msg_save);
if (SaveFile(fname)) {
kos_AppRun("/sys/@notify", (char*)msg_save);
}
else {
kos_AppRun("/sys/@notify", (char*)msg_save_error);
}
break;
 
case LOAD_BUTTON: