"‘®¢¥àè¨â¥ ¢ë ¬ ááã ®âªàë⨩,
                                 ¨­®£¤  ­¥ ¦¥« ï ⮣®..."
                                    ¥ ¯®¬­î  ¢â®à , ­® ¯¥« 
                                    €­¤à¥© Œ¨à®­®¢.

              à¥¤¨á«®¢¨¥.

    ˆ¤¥ï ­ ¯¨á âì ª®¬¯¨«ïâ®à ¤«ï Win32 த¨« áì ¯à¨ ¬®¥¬ ¯¥à¢®¬
§­ ª®¬á⢥ á ª®¬¯¨«ïâ®à®¬ Sphinx C-- ¨â¥à  ‘¥««¨ª  (Peter Cellik)
¢ 1996 £®¤ã, ­® ॠ«¨§®¢ âì ¥¥ 㤠«®áì «¨èì ­¥¤ ¢­®, ª®£¤ 
¯®ï¢¨« áì ¢®§¬®¦­®áâì ç¥à¥§ ˆ­â¥à­¥â ­ ©â¨ ¨á室­ë¥ ⥪áâë ¤«ï C--,
¯®áª®«ìªã ­ ç¨­ âì á ­ã«ï ¦¥« ­¨ï ­¥ ¡ë«®.
    ˆâ ª, ª®à®âª® ® £« ¢­®¬. Žá­®¢­®© ¯à¨­æ¨¯ ¯®áâ஥­¨ï ¯à¨«®¦¥­¨©
¤«ï 32-à §à來®© á¨á⥬ë, ¯à¥¤« £ ¥¬ë© ¢ à §«¨ç­ëå ª®¬¯¨«ïâ®à å,
§ ª«îç ¥âáï ¢ à §¤¥«¥­¨¨ ª®¤  ­  ­¥áª®«ìª® ᥪ権: .text, .data,
.idata, .reloc, .rsrc ¨ â.¤., ª®â®àë¥ áâà®ïâáï ¨§ á ¬¨å ¨á室­ëå
⥪á⮢ ¨ à §«¨ç­ëå ä ©«®¢ ®¯¨á ­¨© ¨ à¥áãàᮢ ­  áâ ¤¨¨ ᡮન
¯à®£à ¬¬®©-«¨­ª®¢é¨ª®¬ (link). ® áã⨠¤¥«  ®áâ « áì áâ à ï á奬 
¯®áâ஥­¨ï: compiler + linker -> exe-file. Šà®¬¥ ⮣®, ¡®«ì让 ­ ¡®à
à §«¨ç­ëå ¡¨¡«¨®â¥ª... ª®â®àë¥ ª ⮬㠦¥ áãé¥á⢥­­® ¬¥­ïîâáï ®â
¢¥àᨨ ª ¢¥àᨨ, ç⮠ᮢᥬ ­¥ à ¤ã¥â. ˆ ¥á«¨ ¢ë ¯¥à¥å®¤¨â¥ ­  ­®¢ãî,
¡®«¥¥ ¯à®¤¢¨­ãâãî ¢¥àá¨î ª®¬¯¨«ïâ®à , â® ­¥â ­¨ª ª®© £ à ­â¨¨, çâ®
¢ë ᬮ¦¥â¥ ­  ­¥¬ ¯¥à¥ª®¬¯¨«¨à®¢ âì ᢮¨ áâ àë¥ ¯à®£à ¬¬ë - ¯à¨¬¥à®¬
á«ã¦¨â DDK ®â MicroSoft.
    Sphinx C-- ¨§­ ç «ì­® ¡ë« § ¤ã¬ ­ ¨ ॠ«¨§®¢ ­ ¤«ï ᮧ¤ ­¨ï
ª®¬¯ ªâ­ëå ¯® à §¬¥àã COM-ä ©«®¢ ¨ ¯®í⮬㠢¯®«­¥ ¯®¤å®¤¨â ¤«ï
£¥­¥à æ¨¨ 32-à §à來ëå ¯à¨«®¦¥­¨ï ¢ ¬®¤¥«¨ ¯«®áª®© (flat) ¯ ¬ïâ¨.
®¬¨¬® í⮣® ¡®«ì訬 ¯«îᮬ ï¥âáï ¨¤¥ï ®âªàë⮣® ª®¤  ¤«ï ¢á¥å
¢ë§ë¢ ¥¬ëå ¢ ¯à®£à ¬¬¥ ¡¨¡«¨®â¥ç­ëå ä㭪権, ॠ«¨§®¢ ­­ ï ¯®á।á⢮¬
*.h-- ä ©«®¢.
    …é¥ ®¤­  ¨¤¥ï ¨§ ª®¬¯¨«ïâ®à  Sphinx C--, § á«ã¦¨¢ îé ï ¢­¨¬ ­¨ï, - íâ®
¤¨­ ¬¨ç¥áª¨¥ ¯à®æ¥¤ãàë, â.¥. ¯à®æ¥¤ãàë, ª®â®àë¥ ¬®£ãâ ¡ëâì ¯®¬¥é¥­ë ¢ ⥫®
ª®¬¯¨«¨à㥬®© ¯à®£à ¬¬ë ⮫쪮 ⮣¤ , ª®£¤  ª ­¨¬ ¥áâì ®¡à é¥­¨¥. ’ ª¨¬
®¡à §®¬, ¢ ¯à®æ¥áᥠ­ ¯¨á ­¨ï ¯à®£à ¬¬ë á ¨á¯®«ì§®¢ ­¨¥¬ ¤¨­ ¬¨ç¥áª¨å
¯à®æ¥¤ãà £ à ­â¨àã¥âáï ¢ª«î祭¨¥ ¢ ⥫® ¯à®£à ¬¬ë ⮫쪮 ⮣® ª®¤ ,
ª®â®àë© ¤¥©á⢨⥫쭮 ­¥®¡å®¤¨¬.
    ‚ ¯à®æ¥áᥠࠡ®âë ¯® ¯¥à¥¢®¤ã ª®¬¯¨«ïâ®à  Sphinx C-- ­  ¯« âä®à¬ã Win32
¯à®¨§¢¥¤¥­ë ¢¥á쬠 áãé¥á⢥­­ë¥ ¨§¬¥­¥­¨ï ª ª ¢ á ¬®¬ ª®¬¯¨«ïâ®à¥, â ª ¨ ¢
¨¤¥ïå, ­  ª®â®àëå ®­ ॠ«¨§®¢ ­. Ÿ ­¥ ¡ã¤ã §¤¥áì ¢ë¤¥«ïâì ¢á¥ ®â«¨ç¨ï
­ áâ®ï饣® ª®¬¯¨«ïâ®à  ®â ¥£® ¯à à®¤¨â¥«ï ¯® ⮩ ¯à®á⮩ ¯à¨ç¨­¥, çâ® â¥, ªâ®
á ­¨¬ §­ ª®¬, ¨å ᬮ£ãâ 㢨¤¥âì á ¬¨,   ⥬, ªâ® ­¥ ¨¬¥« ¤¥«  á ‘--, ­¥â ­ã¦¤ë
¢­¨ª âì ¢ í⨠¤¥â «¨.
    Žâ¬¥çã, ®¤­ ª®, çâ® ¯à¨­æ¨¯ £¥­¥à æ¨¨ ª®¤ , ¨á¯®«ì§®¢ ¢è¨©áï ¢ ‘--, § ¬¥­¥­
­  ¯à¨­æ¨¯, ¨á¯®«ì§ã¥¬ë© ¢ ¬ ªà® áᥬ¡«¥à¥ TMA ‘¢¥­  Š«®§¥ (TMA macro assembler
Sven Klose), á ¯à®¢¥¤¥­¨¥¬ ¥£®  ¤ ¯â æ¨¨ ª ­ã¦¤ ¬ ‘--.
    ‚ १ã«ìâ â¥ ¯®ï¢¨«áï ¤ ­­ë© ª®¬¯¨«ïâ®à, 楫ìî ª®â®à®£® ï¥âáï § ¯®«­¥­¨¥
­¨è¨ ¬¥¦¤ã ï§ëª®¬  áᥬ¡«¥à  ¨ ï§ëª®¬ ‘. 

              Ž¯¨á ­¨¥ ï§ëª .

              ˆ¤¥­â¨ä¨ª â®àë.

    ˆ¤¥­â¨ä¨ª â®àë ¤®«¦­ë ­ ç¨­ âìáï á ¡ãª¢ë ¨«¨ §­ ª  ¯®¤ç¥àª¨¢ ­¨ï, ¥á«¨
ïîâáï £«®¡ «ì­ë¬¨, ¨«¨ ¦¥ ¤®«¦­ë ­ ç¨­ âìáï á ᨬ¢®«  @, ¥á«¨ ®­¨ «®ª «ì­ë¥.
„ «¥¥ ¬®¦¥â ¨¤â¨ «î¡ ï ª®¬¡¨­ æ¨ï æ¨äà, ¡ãª¢ ¨«¨ §­ ª®¢ ¯®¤ç¥àª¨¢ ­¨ï ¤«¨­®©
­¥ ¡®«¥¥ 63 ᨬ¢®«®¢. ãª¢ë ¬®£ãâ ¡ëâì ª ª ¨§ « â¨­áª®£®, â ª ¨ ¨§ ­ æ¨®­ «ì­®£®
 «ä ¢¨â . ¥áª®«ìª® ¯à¨¬¥à®¢:
    GoHome
    _1234
    à¨¬¥àˆ¤¥­â¨ä¨ª â®à 
    @LocalLabel2

    ‚ᥠ¨¤¥­â¨ä¨ª â®àë, ªà®¬¥ § à¥§¥à¢¨à®¢ ­­ëå, ïîâáï çã¢á⢨⥫ì­ë¬¨ ª
ॣ¨áâàã, â.¥. ¨¤¥­â¨ä¨ª â®àë: ToDo ¨ Todo ª®¬¯¨«ïâ®à ¢®á¯à¨¬¥â ª ª à §­ë¥.

              ‡ à¥§¥à¢¨à®¢ ­­ë¥ ¨¤¥­â¨ä¨ª â®àë

    ¨¦¥ ¯à¨¢®¤¨âáï ᯨ᮪ § à¥§¥à¢¨à®¢ ­­ëå ¨¤¥­â¨ä¨ª â®à®¢ ï§ëª , ª®â®àë¥
­¥ ¬®£ãâ ¡ëâì ¨á¯®«ì§®¢ ­ë ¯à¨ ᮧ¤ ­¨¨ ¯à®£à ¬¬ë ¨­ ç¥, ª ª íâ® ®¯à¥¤¥«¥­®
¢ ï§ëª¥:
    byte      char      word      short     dword     int
    if        else      cycle     do        while     return
    docase    case      continue  break     extract   from
    enum      struct
    carryflag      overflow       zeroflag
    notcarryflag   notoverflow    notzeroflag
      â ª¦¥ ­ §¢ ­¨ï ॣ¨áâ஢ ¨ ¬­¥¬®­¨ª¨ ª®¬ ­¤  áᥬ¡«¥à .

    …é¥ à § ¯®¤ç¥àª­ã, çâ® § à¥§¥à¢¨à® ­­ë¥ á«®¢  ­¥ § ¢¨áïâ ®â ॣ¨áâà , â.¥.
Enum ¨ eNuM ª®¬¯¨«ïâ®à ¢®á¯à¨¬¥â ¢ «î¡®¬ ¨§ ¢ à¨ ­â®¢, ª ª ­ ç «® ᯨ᪠
­ã¬¥à®¢ ­­ëå ª®­áâ ­â.

              Š®­áâ ­âë

    —¨á«®¢ë¥ ª®­áâ ­âë ¬®£ãâ ¡ëâì § ¤ ­ë ¢ ®¤­®© ¨§ ç¥âëà¥å á¨á⥬ áç¨á«¥­¨ï:
¤¥áïâ¨ç­®©, è¥áâ­ ¤æ â¨à¨ç­®©, ¢®á¬¥à¨ç­®© ¨«¨ ¤¢®¨ç­®©.
    „¥áïâ¨ç­ë¥ ç¨á«®¢ë¥ ª®­áâ ­âë § ¤ îâáï ®¡ëç­ë¬ ®¡à §®¬: 444 ¨«¨ 007.
    ˜¥áâ­ ¤æ â¨à¨ç­®¥ ¯à¥¤áâ ¢«¥­¨¥ ª®­áâ ­â ­ ç¨­ ¥âáï á ª®¬¡¨­ æ¨¨ 0x: 0xFFF
¨«¨ 0x088.
    ‚®á¬¥à¨ç­®¥ ¯à¥¤áâ ¢«¥­¨¥ ª®­áâ ­â ­ ç¨­ ¥âáï á ª®¬¡¨­ æ¨¨ 0o: 0o777 ¨«¨
0o10.
    „¢®¨ç­®¥ ¯à¥¤áâ ¢«¥­¨¥ ª®­áâ ­â ­ ç¨­ ¥âáï á ª®¬¡¨­ æ¨¨ 0b: 0b111101 ¨«¨
0b11101010.

    ‘¨¬¢®«ë ¢ ª®­áâ ­â å § ª«îç îâáï ¢ ®¤¨­®ç­ë¥ ª ¢ë窨 ('). ’ ª ¦¥ ª ª ¨ ¢ ‘
ᨬ¢®«ë ¬®£ãâ § ¤ ­ë á ¯®¬®éìî 㪠§ ­¨ï ¨å ª®¤  ¯®á«¥ ᨬ¢®«  '\'. ‘¯¨á®ª
ᯥæᨬ¢®«®¢:
    '\a', '\b', '\f', '\l', '\n', '\r', '\t'  -  ¤«ï ä®à¬ â¨à®¢ ­¨ï ¢ë¢®¤ 
    '\x??' ¨«¨ '\???' - ASCII-ᨬ¢®«. Š®¤ ᨬ¢®«  § ¤ ­ «¨¡® ¢ 16, 10 §­ ç¥­¨¥¬.
    ‹î¡ë¥ ᨬ¢®«ë ¯®á«¥ '\' ¯à®áâ® ¯à¨­¨¬ îâáï ª®¬¯¨«ïâ®à®¬, â ª¨¬ ®¡à §®¬
®¤¨­®ç­ãî ª ¢ëçªã ¬®¦­® 㪠§ âì ª ª '\''.

    ‘âப®¢ë¥ ª®­áâ ­âë § ¤ îâáï ¯ã⥬ § ª«î祭¨ï ¨å ¢ ¤¢®©­ë¥ ª ¢ë窨 (").
‚­ãâਠáâப®¢®© ª®­áâ ­âë ¤®¯ã᪠¥âáï 㪠§ ­¨¥ ᯥæᨬ¢®«®¢ ¢ ®¤¨­®ç­ëå
ª ¢ë窠å. à¨¬¥àë áâப®¢ëå ª®­áâ ­â:
    "à¨¬¥à áâப®¢®© ª®­áâ ­âë\n"
    "Need '\"'word'\"' in data declaration" -> Need "word" in data declaration

    à¨ ®¯à¥¤¥«¥­¨¨ ç¨á«®¢ëå ¨ ᨬ¢®«ì­ëå ª®­áâ ­â ¤®¯ã᪠¥âáï ¨á¯®«ì§®¢ ­¨¥
¢ëà ¦¥­¨©, ª®â®àë¥ ¢ëç¨á«ïîâáï ¢ ¯à®æ¥áᥠª®¬¯¨«ï樨. ‡­ ç¥­¨¥¬ ª®­áâ ­âë
¡ã¤¥â १ã«ìâ â ¢ëç¨á«¥­¨ï ¢ëà ¦¥­¨ï:
    1*2*3/2+4 ¤ áâ §­ ç¥­¨¥ ª®­áâ ­âë 7.
    ‚ëç¨á«¥­¨ï ¯à®¢®¤ïâáï á«¥¢ -­ ¯à ¢® ¡¥§ ãç¥â  ¯à¨®à¨â¥â  ®¯¥à æ¨©.

              ‘â ­¤ àâ­ë¥ â¨¯ë ¤ ­­ëå

    ˆ¬¥¥âáï è¥áâì áâ ­¤ àâ­ëå ⨯®¢ ¤ ­­ëå: byte, char, word, short, dword
¨ int. ‚ â ¡«¨æ¥ ¯à¨¢¥¤¥­ë à §¬¥à ¨ ¤¨ ¯ §®­ §­ ç¥­¨© ¤«ï ª ¦¤®£® ⨯ :
  -------------------------------------------------------------------
  ’¨¯        |  §¬¥à   | „¨ ¯ §®­ §­ ç¥­¨©
  ¯¥à¥¬¥­­®© | ¢ ¡ ©â å | (¤¥áïâ¨ç­.)        | (hex)
  -------------------------------------------------------------------
  byte       |    1     | 0...255            | 0...0xFF
  char       |    1     | -127...127         | 0x80...0x7F
  word       |    2     | 0...65535          | 0...0xFFFF
  short      |    2     | -32768...32767     | 0x8000...0x7FFF
  dword      |    4     | 0...4294967295     | 0...0xFFFFFFFF
  int        |    4     | -2147483648...     | 0x80000000 ...
             |          |     2147483647     |    0x7FFFFFFF
  -------------------------------------------------------------------

              ƒ«®¡ «ì­ë¥ ¯¥à¥¬¥­­ë¥

    Ž¡ê¥­¨¥ ¯¥à¥¬¥­­ëå ¨¬¥¥â ®¡ëç­ë© ¤«ï ‘ ᨭ⠪á¨á:

    <⨯> <ᯨ᮪ ¨¤¥­â¨ä¨ª â®à®¢>;

    ‘¯¨á®ª ¨¤¥­â¨ä¨ª â®à®¢ á®á⮨⠨§ ®¤­®£® ¨«¨ ¡®«¥¥ ¨¤¥­â¨ä¨ª â®à®¢,
à §¤¥«¥­­ëå § ¯ïâ묨. ‚ ᯨ᪥ â ª¦¥ ¬®£ãâ ¯à¨áãâ᢮¢ âì ®¤­®¬¥à­ë¥ ¬ áᨢë,
®¡êï¢«ï¥¬ë¥ ¢ ¢¨¤¥:
   <¨¤¥­â¨ä¨ª â®à>[<à §¬¥à­®áâì>].

   à¨¬¥àë ®¡ê¥­¨© ¯¥à¥¬¥­­ëå:
   dword i,j;		// i ¨ j ⨯  dword
   byte  Tab='\t';	// ¯¥à¥¬¥­­ ï Tab ⨯  byte á ­ ç «ì­ë¬ §­ ç¥­¨¥¬
   char  string[]="This is a string\n";
   int   z,b[6];	// z ⨯  int ¨ ¬ áᨢ 楫ëå - b

              ‚ëà ¦¥­¨ï

    ‚ëà ¦¥­¨ï á®áâ®ïâ ¨§ «¥¢®© ¨ ¯à ¢®© ç á⥩, à §¤¥«¥­­ëå «¨¡® ®¯¥à æ¨¥©
¯à¨á¢ ¨¢ ­¨ï, «¨¡® ®¯¥à æ¨¥© áà ¢­¥­¨ï. ‹¥¢ ï ç áâì ¢ëà ¦¥­¨ï ¬®¦¥â ¡ëâì
«¨¡® ¯¥à¥¬¥­­®©, «¨¡® ॣ¨áâ஬. ‚ ¯à ¢®© ç á⨠¢ëà ¦¥­¨ï ¬®¦¥â ­ å®¤¨âìáï
¯à®¨§¢®«ì­®¥ ª®«¨ç¥á⢮ ¯¥à¥¬¥­­ëå, ä㭪権, ª®­áâ ­â, ᪮¡®ª ¨ §­ ª®¢ ®¯¥à æ¨©.
¨¦¥ ¯à¨¢®¤¨âáï â ¡«¨æ  ¢á¥å ¤®¯ãá⨬ëå ®¯¥à æ¨©:
-------------------------------------------------------------------------
Ž¯¥à æ¨ï | ‡­ ç¥­¨¥            | à¨¬¥à
-------------------------------------------------------------------------
  =      | ¯à¨á¢®¨âì ¨«¨       | edi = 33;
         | ¯à®¢¥à¨âì à ¢¥­á⢮ | while(ch = 'a')
  +      | á«®¦¨âì             | eax = Count + 5;
  -      | ¢ëç¥áâì             | Count = eax - edi;
  *      | 㬭®¦¨âì            | x = y * 3;
  /      | à §¤¥«¨âì           | y = ecx / x;
  %      | ®áâ â®ª ¤¥«¥­¨ï     | y = edi / 7;
  &      | «®£¨ç¥áª®¥ AND      | a = B & c;
  |      | «®£¨ç¥áª®¥ OR       | a = B | c;
  ^      | «®£¨ç¥áª®¥ XOR      | a = B ^ c;
  <<     | ᤢ¨£ ¡¨â ¢«¥¢®     | x = y << 5;
  >>     | ᤢ¨£ ¡¨â ¢¯à ¢®    | x = y >> 6;
  +=     | 㢥«¨ç¨âì ­         | a += 6;	// a = a + 6;
  -=     | 㬥­ìè¨âì ­         | a -= 5;        // a = a - 5;
  &=     | ¯®¡¨â­ë© AND        | a &= 0xF;	// a = a & 0xF;
  |=     | ¯®¡¨â­ë© OR         | a |= 0o77;	// a = a | 0o77;
  ^=     | ¯®¡¨â­ë© XOR        | a ^= 0b1101;	// a = a ^ 0b1101;
  <<=    | ᤢ¨£ ¡¨â ¢«¥¢®     | a <<= 7;	// a = a << 7;
  >>=    | ᤢ¨£ ¡¨â ¢¯à ¢®    | a >>= 3;	// a = a >> 3;
  ><     | ®¡¬¥­(swap)         | x >< y;	// temp=y; y=x; x=temp;
  ==     | ¯à®¢¥à¨âì à ¢¥­á⢮ | if( x=='7' )	// ¤«ï â¥å, ª®¬ã â ª ¯à¨¢ëç­¥¥
  >      | ¡®«ìè¥ ç¥¬          | case( x > y )
  <      | ¬¥­ìè¥ ç¥¬          | if( a < 0 )
  >=     | ¡®«ìè¥ ¨«¨ à ¢­®    | while(( b >= a ) & ( x >= ( y - 7 )))
  <=     | ¬¥­ìè¥ ¨«¨ à ¢­®    | if( y <= ( a + b - 30 ))
!= ¨«¨ <>| ­¥ à ¢­®            | case( a != b) ¨«¨ ¦¥ case( a <> b)
  #      |  ¤à¥á ¯¥à¥¬¥­­®©    | esi = #Count;	// esi= ¤à¥á ¯¥à¥¬¥­­®© Count

              ”㭪樨

    Ž¡ê¥­¨¥ ä㭪権 ¨¬¥¥â ¢¨¤:

    <⨯> <¨¤¥­â¨ä¨ª â®à>(<ᯨ᮪ ¯ à ¬¥â஢>)

‘¯¨á®ª ¯ à ¬¥â஢ § ¤ ¥â â¨¯ë ¨ ¨¬¥­  ä®à¬ «ì­ëå ¯ à ¬¥â஢, ¨á¯®«ì§ã¥¬ëå ¯à¨
¢ë§®¢¥ ä㭪樨. Š®¬¯¨«ïâ®à ­¥ ®áãé¥á⢫ï¥â ¯à®¢¥àªã ᮮ⢥âá⢨ï ᯨ᪠
ä®à¬ «ì­ëå ¯ à ¬¥â஢ ä㭪樨 ä ªâ¨ç¥áª¨¬, ¯®í⮬ã á«¥¤ã¥â ¢­¨¬ â¥«ì­® á«¥¤¨âì
§  ª®à४⭮áâìî ¢ë§®¢  ä㭪権.
    ’¨¯ ¢®§¢à é ¥¬®£® ¨§ ä㭪樨 §­ ç¥­¨ï ¬®¦­® ­¥ 㪠§ë¢ âì. ‚ í⮬ á«ãç ¥
¯® 㬮«ç ­¨î áç¨â ¥âáï, çâ® äã­ªæ¨ï ¢®§¢à é ¥â §­ ç¥­¨¥ ⨯  dword. ‡­ ç¥­¨¥
¯®¬¥é ¥âáï ¯à¨ ¢®§¢à â¥ ¨§ ä㭪樨 ¢ ॣ¨áâà eax ¤«ï ⨯®¢ dword ¨ int, ¢
ॣ¨áâà ax ¤«ï ⨯®¢ word ¨ short ¨ ¢ ॣ¨áâà al ¤«ï ⨯®¢ byte ¨ char.
    ‚ ᯨ᪥ ¯ à ¬¥â஢ ¤«ï ª ¦¤®£® ¯ à ¬¥âà  ãª §ë¢ ¥âáï ¥£® ⨯.  à ¬¥âàë
®¤­®£® ⨯ , ¨¤ã騥 ¯®¤àï¤, à §¤¥«ïîâáï § ¯ïâ묨. ”®à¬ «ì­ë¥ ¯ à ¬¥âàë à §­®£®
⨯  ¢ ®¡ê¥­¨¨ ä㭪樨 à §¤¥«ïîâáï ᨬ¢®«®¬ ;. …᫨ ⨯ ¯ à ¬¥âà  ­¥ § ¤ ­,
â® áç¨â ¥âáï, çâ® ¯ à ¬¥âà ¨¬¥¥â ⨯ dword. ¥ § ¢¨á¨¬® ®â ⨯  ¯ à ¬¥âà  ¯à¨
¢ë§®¢¥ ä㭪樨 ¤«ï ª ¦¤®£® ¯ à ¬¥âà  ¢ë¤¥«ï¥âáï 4 ¡ ©â  (dword). â® á¢ï§ ­®
á ⥬, çâ® ¢ Win32 á⥪ ¢á¥£¤  ¤®«¦¥­ ¨¬¥âì ¢ëà ¢­¨¢ ­¨¥ (alignment) ­  £à ­¨æã
¤¢®©­®£® á«®¢ .
    à¨¬¥àë ®¡ê¥­¨ï ä㭪権 ¨ ¨å ¢ë§®¢®¢.
    Ž¡ê¥­¨¥                             à¨¬¥à ¢ë§®¢ 
    char ToUpper(char ch)                  upChar = ToUpper('i');
    MergeStrings(dword dest,str1,str2)	   MergeStrings(#str,"One","+Two");
                                           ¯®«ã稬 str="One+Two"
    Convert(dword str; int number,base)    Convert(#num, -567, 16);

    à¨ ¢ë§®¢¥ ä㭪樨 ¯¥à¢ë© ¯ à ¬¥âà ¯®¬¥é ¥âáï ¢ á⥪ ¯®á«¥¤­¨¬. à¨¬¥à:
    WriteFile(handle,"Hello World!\n",14,#dWriteFileCount,0);
¡ã¤¥â ॠ«¨§®¢ ­:
	push 0
	push #dWriteFileCount
	push 14
	push #"Hello World!"
	push handle
	call WriteFile
    à¨ ¢®§¢à â¥ ¨§ ä㭪樨 á⥪ ®ç¨é ¥âáï ®â ¯ à ¬¥â஢ ª®¬ ­¤®©: ret number.

    ‚ᥠ®¡êï¢«ï¥¬ë¥ ¢ ¯à®£à ¬¬¥ ä㭪樨 ïîâáï ¤¨­ ¬¨ç¥áª¨¬¨. â® §­ ç¨â,
çâ® ª®¤ ä㭪樨 ¢áâ ¢«ï¥âáï ¢ ¯à®£à ¬¬ã «¨èì ⮫쪮 ¢ á«ãç ¥ ®¡à é¥­¨ï ª ­¥©.
’® ¦¥ á ¬®¥ ®â­®á¨âáï ¨ ª «î¡ë¬ £«®¡ «ì­ë¬ ¯¥à¥¬¥­­ë¬ ¢ ¯à®£à ¬¬¥.

               ‘âàãªâãà­ë¥ ®¯¥à â®àë

    à¨¬¥­¥­¨¥ áâàãªâãà­ëå ®¯¥à â®à®¢ ¢ ¯à®£à ¬¬¥ ¤¥« ¥â ¥¥ ¡®«¥¥ 㤮¡­®© ¤«ï
ç⥭¨ï ¨  ­ «¨§ . Šà®¬¥ ⮣®, ­ ¯¨á âì ­¥áª®«ìª® áâàãªâãà­ëå ®¯¥à â®à®¢ ¯à®é¥,
祬 ¯ãâ âìáï ¢ ¯®å®¦¨å ¨¬¥­ å ¡®«ì讣® ç¨á«  ¬¥â®ª ¨ ¬ãç¨âìáï, ¯à¨¤ã¬ë¢ ï
ã­¨ª «ì­®¥ ¨¬ï ¤«ï ª ¦¤®© ­®¢®© ¬¥âª¨. ‚ â® ¦¥ ¢à¥¬ï ­¥ § ¯à¥é ¥âáï ¨á¯®«ì§®¢ âì
¨ ¬¥âª¨ ¢ «î¡®¬ ¬¥á⥠¯à®£à ¬¬ë.  •®à®è® ¯®áâ ¢«¥­­ ï ¬¥âª  ᯮᮡ­  §¤®à®¢®
®¡«¥£ç¨âì ­ ¯¨á ­¨¥ ¨  ­ «¨§  ¯à®£à ¬¬ë.

              Ž¯¥à â®à if.

    ‚ ®¡é¥¬ ¢¨¤¥ ãá«®¢­ë© ®¯¥à â®à ¬®¦­® § ¯¨á âì â ª:

    if(<ãá«®¢¨¥>)
      <£à㯯  ®¯¥à â®à®¢1>
     else
      <£à㯯  ®¯¥à â®à®¢2>

    €«£®à¨â¬ ¢ë¯®«­¥­¨ï ãá«®¢­®£® ®¯¥à â®à  á®á⮨⠢ á«¥¤ãî饬:
¯à®¢¥àï¥âáï <ãá«®¢¨¥>, ¨ ¥á«¨ ®­® ¨á⨭­®, â® ¢ë¯®«­ï¥âáï <£à㯯  ®¯¥à â®à®¢1>,
á«¥¤ãîé ï §  if, ¯®á«¥ 祣® ã¯à ¢«¥­¨¥ ¯¥à¥¤ ¥âáï §  ª®­¥æ ãá«®¢­®£® ®¯¥à â®à .
…᫨ ãá«®¢¨¥ «®¦­®, â® ã¯à ¢«¥­¨¥ ¯¥à¥¤ ¥âáï ­  <£à㯯㠮¯¥à â®à®¢2>, á«¥¤ãîéãî
§  else. ®à冷ª ¢ë¯®«­¥­¨ï ãá«®¢­®£® ®¯¥à â®à  ¢ á«ãç ¥ ®âáãâá⢨ï else
®ç¥¢¨¤¥­. ‚ ª ç¥á⢥ £àã¯¯ë ®¯¥à â®à®¢ ¬®¦¥â ¡ëâì «¨¡® ®¤¨­ ®¯¥à â®à, «¨¡® ¡«®ª
¨§ ­¥áª®«ìª¨å ®¯¥à â®à®¢ ¢ {} ᪮¡ª å. ‚®â ­¥áª®«ìª® ¯à¨¬¥à®¢:
    if(edx<=2){
      WriteStr("Equal or less two\n");
      return();
      }
     else{
      WriteStr("Greater than two\n");
      return(0);
      }

    if((x<>0)&(y<>0))
      return(x/y);

              Ž¯¥à â®à cycle

    Ž¯¥à â®à 横«  cycle ¨¬¥¥â ¢¨¤:

    cycle(<áç¥â稪>) <£à㯯  ®¯¥à â®à®¢>

    –¨ª« ¢ë¯®«­ï¥âáï ¤® â¥å ¯®à ¯®ª  §­ ç¥­¨¥ áç¥â稪  ­¥ ¡ã¤¥â à ¢­® ­ã«î.
à®¢¥àª  áç¥â稪  ­  à ¢¥­á⢮ ­ã«î ¨ ¥£® 㬥­ì襭¨¥ ­  ¥¤¨­¨æ㠯ந§¢®¤¨âáï
¢ ª®­æ¥ £àã¯¯ë ®¯¥à â®à®¢ 横« . „®¯ã᪠¥âáï ¢­ãâਠ横«  ¨á¯®«ì§®¢ âì ¨ ¬¥­ïâì
§­ ç¥­¨¥ áç¥â稪 . …᫨ áç¥â稪 ­¥ 㪠§ ­, ⮠横« ¡ã¤¥â ¡¥áª®­¥ç­ë¬. à¨¬¥à:
#import "kernel32.dll"
#import "user32.dll"
dword Count;
dword dWriteFileCount;
dword handle;
byte s[20]=0;
main(){
handle=GetStdHandle(-11);
Count=4;
cycle(Count){
  if(Count=2)
    Count--;
  wsprintfA(#s,"Count=%d\n",Count); ESP+=12;
  WriteFile(handle,#s,lstrlenA(#s),#dWriteFileCount,0);
  }
}
    à¨ ¢ë¯®«­¥­¨¨ ¡ã¤¥â ¢ë¢¥¤¥­®:
Count=4
Count=3
Count=1

              Ž¯¥à â®à while

    Ž¯¥à â®à 横«  while ¨¬¥¥â ¢¨¤:

    while(<ãá«®¢¨¥>)
      <£à㯯  ®¯¥à â®à®¢>

    ƒà㯯  ®¯¥à â®à®¢ ¢ 横«¥ while ¢ë¯®«­ï¥âáï ¯®ª  <ãá«®¢¨¥> ®áâ ¥âáï
¨á⨭­ë¬. à¨¬¥à ¨§ ®¯¨á ­¨ï ®¯¥à â®à  cycle ¬®¦¥â ¡ëâì ॠ«¨§®¢ ­ á ¯®¬®éìî
while á«¥¤ãî騬 ®¡à §®¬:
Count=4;
while(Count){
  if(Count=2)
    Count--;
  wsprintfA(#s,"Count=%d\n",Count); ESP+=12;
  WriteFile(handle,#s,lstrlenA(#s),#dWriteFileCount,0);
  Count--;
  }
}

              Ž¯¥à â®à do ... while

    Ž¯¥à â®à 横«  do ... while ¨¬¥¥â ¢¨¤:

    do
      <£à㯯  ®¯¥à â®à®¢>
    while(<ãá«®¢¨¥>)

    ƒà㯯  ®¯¥à â®à®¢ ¢ 横«¥ do ... while ¢ë¯®«­ï¥âáï ¯®ª  <ãá«®¢¨¥> ®áâ ¥âáï
¨á⨭­ë¬. à¨¬¥à ¨§ ®¯¨á ­¨ï ®¯¥à â®à  cycle ¬®¦¥â ¡ëâì ॠ«¨§®¢ ­ á ¯®¬®éìî
do ... while á«¥¤ãî騬 ®¡à §®¬:
Count=4;
do{
  if(Count=2)
    Count--;
  wsprintfA(#s,"Count=%d\n",Count); ESP+=12;
  WriteFile(handle,#s,lstrlenA(#s),#dWriteFileCount,0);
  Count--;
  } while(Count)
}
    Žá®¡¥­­®áâìî ®¯¥à â®à  do ... while ï¥âáï â®, çâ® <£à㯯  ®¯¥à â®à®¢>
¢ 横«¥ ¢á¥£¤  ¢ë¯®«­ï¥âáï ­¥ ¬¥­¥¥ ®¤­®£® à § .

              Ž¯¥à â®à docase

    Ž¯¥à â®à ¢¥â¢«¥­¨ï docase ¨¬¥¥â ¢¨¤:

    docase
      <£à㯯  ®¯¥à â®à®¢ 0>
      case(<ãá«®¢¨¥1>)
        <£à㯯  ®¯¥à â®à®¢ 1>
        ...
      case(<ãá«®¢¨¥N>)
        <£à㯯  ®¯¥à â®à®¢ N>
      default
        <£à㯯  ®¯¥à â®à®¢ N1>

    Ž¯¥à â®à docase ¯®§¢®«ï¥â § ¬¥­¨âì ¢«®¦¥­­ë¥ £àã¯¯ë ¨§ if ... else if ...
else ... . Šà®¬¥ ⮣® ¤ «¥¥ ¡ã¤¥â ¯®ª § ­  ­  ¯à¨¬¥à¥ ã­¨¢¥àá «ì­®áâì í⮣®
®¯¥à â®à . à¨¬¥à ¨§ ®¯¨á ­¨ï ®¯¥à â®à  cycle ¬®¦¥â ¡ëâì ॠ«¨§®¢ ­ á ¯®¬®éìî
docase á«¥¤ãî騬 ®¡à §®¬:
Count=4;
docase{
  if(Count=2)
    Count--;
  wsprintfA(#s,"Count=%d\n",Count); ESP+=12;
  WriteFile(handle,#s,lstrlenA(#s),#dWriteFileCount,0);
  Count--;
  case(Count=0)
    break;
  default
    continue;
  }
}

              Ž¯¥à â®àë continue ¨ break

    â¨ ®¯¥à â®àë ¨á¯®«ì§ãîâáï ¢­ãâਠ¢ëè¥ ®¯¨á ­­ëå ®¯¥à â®à®¢ 横«  cycle,
while, do...while ¨ ®¯¥à â®à¥ docase ¤«ï ¯¥à¥å®¤  ­  ­ ç «® 横«  ¨«¨ docase
¯® ®¯¥à â®àã continue ¨ ­  ¢ë室 §  ª®­¥æ ®¯¥à â®à  ¯® break. à¨¬¥à:
  while(cond1){<--Ô
    ...           |
    if(cond2)     |
      continue; --+
    ...           |
    if(cond3)     |
      break; ---+ |
    ...         | |
    } ----------|-+
     <----------+

              Ž¯¥à â®à enum

     §­ ç¥­¨¥ ®¯¥à â®à  § ª«îç ¥âáï ¢ ᮧ¤ ­¨¨ £à㯯 ­ã¬¥à®¢ ­­ëå ª®­áâ ­â.
à¨¬¥à:
    enum { ab, ac=2, ad, ae=6}; ¯à¨ í⮬ ¡ã¤¥â: ab=0, ac=2, ad=3, ae=6.

              Ž¯¥à â®à struc

    ‘«ã¦¨â ¤«ï ®¯¨á ­¨ï áâàãªâãà¨à®¢ ­­ëå ¤ ­­ëå,  ­ «®£¨ç­® ‘.
®ª  ­¥ ॠ«¨§®¢ ­. Œ®¦­®, ¨á¯®«ì§ãï enum, ¡¥§ ¢áïª¨å ¯à®¡«¥¬ à ¡®â âì á
¤ ­­ë¬¨ «î¡®© áâàãªâãàë. à¨¬¥à:
„«ï ¨á¯®«ì§®¢ ­¨ï áâàãªâãàë:
struct localrec{
  struct localrec *next;
             char localid[IDLENGTH];
              int localtok;
              int localnumber;
  };
ᮧ¤ ¤¨¬:
// ----	‘âàãªâãà  localrec - ®¯¨á ­¨¥ «®ª «ì­®© ¯¥à¥¬¥­­®©
enum{ localnext=0,			// “ª § â¥«ì ­ 	á«¥¤ãîéãî localrec
      localid=4,			// ˆ¬ï «®ª «ì­®© ¯¥à¥¬¥­­®©
      localtok=localid+IDLENGTH,	// ‡­ ç¥­¨¥ token
      localtype=localtok+4,		// ⨯ ¯¥à¥¬¥­­®©
      localnumber=localtype+4,		// ®§¨æ¨ï ¢ á⥪¥
      local_size=localnumber+4};	//  §¬¥à áâàãªâãàë
ˆ ⥯¥àì ¢ ¯à®£à ¬¬¥ ¬®¦­® ¨á¯®«ì§®¢ âì ­ã¬¥à®¢ ­­ë¥ ª®­áâ ­âë ¤«ï ®¡à é¥­¨ï
ª í«¥¬¥­â ¬ áâàãªâãàë localrec:
// ---- „®¡ ¢¨âì «®ª «ì­ãî ¯¥à¥¬¥­­ãî ¢ ᯨ᮪
AddLocalvar(dword str,tk,ltype,num)
dword ptr,newptr;
{
newptr=LocalAlloc(0x40, local_size);
if(newptr==NULL){
  preerror("Compiler out of memory for local symbol linked list");
  ExitProcess(e_outofmemory);
  }
if(locallist==NULL)
  locallist = newptr;
 else{
  ptr = locallist; EBX=ptr;
  docase{
    EAX=[EBX+localnext];
    case(EAX!=0){
      EBX=EAX; continue;
      }
    }
  [EBX+localnext]=newptr;
  }
EBX=newptr; lstrcpyA(EBX+localid, str);
EBX=newptr; [EBX+localtok] = tk; [EBX+localtype] = ltype;
[EBX+localnumber] = num; [EBX+localnext] = NULL; localptr = EBX;
}

              Œ¥âª¨

    ’ॡ®¢ ­¨ï ª ¨¬¥­ ¬ ¬¥â®ª ⥠¦¥, çâ® ¨ ª ¨¤¥­â¨ä¨ª â®à ¬. ˆáª«î祭¨¥¬
ïîâáï «®ª «ì­ë¥ ¬¥âª¨ - ®­¨ ¤®«¦­ë ­ ç¨­ âìáï á ᨬ¢®«  '@'. ‹®ª «ì­ë¥
¬¥âª¨ ¤®áâ㯭ë ⮫쪮 ¢ ¯à¥¤¥« å ⮩ ä㭪樨, ¢ ª®â®à®© ®­¨ ®¯à¥¤¥«¥­ë,  
£«®¡ «ì­ë¥ - ¯® ¢á¥© ¯à®£à ¬¬¥. à¨ ᮧ¤ ­¨¨ ¨¬¥­ «®ª «ì­ëå ¬¥â®ª á«¥¤ã¥â
ãç¨â뢠âì, çâ® ª®¬¯¨«ïâ®à ¯à¨ ॠ«¨§ æ¨¨ áâàãªâãà­ëå ®¯¥à â®à®¢ £¥­¥à¨àã¥â
¬¥âª¨ ¢¨¤ : @l<ç¨á«®>. —â®¡ë ¨§¡¥¦ âì ª®««¨§¨©, á«¥¤ã¥â ¤«ï ᢮¨å ¬¥â®ª ­¥
¯à¨¬¥­ïâì â ª®£® ¢¨¤ . ‹î¡ ï ¬¥âª  § ¢¥àè ¥âáï ᨬ¢®«®¬ ¤¢®¥â®ç¨ï (:).
à¨¬¥àë ¬¥â®ª:
  NotUpperCase:		// íâ® £«®¡ «ì­ ï ¬¥âª 
  @NotUpperCase:	//   íâ® «®ª «ì­ ï ¬¥âª 

              ˆ­¤¥ªá æ¨ï ¬ áᨢ®¢

    «¥¬¥­âë ¬ áᨢ  «î¡®£® ⨯  ¨­¤¥ªá¨àãîâáï ¢ ¡ ©â®¢ëå ¥¤¨­¨æ å, ­¥§ ¢¨á¨¬®
®â ⨯  ¤ ­­ëå. â® ‚‘…ƒ„€ á«¥¤ã¥â ¯®¬­¨âì ¯à¨ à ¡®â¥. ˆ­¤¥ªáë ¨¬¥îâ ¢¨¤,
¯à¨­ïâë© ¢  áᥬ¡«¥à¥ ¤«ï 386 CPU:

    <¯¥à¥¬¥­­ ï>[<¡ §®¢ë© ॣ¨áâà>+<¬ áèâ ¡>*<¨­¤¥ªá­ë© ॣ¨áâà>+<¨­¤¥ªá>]

    ‚®â ­¥áª®«ìª® ¯à¨¬¥à®¢:
    Str[7];			// ᥤ쬮© ¡ ©â ¨§ ¬ áᨢ  Str
    IntArray[4*ebx];	        // ebx í«¥¬¥­â ¨§ ¬ áᨢ  楫ëå - IntArray
    ByteArray[esi+8*ecx+300];

              ‘¯¥æ¨ «ì­ë¥ ãá«®¢­ë¥ ¢ëà ¦¥­¨ï

    ˆ¬¥¥âáï è¥áâì ᯥ樠«ì­ëå ãá«®¢­ëå ¢ëà ¦¥­¨©:
    CarryFlag, NotCarryFlag, Overflow, NotOverflow, ZeroFlag, NotZeroFlag. Ž­¨
á«ã¦ â ¤«ï £¥­¥à æ¨¨ ª®¤  ¯à®¢¥àïî饣® á®áâ®ï­¨¥ ä« £®¢ CPU.

              Š®¬¬¥­â à¨¨

    Š®¬¬¥­â à¨¨ § ¤ îâáï  ­ «®£¨ç­® ‘.

              „¨à¥ªâ¨¢ë ª®¬¯¨«ïâ®à 

    ‚ᥠ¤¨à¥ªâ¨¢ë ª®¬¯¨«ïâ®à  ­ ç¨­ îâáï á ᨬ¢®«  '#'. ‘¯¨á®ª ¤¨à¥ªâ¨¢ ¨ ¨å
­ §­ ç¥­¨¥ ¯à¨¢®¤ïâáï ­¨¦¥:
    #debug	// 㪠§ë¢ ¥â ª®¬¯¨«ïâ®àã ­  ­¥®¡å®¤¨¬®áâì £¥­¥à æ¨¨
    		// ®â« ¤®ç­®© ¨­ä®à¬ æ¨¨ ¤«ï ª®¬¯¨«¨à㥬®© ¯à®£à ¬¬ë
    #define	// ®¯à¥¤¥«¨âì ª®­áâ ­âã ¨«¨ ¨¤¥­â¨ä¨ª â®à. à¨¬¥à:
    		// #define MAXLINES 400
                // #define less <
                // #define SetTrue "eax=1"
                //   if(lines less MAXLINES)   --> if(lines<400)
                //     SetTrue;                -->   eax=1;
    #dll	// 㪠§ë¢ ¥â ª®¬¯¨«ïâ®àã ­  £¥­¥à æ¨î DLL-ä ©« . Ž¡ëç­® - exe.
    #include	// ¯®¤ª«î祭¨¥ ä ©«  á ¨á室­ë¬ ⥪á⮬. €­ «®£¨ç­® ‘.
    #import	// ¨¬¯®àâ ä㭪権 ¨§ DLL-ä ©«  ¯® ¨¬¥­¨.
    #importN	// ¨¬¯®àâ ä㭪権 ¨§ DLL-ä ©«  ¯® ­®¬¥àã. à¨¬¥à ᬮâà¨â¥ ¢
    		// ®¯¨á ­¨¨ áâàãªâãà­ëå ®¯¥à â®à®¢ cycle, while ¨ â.¤.
    #list	// 㪠§ë¢ ¥â ª®¬¯¨«ïâ®àã ­  £¥­¥à æ¨î ä ©«  á «¨á⨭£®¬ (.lst)
    #map	// 㪠§ë¢ ¥â ª®¬¯¨«ïâ®àã ­  £¥­¥à æ¨î map-ä ©«  (.map)

              ‚áâ஥­­ë©  áᥬ¡«¥à

    €áᥬ¡«¥à ¯®¤¤¥à¦¨¢ ¥â ¡®«ìèãî ç áâì ¨­áâàãªæ¨© ¨§ ­ ¡®à  386, 486 ¨ 586
¯à®æ¥áá®à®¢. Œ­¥¬®­¨ª¨  áᥬ¡«¥à  ¬®£ãâ ¡ëâì ¯®¬¥é¥­ë ¢­ãâਠ⥫  «î¡®© ä㭪樨
¡¥§ ª ª¨å-«¨¡® ®£à ­¨ç¥­¨©. à¨¬¥à:
// ‚뤥«¥­¨¥ á«®¢  ¢ Dest ¨§ áâப¨ ᨬ¢®«®¢ Source
dword GetWord(dword Source,Dest){
  push esi; push edi; esi=Source; edi=Dest;
// ˆé¥¬ ¯¥à¢ë© ­¥¯ãá⮩ ᨬ¢®«
@up: lodsb; cmp	al,' ';	jz @up;		// à®¡¥«
     cmp al,0; jz @down			// Š®­¥æ áâப¨ Source
// Š®¯¨à㥬 á«®¢® ¢ Dest
@up1: stosb; cmp al,0; jz @down;	// Š®­¥æ áâப¨ Source
     lodsb; cmp al,' '; jnz @up1;	// ¥ ¯à®¡¥«
     al=0; jmp @up1                     // Žâ¬¥â¨¬ ª®­¥æ á«®¢ 
@down:
// ‘«®¢® ¢ë¤¥«¥­® ¨ ᪮¯¨à®¢ ­® ¢ Dest
  eax=esi-Source; eax--;		// ‚ëç¨á«¨¬ ¤«¨­ã á«®¢ 
  pop edi; pop esi			// ‚®ááâ ­®¢¨¬ esi ¨ edi
}

              ‡ ª«î祭¨¥

    ¥ ¢á¥ ¨§ ¢ë襮¯¨á ­­®£® ॠ«¨§®¢ ­®. â® ®¡ãá«®¢«¥­® ¢ ¯¥à¢ãî ®ç¥à¥¤ì ⥬,
çâ® ¤ ­­ ï ¢¥àá¨ï ï¥âáï ¯à¥¤¢ à¨â¥«ì­®© ¨ ®á­®¢­®© ¥¥ 楫ìî ï¥âáï
¢ë¥­¨¥ ¨­â¥à¥á  ª®¬¯ìîâ¥à­®© ®¡é¥á⢥­­®á⨠ª â ª®¬ã ª®¬¯¨«ïâ®àã.
    …᫨ ‚ë § ¨­â¥à¥á®¢ «¨áì í⨬ ¯à®¤ãªâ®¬ ¨«¨ ã ‚ á ¢®§­¨ª«¨ ª ª¨¥-«¨¡®
¢®¯à®áë, ¨¤¥¨ ¨«¨ ¯à¥¤«®¦¥­¨ï, â® ¯à®èã ® ­¨å á®®¡é¨âì ¬­¥ ¯®  ¤à¥áã:
halimovskiy@usa.net.

              ‘ 㢠¦¥­¨¥¬ €.• «¨¬®¢áª¨©  E-mail: halimovskiy@usa.net