    0.238  28.03.2002


 ᮢ.
~~~~~~~~~~~~~~~~~~~~~
    ஥  --  ᮢ  ᢮  㯠
ᯥ樠஢ ࠬ ᮢ,   ⥩,  
, 㤥 筮  設⢠  .

    㤥  ᫨ ,  ஥  C--  ᮢ 
㬥 .   ࠡ뢠  ᮢ: 'VERSION', 'VERSIONINFO'
 ।塞 짮⥫ .   室, ,  
  ஢,      'RCDATA'.   
஢ ᮢ  易⥫ ࠬ 'loading'  'memory'.
প  ࠬ஢  ॠ.  ⨢  ࠬ, 
  ய.

    ⠢  C-- ࠡ뢠    ᯮᮡ:

    1.   ᢮ ஥ ४⨢ '#include' 䠩  ७ '.rc'.
  ⠪ ७  ⠥ 䠩  ᠬ. 
ᮢ 室    ஥  ᫥ 祭 
䠩 Windows.

    2.   ᯮ  ⥫ ணࠬ  ந쭮 , 
⥪ ᮢ  稭  ४⨢ '#pragma resource start', 
稢 ४⨢ '#pragma resoutce end'.    
ࠧ묨       ᯮ   㤮  
 (㯮 ᯮ    ਥ  ⮬ 㤨,
祬   뫨 ⪮஢).   ᮡ   
⪮.

     ஢    訬, ⠪  쪨 㪢, 
 䨪஢ ⢨⥫  ॣ.   ⥪ ᮢ 
ᯮ짮 ४⨢  ਨ.


⪨  楤.
~~~~~~~~~~~~~~~~~~~~
    ⪨  楤 䠪᪨ ᯮ    ணࠬ.
᫨    室   ᥣ (  ⠪ ࣠
ணࠬ, ᠭ  C--),  ⪨  楤 ⠭  
䥪⨢ ⮤  祭 ﭨ  ﬨ ணࠬ.

     ⢥   ⮪   ᯮ짮 㭨
䨪,    ᯮ짮 訥, 쪨  ᬥ
  쪨 㪢.


७ ⥩ 㪠⥫.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     㪠⥫  ᯮ짮  । ࠬ஢ 楤ࠬ, 
 ᠬ 楤  ⢥  , ⠪  ࠬ᪨
६.  ⥫  ⠪ ᯮ짮  .  
ᯮ짮 㪠⥫  㪠⥫.   প 㪠⥫ 
楤:

void (*proc)();  // 㪠⥫  楤

     㬮砭 㪠⥫  楤  㪠⥫ﬨ  楤 
⨫ 'pascal', ᨬ  ॣ,  ஬ ᠭ  楤 
० 樨.  ᫨  室, ⮡  ᯮ짮 㣮 ⨯
맮,   室 㪠   㪠⥫  楤.

     樠樨 㪠⥫   ஫ , 祬
樠 㪠⥫.  ..   㪠⥫  'char' ᢮
㪠⥫  'int'  㪠⥫  楤 ᢮  ६.
  맢 訡  ࠡ ணࠬ.


 楤  .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      প  楤  , 
⠭    C++.  .. ⠪ 楤 ⠭ ⮤
. ਬ:

struct 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;
// ६ x, y  童 ⮣   ⮬    
// 楤 ⮣   ⢫ .

 }

void main()
Point p;  //।塞   ⥪
{
  p.y = p.x = 0;
  p.SetX(1);
}

     맮 楤 饩 ⮤    ࠧ
।  ⮣  ().   ᠬ 楤  
㯥 १  ࠬ᪮ ६ 'this'.   ६
⮬᪨  .  ᫨   楤  
㪠 祢 ᫮ 'static',  ⠪ 楤   
।  ६ 'this'  .

    楤      ᪮.   ⮣,
  ।,  ᠬ  砫,   ᨬ  ':'
(⠪     ᪨ 楤).   ⠪ ᪠
楤    ᯮ짮  .


᫥.
~~~~~~~~~~~~~~
     C-- ন   ⢥ ᫥.  
  ᫥  ᫥騩 ᨭ⠪:

struct Derived : Base1, Base2, ... Basen
{
  int x0;
};

    ᫮    ந  ࠭祭.   ⢥
᫥   ᫥     
.  ⮬  筮. ਬ:

struct A
{
  int x,y;
  . . .
};

struct B : A  // 'B' ᫥ 'A'
{
  . . .

};

struct C : A  // 'C' ᫥ 'A'
{
  . . .
};

struct D : B, C // 'D' ᫥ 'B'  'C'
{
  . . .
};

void main()
D d;  //뤥塞   'D'   ⥪  ᢠ   'd'
{
  d.x0=0;

     ⮬ ਬ  'D' ᫥    'A'  
 室     'x0'.   C++   ⨯
'd.x0=0' 뤠 ᮮ饭  訡.  C--   ࠡ뢠,
ᢠ ந  㬮砭    ᫥ 
, 饩  'x0'.   ⮣ ⮡    ஬
 'x0' (䨧᪨   室   ),
室 ਬ  ࠧ襭 :

  d.B::x0=0;

     ᥣ ⮣ ᫥,  :

  d.x0=0;

  d.C::x0=0;

      ࠢ묨.


। ࠬ஢  ⥪ 楤 १ ॣ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     । ࠬ஢ १ ॣ,  ᥣ 砥 
   .   ᮤন ॣ஢   
ࠧ襭.  ᫨  襩 楤, -  ࠬ஢ ᯮ
⭮  ⮣, ⮡  砫 楤 樠஢ -
ॣ,    ।  祭  楤 ࠧ १ ॣ,
 ⠤ ᮢ뢠  祭 ᮤন  ⥪.  ਬ:

int proc (int param1, param2, param3)
{
  (e)BX = param3;
  (e)BX.TEG_STRUCT.var = proc2 (param1,papra2);
  proc3 (param1,param2);
}

     ⮬ ਬ ࠬ param3 ᯮ   ⮣, ⮡
樠஢ ॣ (e)BX, ⮬   ࠧ । १
ॣ:

int proc (int param1, param2, (e)BX)
{
  (e)BX.TEG_STRUCT.var = proc2 (param1,papra2);
  proc3 (param1,param2);
}

      , 楤  ⨫.

     ਭ樯 冷 ᯮ ⥪  ॣ஢ ࠬ஢ 
ਭ樯.    ,  ᮤন ॣ஢   
ࠧ襭,  ⮬  ᥣ ॣ஢ ࠬ 樠஢ 
᫥ ⮣,  뫨   ⥪  ⥪ ࠬ.   楤
⨯ 'pascal' ॣ஢ ࠬ  ᯮ ᫥ ⥪
ࠬ஢.   楤 ⨯ 'cdecl'  'stdcall' ᭠砫  ᯮ
ॣ஢ ࠬ.


ᢠ  祭 ᪮쪨 ६.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ᫨  室 ᢮ ᪮쪨 ६  祭:

  var1=0;
  var2=0;
  var3=0;

     ⥯     ⪮:

  var1=var2=var3=0;

     ᯮ짮 ⠪      
 .


祢 ᫮ 'static'   '::'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ᫨ ।  쭮 ६,   楤
㪠 ᫮ 'static',   ६,   楤 
㯭 ⮫쪮  ⮬ 䠩,  ஬  뫨 .  .. ᫨ 
  䠩  㣮 ४⨢ 'include',  ६ 
 砥 䠩  ᫮ 'static'   㯭  ᭮ 䠩, 
   ᭮ 䠩  㣨 ६  ⠪  .

    ᫨  ਬ ᫮ 'static'   쭮 ६ 
楤,    ⮩ ६ 㤥 뤥   ⥪,  
  楤.    ६ 㤥 㯭 ⮫쪮 
楤,  ன  뫠 .  ਬ 'static'  
६   ࠭ 祭 ६  ᫥饣
室  楤.

     'static'  ਬ   쭮 ꥪ (६,
, 楤).   쭮 ᯮ짮  ᫮ 
ਬ ⮫쪮  ६.

    ᫨  襩 ணࠬ  쭠  쭠 ६ 
묨 ,   楤,  ன   쭠
६,    㯠   쭮 ६.  ,
ਬ ।  ६  '::',    
쭮 ६.  ਬ:

int var;  //塞  ६

void proc()
int var;  //塞  ६   㦥 饩
          //쭮 ६
{
  (e)AX=var;	//  ⮫쪮  쭮 ६
  (e)AX=::var;  // ⠪     쭮 ६
}


 'return'  'goto'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ,  樨 ணࠬ,  'return' 㤥
  'goto'.   ந室  ࠧ襭 ⨬樨  ࠧ
  ஢ 'return',  ᯮ  楤 ,
⢥, ᫨ ࠧ   믮 'return' , 祬 ࠧ 
 ॠ樨 'goto'.   ᪨ 楤,  ᯮ 
, ⠪  㤥 ந ᥣ.   'goto' 㤥
믮   楤, ⠬,  㤥 ᯮ ⢥ 室
 楤.   ᪨ 楤, ᯮ㥬  ⢥ ᮢ,
'return'   楤 㤥 ய饭 ஬.

     ࠧ,  ᫥ ࠭祭  ᯮ짮 ᪨
楤  ⢥ ᮢ.    ᪠ 楤  
ᯮ짮  .

      'goto'    ⪨  - 'GOTO'.  
祭  ⭮    'return'  ⠪ 
⪨  'RETURN'.    ᯮ짮, ᫨   
ਬ   楤 室   128 .  ᫨  㤥
ᯮ짮 'RETURN'  襬 ﭨ   楤,  
뤠 ᮮ饭  訡.   ᯮ짮 'return'  ﭨ 
128    ,  뤠  ।०  
ᯮ짮 'RETURN'.


⮢  .
~~~~~~~~~~~~~~~~~~~~~~~
    ⮢   ᯮ   , ᪮
 ⭮ 㯠 祭,   ࣠樨 㤮 㯠 
ॣࠬ 譨 ன,   ࠧ   
ᠬ⥫쭮 㭪樮쭮 祭.

     ⮢  ᫥騩 ᨭ⠪:

<⨯> [<䨪>]:<⠭>;

  ਬ:

int var:5;  // ⮢  ࠧ஬ 5    'var'

    ⮢  ⮨  ண ᫠ ⮢, ஥  ᫮
ࠦ <⠭>.   祭   楫 ⥫ ᫮
  祭   ॢ ᫠ ࠧ冷 ᮮ⢥騥 <⨯>
।塞 ⮢ .   C-- ⮢   ᮤঠ ⮫쪮
 祭.   ᯮ짮 ᨢ ⮢ , 㪠⥫
 ⮢ .

    <䨪>  ⮢ .   稥 易⥫쭮.
 ⮢  砥 ய ᮮ⢥饣 ᫠ ⮢
। ࠧ饭 ᫥饣  .   ⮢ ,
 ண 㪠 㫥 ࠧ,  ᯥ樠쭮 祭: 
࠭,    ᫥饣 ⮢  㤥 稭 
࠭ ⮣ ⨯,     ⮢ .  ..
㤥 ந ࠢ ⮢   8/16/32 .

     C--  ⮢  㯠뢠   㣨 ᨬ  ࠭
⨯ 䨪஢.  ᫨ ᫥饥    ⮢ , 
⠢訥  ࠭     ᯮ짮.  ᨬ ࠧ
⮢  ࠢ 32   ⨯ dword/long, 16   ⨯ word/int  8
  ⨯ byte/char.  ⮢   ꥤ, .. ᯮ짮 
  'union'.  'sizeof' ਬ  ⮢  ୥ ࠧ
⮣   .   ᯮ짮 ⮢ ,  ᮤন 㤥
  ॣ   楫 ᫮.



    0.237  5.11.2001


ᯮ짮 ᪨ 楤  ⢥ ᮢ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ᪠ 楤   ᯮ짮  .
᫨ । 맮 ᪮ 楤 ⠢ ᨬ '@',   ⮩
楤 㤥 ⠢,   맢 樥 CALL.

     ᪨ 楤,   ᯮ짮  ⢥
ᮢ,  ०  ᯮ짮  'return'.

     ᯮ짮 ⥪ ᪨ 楤  ⢥ ᮢ
⪠ ⥪  । ࠬ஢ ந ᥬ୮ 樥
'ADD SP,SIZE_PARAMETRS' ࠧ ᫥ 砭  ⠢ .  
⮬, ᫨  楤 ᯮ짮 䫠  ⢥ ,  
 ࠧ襭.



 ᥬ 樨.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       প 19  権 MMX ७  46
権 SSE ७.     権  ᯮ짮 
⢥ ࠭ 64-  128- 祩 .   C--
ᥩ  ࠡ ⮫쪮  32-묨 ६묨.  ⮬ 
権 ᯮ  ⢥ ࠭ 祩  ࠧ஬ 
32-  ᯮ짮 ६  ⨯.    㤥
뤠   ᮮ饭  訡, 㤥 ᯮ짮  ⮩ ६,
 ᠬ  㤥 ᯮ짮 㦭  ᫮ ⮢ , 稭 
 㪠 ६.  ਬ:

 樨 'movaps'   ࠭   128-⭮ 祩
.  ⮩ 樨 ⨬ ᫥騩 ᨭ⠪:

byte  var8_128[16];
word  var16_128[8];
dword var32_128[4];

void proc()
{
asm{
  movaps var8_128,xmm0 // ᨢ  16  㤥 ᠭ ᮤন XMM0
  movaps xmm1,var16_128	// XMM1 㤥 ᠭ ᮤন 8 ᫮
  movaps var32_128,xmm1 // ᨢ  4  ᫮ 㤥 ᠭ XMM1
}
}



⮬᪨ 롮 ࠧ來 ॣ஢.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ᮧ  楤 祭  室  ਠ
楤  ࠡ  16-⭮  32-⭮ ०,  ⫨ 
 㣠  ᯮ짮    16-  32- ॣ஢
ᮮ⢥⢥.       楤, ᯮ  
 ᨭ⠪ ॣ஢. ᫨    ⠪ ᨭ⠪:

  (E)AX=0;

      㤥 ᯮ짮  樨 16-⭮  ॣ
AX,   樨 32-⭮  ॣ EAX.

    ᯮ짮 ⮬᪨ ॣ஢   
䠩  ᤥ   묨.



 祭   case/CASE.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      case/CASE,   ᯮ짮 ⮫쪮  ⥫ 
 switch/SWITCH,  㪠뢠  祭.  砫 
㪠뢠 襥 祭, ⥬ ᫥  襥. ਬ:

switch(AX){
  case 1...5:
    WRITESTR("Range AX from 1 to 5");
    BREAK;
};

       諮   ஬ :

switch(AX){
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
    WRITESTR("Range AX from 1 to 5");
    BREAK;
};

    ஬ ⮣,   ଠ   ⥭   ⠡, 
  ⮬  ᮧ     .



࠭  ६ 㦥.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨  樨 ணࠬ    ப   -ENV
  䠩 c--.ini ப ENV,      ணࠬ
६ environ,  ன  㧪 㤥 ࠭  ६
㦥 ᪠ ணࠬ.   ணࠬ  Windows  㤥 
,   ⠫  ⮩ ६ 㤥 ࠭ ⮫쪮 
ᥣ.



 䫠  楤.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     DOS 㭪樨 0x21 뢠  ⢥  ᯥ譮
믮 ᯮ ⠭   carry 䫠.  ᯮ짮 䫠
    楤    㣨 ,  
  ᯥ譮   ᯥ譮 믮 楤.   
  ᯮ짮    ᮮ⢥⢥ 㬥
ࠧ    த⢨ ணࠬ.

      䫠,    楤,  ० ⠥ 
ࠧ ⨯  १ ॣ AL/AX/EAX.  ᫨  楤 , 
  ⨯  int  CARRYFLAG,   ᯮ짮 ⠪ 楤
  ࠢ IF, WHILE... 㤥  ஢ઠ carry 䫠,  
ࠢ ॣ AX.  ਬ ᯮ짮  䫠  楤:

int CARRYFLAG FOPEN();	//  楤

void proc()
{
  IF ( FOPEN(name,0) ) Error ( "Not open file" );
}

    ਠ ⨬ ᨭ⠪  ᯮ짮  䫠:

IF ( ! FOPEN() )...
IF ( @ FOPEN() )...
IF ( ! @ FOPEN() )...
IF ( handl = FOPEN() )...
IF ( handl = @ FOPEN() )...
IF ( ! handl = FOPEN() )...
IF ( ! handl = @ FOPEN() )...

      ਠ,  , ᬮ  ,   楤 
 䫠, 㤥 ந ࠢ ॣ AX:

IF ( FOPEN() == 5 )...	// ந ࠢ
IF ( FOPEN() + 2 )...   // १ 楤 ࣠ 쭥襬
                        // ᫥,  १ ண 䫠 
			// .



LE ଠ exe-䠩  DOS32.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ᯮ짮 LE ଠ exe-䠩  DOS32,  ࠢ 
ᯮ짮訬 ࠭ 堭, ⯠ 室  ஬筮
稪,  㢥稢 ᪮ 㧪  㬥蠥 ࠧ 䠩 (
祭  䠩, -  ⠡ ६饭, ࠧ 䠩 
ଠ   ࠧ஬  ।饣).    LE ଠ 
⠭,  ⥯  ᯮ짮   stub, 騩
 ଠ.   LE ଠ  ᦨ ணࠬ ⨯ UPX.EXE  
묨.

    ᫨  ᯮ stub,  ⥬ 㦠 DOS4GW.EXE,  砫
襩 ணࠬ   ᯥ樠 ᨣ.   ⮬᪨
ନ , ᫨    ப   c--.ini 䠩 㪠 
/DOS4GW.     室 㤥 ਬ, ᫨  㤥
ᯮ짮  ⢥ stub 4gs.exe.



ᥬ ⨭  ணࠬ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       樨 ࠧ饩  ᥬ୮
⨭ ணࠬ 砥  祭 让 䠩,  ஬  
᪠ 騩  ࠣ .    ४⨢:

#pragma option lst
...
#pragma option lst-

 뤥 ࠣ 室 ⥪ ணࠬ,  ண 
ᮧ ᥬ ⨭.  ᫮ ⠪   ࠭祭.



७ ⥩  ᫥  ॣ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ࠦ ⢫ ᫥ ࠦ  16  32-
ॣ 㢥祭 ᫮ 㯭 権.

      ᯮ짮訬 ࠭ ࠬ += -= &= |= ^= ⥯
 ᯮ짮  *= /=.  ᫨ ࠢ  ⠪ ࠦ  ᢮
। 㤥   ᪮쪨 ஢,   ᭠砫
᫨  ࠢ ,  ⥬ 㤥 ந   ᢮.

    맮 楤 ⥯     ࠦ (࠭  뫮
⨬   砫 ࠦ).

     ,  ⥯ ⥫쭮 ०   ᠦ ᮮ饭 
 ᯮ짮    AX/EAX ॣ.



⨬  'switch'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     'switch' ᥩ    ॠ뢠 
ᯮᮡ: ⠡  ⮤ ᫥⥫ ஢ப.

     ⮤  ᠬ ,   讬 ᫥ ஢
'case'   ⥫쭮 ࠧ  ᨬ  
祭ﬨ 'case'       .      
⪨:  16-⭮ ०  ᥣ ᯮ ॣ BX,  
32-⭮ ०, ᫨ ࠭ 'switch'  ॣ,   祭
㤥 ࠧ襭.

    ⮤ ᫥⥫ ஢ப ᯮ짮 ஬ ࠭,  
⮩ ᨨ   :  ࠢ ७ᥭ  砫 ⥫
 'switch',     1-2 譨 'jmp'.   ⥯
   ।,  ⨯ 室 ᯮ짮  ஢થ
祭 'case'.    㤥 襩 ⮩.  ᫨ ࠧ   砫
⥫  'switch'   ᯮ  'case'  128
,  ᯮ짮 ⪨ 室.   ⮬ 砥  
㪠  'CASE',  ਢ  樨  ⭮ .
  ।० 㤥  ᪠뢠  
ᯮ짮 ஢ 'CASE'.  ᯮ짮  'CASE'  ,
 ࠧ    128  ਢ  뤠 ஬
ᮮ饭  訡.

     ⨬樨   ࠧ,  ।⥫쭮 
ࠧ ,    祭  ⮤  ॠ ᠬ
.   ⨬樨  ᪮ २⢮ ⤠ ⠡筮
⮤, ᫨ ࠧ ⠡ 砥  ᫨誮 訬.

      'switch'  ⠪  ⪠  ଠ - 'SWITCH'.  
 ਬ  砥, ᫨ ࠧ    砫 ⥫ 
 ஬ 'default' (᫨  ,  殬 ⥫ 
'switch')  128 .    ᯮ짮 ⪮ 
 㤥 ᮮ  ।०.



⨬   ࠢ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ஢થ ࠢ⢠   ࠢ⢠ , ᫨   ࠦ
ࠢ  ⠢, ந室 ᫥ ⮣ ࠦ  ॣ
AL/AX/EAX,  ⥬ ந ࠢ ⮣ ॣ  㫥.  ᫨
᫥  ᫥ ࠦ ⠭  ᭨ 䫠 
(ZF)  ᮮ⢥⢨  १⮬,   室  ᫥饬
ࠢ.   㦤 ⠫ ᭮  祭 
⭮  ண    ࠢ.    룫廊 
ਬ:

//室 ਬ
#jumptomain NONE
word a,b;
main()
{
  IF ( a + b != 0 ) a = 0 ;
}

    ᫥ 0.236   ᮧ ᫥騩 :
SPHINX/SHEKER C-- One Pass Disassembler. Version 0.236 Feb 13 2001

test.c-- 7: IF ( a + b != 0 ) a = 0 ;
0100 A11201                   mov     ax,[112h]
0103 03061401                 add     ax,[114h]
0107 85C0                     test    ax,ax
0109 7406                     je      0111h
010B C70612010000             mov     word ptr [112h],0
0111 C3                       ret

      ᮧ   :
SPHINX/SHEKER C-- One Pass Disassembler. Version 0.237.1 Feb 18 2001

test.c-- 7: IF ( a + b != 0 ) a = 0 ;
0100 A11001                   mov     ax,[110h]
0103 03061201                 add     ax,[112h]
0107 7406                     je      010Fh
0109 C70610010000             mov     word ptr [110h],0
010F C3                       ret



஢ઠ ⮢  樨 ࠢ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨    ࠦ ࠢ ᠭ: AX & 5,  
᫥ ࠦ ᮤন ॣ AX 㤥  樥 'and'.
   室  ஢થ ⮢   ᮤন
ॣ AX.   楫  ᯮ짮  'test'.  
㪠     ᯮ짮  'and',  
 'test'?  ⠭ 몠   ⮣ ᯮ 堭
ਮ⮢ - ᫨ ࠦ 祭  ᪮,  ந 
᫥, ᫨ ,  ந ஢ઠ.  C--  ন
ਮ⮢.  ࠧ襭 ⮩ ஡  C-- 襭 ᯮ짮
।⢥ ᠬ  'test'.  ⨬ ਠ ᨭ⠪:

IF ( $test AX,5 )
IF ( ! $test AX,5)
IF ( asm test AX,5)
IF ( ! asm { test AX,5 } )




    0.236  13.02.2001


 ᥬ୮ ⨭.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⥫쭮  樨  ப  -lst    
   ᯮ⥫ 䠩     ᥬ ⨭.   ⨭  㤥
饭    䠩      ᯮ⥫  䠩   騬 ७
*.lst.

    ᥬ ⨭  ᮧ ᨬ       
ᯮ짮  ଠ樨      樨  ணࠬ.  
ਢ    ⥫쭮    ࠧ      ᭨ ᪮
樨.


७ ⥩   ࠢ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        ࠢ      ࠭  ⥯ ⨬ ᯮ짮
᫥  ࠦ    ᢠ    樨  ६,  ६.
ਬ:

  IF (i=a+2 != 0 )...
  IF ( i++ )...
  IF ( a-- )...
  IF ( i+=4 == 0 )...

          ਬ  ᭠砫  ந ᫥ ࠦ  
 樨  ࠢ,   ⮬ 㤥  ந ࠢ  १ 
ࠢ  ࠦ ࠢ.


⮡ࠦ ⥣    .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ⮡ࠦ  ⥣               ୠ⨢
㪠⥫   . ᪨,   楫,        
஢   ,    ᯮ짮  㪠⥫  
(᪮,  ..      C--    ॠ)   㤥  
ॣ  㤥  ᯮ짮    (    ᯮ짮  ॣ  
).         , 㤥     ᯮ짮 
ॣ, ⮬  ਤ   饭     १
㪠⥫  ࠧ  㦠  ॣ  ⮩ .

    ୠ⨢ ᯮᮡ ᯮ짮  㪠⥫     
ᠬ    ॣ,    ஬  㤥  ࠭     ᠬ
᫥      ࠭        室 ⠭ 
ᮤন.

    ᭨,  ᯮ짮 ⮡ࠦ ⥣   ,
୮, 㤥   ਬ:

struct AA       // ⥣ 
{
  word a[3];    //   
  char b;       // ன  
  long c;       // ⨩  
};

byte buf[256];  // ,   㤥 ⮡ࠦ ⥣ 

void proc1()
{
 ...
 proc2 ( #buf );  // 맮 楤  ।祩   ⢥ ࠬ
                  //   
 ...
}

long proc2 (unsigned int pointer_to_mem)
{
int i;
  BX=pointer_to_mem;  //  BX 㧨   
  FOR(i=0; i<3; i++){ //  ᨢ  'a'  -1
    BX.AA.a[i]=-1;
  }
  BX.AA.b=0;
  return BX.AA.c;  //  ᮤন  'c'
}

      16-⭮  ०    ࠭       ᯮ짮
ॣ:  BX,  DI,  SI,  BP.        ⮣  ᯮ짮 ॣ BX.
  DI    SI    ᯮ짮      ᫥   
  ꥪ⮢.    BP    ᯮ    ࠡ 
묨     ࠬ᪨  ६묨.     32-⭮   ०   
ᯮ짮    ஬  ESP    EBP  ॣ,    ॣ  EDI  ESI 
ᯮ짮 ஦.


  ⠬ .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⤥  ⮢    ⠫      ,
ࠧ  ᬥ饭  ⥣ .  ਬ:

struct AA       // ⥣ 
{
  word a[3];    //   
  char b;       // ன  
  long c;       // ⨩  
};

struct BB	//⥣ ன 
{
  word aa;	//  
  AA bb;	// ன  -  
}ss;		// 塞   ⥣ BB

void proc()
{
  AX=#ss.bb.b;	//    'b'  'bb'   'ss'
  AX=#BB.bb.b;  //  ᬥ饭 ⮣    ⥣ 'BB'
  AX=sizeof(ss.bb);	//  ࠧ  'bb'   'ss'
  AX=sizeof(BB.bb);	//  ࠧ  'bb'  ⥣ 'BB'
}


᪨ ६  .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        㦥  묨    ᪨ 楤ࠬ  C-- 
 ᯮ짮  ᪨   ६   . ᪨
६        ⠪     ᪨ 楤 -
ᨬ   । 砫   .   ⠪    ᪠
楤, ᪠ ६    㤥 ⠢   , 
 ⮬ 砥, ᫨  㤥 ᯮ짮  ணࠬ.

    ᪨  ६        ਬ   ⥪.
ᯮ짮  ।⢥  ணࠬ  ᫠.

     ᪨  ६,   ⠪      楤,   
⮪  -      ᬮ          ணࠬ     
ᯮ,    浪.

    ᪨  樠஢  ६        䠩 
ᯮ       ᠬ  ,  ᫥   ᪨  楤.     
ᮡ   ᯮ짮, ᫨   㤥  室, ⮡   
뫨 ࠧᠭ । ,  뫨 㯯஢   .


inline-楤.
~~~~~~~~~~~~~~~~~~

    inline-楤ࠬ      ᪨  楤,     
ᯮ짮    .      ⫨稥  ᮢ, inline-楤, 
祭 ⨬樨   ᪮,  ⮬᪨ ⠢   ,   
⨬樨   ࠧ,  맮 ,  ᪨ 楤.

      뢠  㦭  祭  ⨬樨  ࠧ  , ⮡
楤 ⠢﫨   ,      맮.    楫  
४⨢  #inline  TRUE.  ⮩    ४⨢  (  #inline FALSE ),  
⨬樨  ᪮  맮 楤,   ⠢.

     ,     ४⨢ #inline  ⮬᪨   
ᬥ  ०  ⨬樨.    ⠭  ⨬樨    ᪮  
४⨢ #inline ⠭   TRUE,    ᬥ ०  ⨬樨 
ࠧ ,  ⠭   FALSE. ⮬  ਬ ४⨢ #inline
 ᫥ ᬥ ० ⨬樨.

          : ४⨢  騥 ०  ⨬樨
#codesize,  #speed     ४⨢   #inline,        楤
࠭ ⮫쪮   ⠢   楤,  ..   ⠭
묨.    ⮣  ⮡    뫨  묨  ४⨢ 
  ⥫ 楤.

      猪  楤      inline-楤ன.    
⠪ ,    ᮢ ࠭祭.  ஡    ࠭祭
㤥 ᪠ .

     ⮣ ⮡ । inline-楤,   ࢮ ப   
楤  ᨬ ᪮ 楤 (':')  祢  ᫮
'inline'. ਬ । inline-楤:

inline int fastcall abs(AX)
{
    IF ( int AX < 0 ) -AX ;
}


롮筮 ⪫祭 ⨯ ।०.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          뤠  8  ⨯  ।० ,  
뢠 ⠪ ,   ⠭ 㤭    ਥ஢.   
롮筮  뤠 ।०.   ⮣    ப (
 䠩 C--.INI)   ⠭  /nw=number,   number - ᫮   1
 8. ⨬ ࠬ ᮮ⢥ ᫥騥 ⨯ ।०:

 1 - "Opimization number"
 2 - "Compiler used the register ..."
 3 - "Possible use short operator '...'"
 4 - "Repeated string "...""
 5 - "Expansion variable"
 6 - "Returned signed value"
 7 - "'...' already defined. Skipped"
 8 - "[Variable/Structure/Procedure] '...' possible not used"


맮 API 楤  न.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ᪨  砥 ⥪  (DLL)   楤, ஬ 
,  ᮮ⢥  㭨쭮  ᫮,  ஥  뢠  न.   
⮬,  ஬  饯ਭ⮣  맮  API-楤    ,  
맮      न.  ᪨,    ᯮ짮 맮  न,
㧪 䠩   ந室 ॥.     室  䠩  
祭 ᯨ᪨   楤,  맮   ந   न, 
室 䠩    訬  ࠧ.

    ⮡     ᮧ  䠩,   ᯮ騩  맮   API-楤  
न,  ᤥ  :

 1.        .    ⮣     
ப (  䠩 C--.INI) 㪠  'WO'.

 2.    -     न ᮮ⢥   
楤. 楤,       㪠 न, 㤥  ᮧ 맮
  .  ⠭  ᮮ⢥⢨     楤  न     
ᯮᮡ:

    a). ⮬᪨,     樨   ப 'IND=name.dll',  
        ன   ᪠   ⥪     
            न 楤. (   ⮫쪮   ⥪
         ଠ PE).

    b).   㪠   API-楤   न.   
	⠪: ᫥  楤 ⠢ 窠,    㪠뢠  
	न.     ਬ     API-楤     㪠  
        न:

extern WINAPI "user32.dll"
{
  ............
  long  MessageBoxA.429();
  ............
}

     ⥪ (DLL),    楤,     㪠
 ,  㪠  न.  맮 ⠪ 楤     ,
      ᤥ    न  (᫨,  筮  ,  祣 
楤      ).   ⮣    API-楤  
ਤ㬠    ⮩  楤  㭨쭮      㪠 ॠ न.
⥬    ணࠬ    㤥      ⮩ 楤  諥
.  ᫨   砩 ⪮ ⠪ 䠩    'WO',   
᪥  ⮩  ணࠬ      ᮮ饭,   ⮬,    
⥪ .

     ᮦ,     ࠭⨩ ⮣,     न   
楤        ᬥ  ᨨ  ᪮ ⥪. ⮬
ᯮ짮 न  ஦.


⨥ ࠭祭  ᪨ 楤.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ࠭祭    ᪨  楤  ᭨ 䥪⨢  
 楤 .    ⨬ 祭.    
  ᪨  楤    맮  㣨 ᪨  몭
楤,  饬,   ,     몭  ᪨
楤.

      ᪨ 楤,   ᮡࠥ ᯮ짮  
  inline 楤 ⠫  ࠭祭.  :

    1.    ⢥  -楤    ᯮ짮  ⮫쪮   ॣ஢
       楤 (楤 ⨯ 'fastcall').

    2.  -楤  ᯮ짮  'return'.

    3.  ६ ⠪  ᯮ짮  -楤.

      ᪨  楤  ஢  ࠧ,    ⥬,  
室,  ⮢      楤  ⠢    室 
ணࠬ.    ࠭     室 ⥪ ᪮
楤  ,      室,       ⮬ ,  
  室.     室   㢥稢  ॡ     
⨢      ,   ,   㬥   ᪮   樨.   
२⢠,      ⠪  室,      ,    ⠪
⥫ .


४⨢ #jumptomain ( -j0 -j1 -j2).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ४⨢ #jumptomain  믮   ࠧ 㭪樨   ᨬ
 ⨯ 室 䠩.

     䠩 ⨯ *.com  *.exe   tiny:

  #jumptomain  NONE  (-j0)  -    ⮬  砥    砭    砫쭮
樠樨 ணࠬ    jmp  楤 main.   ४⨢
᫥  ᯮ짮    砥,  ᫨    楤  main    㣨   
᪨ 楤  樠஢ ६.

  #jumptomain  SHORT  (-j1)  -    ⮬  砥    砭   砫쭮
樠樨    ⪨  jmp    楤  main.  ४⨢
᫥ ᯮ짮, ᫨  楤 main 室   128   
 .

  #jumptomain NEAR  (-j2) -   ﭨ  ⠭   㬮砭. 
⮬   jmp  楤 main.

     䠩 *.exe ( -exe -d32 -w32 -w32c):

  #jumptomain  NONE  (-j0)  -    ⮬  砥    砫쭮   樠樨
ணࠬ        ࠢ    ᪥  ।  ࠧ 
楤 main.

      ⠫        砫쭮  樠樨  
ࠢ  楤 main । 樥 call.

     䠩 *.dll:

  #jumptomain  NONE  (-j0)  -    ⮬  砥    砫쭮   樠樨
ணࠬ        ࠢ    ᪥  ।  ࠧ 
楤 main.

      ⠫        誨    ࠢ  
楤  main    ।.  ᪨  楤  main  ⮬ 砥 
㦭.

  楤 main  ᮧ 䠩  DLL  룫拉  ,  祬
 㣨 :

dword main ( dword hInstDLL, reason, reserv )
{
  ...
}





    0.235  13.11.2000


32- stub  DOS ணࠬ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⮩  ᨨ     ந諨      ᯮᮡ   ।
ଠ樨      ᪮஢    32-⭮   ணࠬ       stub-䠩.
⢥⢥   ᠬ stub-䠩 - c--stub.exe.

    32- DOS-䠩    砫 ⠭  'MZ' exe-䠩 ࠧ஬  32
.  ᫨     樨  ணࠬ  뫠        ᮥ
stub-䠩,      ᬥ饭 0x14 (CS:IP  ⠭⭮  'MZ' )
ᮤন 祭 ॣ EIP,  ..  窨 室   ணࠬ.    
  ᬥ饭  0x1C  (  ⠭⭮  'MZ'      ⪮ 㭪樨)
ᮤন ࠧ     , 室   ࠡ  ணࠬ -  +
post_ + ⥪. Stub-䠩 ᮥ  砫 ⮣ 䠩.

     ⮩ ᨨ    প    ᯮ饣 
室  ࠡ  32-⭮ ०  DPMI ࢨ. 室  ⥪
⮣  室   䠩 startup.h--   , ᫨   
ப  㪠    /stub=dpmi       䠩  c--.ini     ப
stub=dpmi.  ⪮  ⮣  ᯮᮡ  室   ࠡ  32-⭮ ०
   室   易⥫쭮   㭪樮஢      ᪠
 DPMI  ࢨ. ,  ⠪ ,  ணࠬ 㦠   筠
DOS ணࠬ,       ࠡ 室   32- ० ࠡ,
ࠧ ணࠬ ࠭祭 ࠧ஬  ᢮ DOS .    २⢮
   ࠧ ᯮ塞 䠩.


ࠢ ६ ⨯ float  32- ॣ஬.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ॣ    ᮤঠ  ,       ⢥
.   㬮砭 ⠥,     ॣ 室   楫
᫮.    ࠢ  ६  ⨯  float    32-  ॣ஬ 
㪠뢠  ⨯     ᮤঠ     ॣ.     ⮩   楫  
ᯮ짮 䨪: 'signed', 'unsigned', 'float'. ਬ:

float f=1.0;

void PROC()
{
  IF( f < signed ECX)	// ॣ ECX 室  ᫮
  IF( unsigned EBX > f) // ॣ EBX 室  ᫮
  IF( f == float EAX )  // EAX 室 ᫮ ଠ float
}


 C--  ⠭⮬  모 .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩  ᨨ   ஢   , ᡫ騩  ᨭ⠪
몠  C--    ⠭⮬    모  .     ᮧ
筮,    㤥  ७ ணࠬ  --.

    1.     ६  ⥯          砫   
楤. ਬ:

void proc()
{
int locproc;  //  쭮 楤
  locproc=0;  //  ⥯ 諮 ⥫ 楤
int locproc;  //     ६  뤠 ᮮ饭
	      //  訡, .. 㦥 砫 ⥫ 楤
}

        ६        楤  
 楤 ন  ०.

    2.  ᫮ ⠭⠬   䨪 'L', 'U'  'F'.  ᪨
  䨪    C--  ᥩ        ஫,   
ண뢠. ਬ:

#define DEF  1L
#define DEF2 2Lu
#define DEF3 3.0F

     䨪    ॣ, ..      쪨,
⠪  訬 㪢.

    3.   ந諨        ⨯  .   ᮢ⨬ 
⠭⮬       १ࢨ஢   ᫮:  'short',    'signed',
'unsigned'.    ⨯  'int'    32-⭮  ०   ࠧ來. 
⠡  ਠ⮢  ⨯ :

---------------------------------------------------------
|    ⨯     |⨬ ᮪饭| |
---------------------------------------------------------
|signed char       |char                 |  char        |
|signed int        |signed, int          |  int/long    |
|signed short int  |short, signed short  |  int         |
|signed long int   |long, signed long    |  long        |
|unsigned char     |---                  |  byte        |
|unsigned int      |unsigned             |  word/dword  |
|unsigned short int|unsigned short       |  word        |
|unsigned long int |unsigned long        |  dword       |
---------------------------------------------------------

      ⨯  byte,  word    dword  ন    ०   
㭪樮쭮  ०  祭.    㫨    ⨯  int.  
16-⭮ ०, ⠪    ⨯  unsigned int   16- ࠧ,   
32-⭮ ०   ⨯  ࠧ  32-.

    ᫨   32- ணࠬ  ᯮ짮 ६ ⨯ int,   
樨  ணࠬ   ஬,   㤥  २ 
  ⨯  short.      ணࠬ   ࠡ  ࠢ쭮.  
 ⨯ int ᯮ  32- ணࠬ  ⠪ .   
  ணࠬ  諮         䠩 
windows.

    ࠦ ⨯: DSINT[..], ESINT[..] ࠡ, ⠪ ,   ०.


樠 DLL  㧪.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ,    ࠡ  楤    ᪨  ⥪  (DLL), 뢠
室 樠஢   ६  祭ﬨ, 騬  
⥪饣 ﭨ  樮 ⥬,  ਬ,   ਯ ⮩
⥪.   ⮣    ᨨ     ᮧ DLL  
প 楤 'main'. ࠢ   楤 ।  ⭮
 㧪 ⥪.

    ᫨    ⥪    㦤     樠樨,         
室 ᯮ짮 楤  'main', ४⨢ #jumptomain  NONE 
箬    ப  /j0     ⪫  ॡ     
室 楤 'main'.


 obj-䠩  32-⭮ DOS.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ᤥ   obj-䠩   32-⭮ DOS.   ⮣ 
  ப    室  㪠    /d32   /obj. ᯮ짮
祭 obj-䠩  㤠     wlink  ⥫  zrdx.exe.
᫨  㤠 ᯮ짮 obj-䠩   tlink,     㣨
ᯮᮡ,  ᮮ    ⮬  .   ਬ  ᯮ짮  obj-䠩   
ᬮ  ४ਨ EXAMPLE.


  ᯮ짮 ⫠筮 ଠ樨.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨  樨 ணࠬ    ப   /dbg,  
  䠩  䨣樨  c--.ini    ப  dbg,       ᫥
砭 樨 ᮧ  䠩  ⫠筮  ଠ樥.  䠩  
     ७ *.tds.

    ⫠筠   ଠ   ᮧ   ஬   C--   ᮢ⨬  
⫠筮 ଠ樥 ᮧ ࠬ  Borland. , ,  
ଠ ॠ     ꥬ.   ᥩ  ⫠筮
ଠ樨 筮  ஢ ⥩襩 ⫠ ணࠬ.

      16-  ணࠬ    DOS    ⫠    ᯮ짮 Turbo
Debugger   Borland C v4.5   (䠩 td.exe).

     ணࠬ  Windows  ᯮ짮 32- ⫠稪  ⮣  
 (䠩 td32.exe).

      32-  ணࠬ,  ᯮ  ⥫  DOS  ਬ   
⫠ Turbo Debugger . ,      ,    .
᫨    ,     ᮧ  32-  ணࠬ     DOS-⥫
ࠬ    Borland    祭     ⫠筮 ଠ樨, 
᪠ .   ஡ ਬ   C--.

      ᪥    ⫠  ணࠬ,  ⫠稪    㧨     
믮 startup , ..    楤 main   ⠬ ⠭.   
-   稭,   ⫠ ணࠬ   DOS  ( ᪫祭
䠩  ⪮஢     箬   /texe),  ⫠稪,   ⮫쪮  㦠
ணࠬ   ⠭   ࢮ   startup-.   ⨬, 筮,
 ᬨ,   祭   㤮. ⮡  ஢  startup-,
   ⫠稪    'Alt+V',  ⥬ 'M',   ᯨ᪠  祭
㫥,          ⫠  䠩.  襬 
⠭    砫 楤 main    'F4'.  ᫥ ⮣ 
 ⫠ ணࠬ.

      ࠧࠫ  ன ⫠筮 ଠ樨  DOS,  ᮧ
⫥,  ࠧࠡ稪    㡮 嬥. , ,  
    .  ᫨      ஡ ᠭ  ⮩ , 
       .          ⢮    㥬
஬  ⫠筮   ଠ樨.  ⫠筠   ଠ     Windows
룫廊  筮  ⭮.




    0.234  1.10.2000



 API-楤.
~~~~~~~~~~~~~~~~~~~~~~~~~

        ᮧ  DLL,        ᯮ㥬
楤  ⠪ ଠ:

   ProcName@8

     ⮬  ᫥ ᨬ  '@' 㪠뢠 ࠧ ⥪   ࠬࠬ,
। 楤.

    C-- ⥯  ࠡ  ⠪ DLL.  ⠪ 楤  㦭
⠪:

extern WINAPI "name.dll"
{
   ProcName@8 ;
}

..  㣫 ᪮.  ணࠬ,  饭  ⠪ 楤,  
   䨪 @8, ..  ⠪ - ProcName(param1,param2);



  楤  DLL.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨        ᢮  ணࠬ  ᯮ짮 DLL,  ன 
筮 䠩  ᠭ 楤,     ஢
   ⮩ DLL.   ⮣     㪠   ⮩ ⥪  
१      ப  /ind=name.dll,      䠩  INI ப
ind=name.dll,  १ ४⨢ #pragma option ind=name.dll.

     ⪮ ⠪  ᯮᮡ 祭    ⭥ ,   
樨   ணࠬ   ⥪,      ன      ,
易⥫쭮    ⢮    .  ,  ᫨     
⥪   ᠭ      䨪   '@number',        㤥
஫஢  ᫮  ࠬ஢  ।  楤.  ,  ᮦ,
  㬥  ஢      ⥪  ⮫쪮 ଠ
PE-䠩.



 stub  ணࠬ  windows.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⭮,   ணࠬ   windows   DOS  誠, 뢠
stub, ன  । ࠢ   ᪥  ⠪ ணࠬ   ⮬
DOS-.  筮  ⠪  誠  뢮    ࠭ ᮮ饭  ⮬,  
ணࠬ  ᪠  । windows.

          ⠭⭮  stub  ᯮ짮 ᢮.  ⮣ 
室  㪠    16-⭮  EXE-䠩    १  
ப /ws=filename,  ப   INI-䠩 ws=filename,   ४⨢
#pragma option ws=filename.

      ࠧ,           ᮧ   ணࠬ,
ࠡ騥   DOS   windows.



 祭 stub  䠩.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      樨   ப /ns,   ப   INI-䠩 ns, 
४⨢ #pragma  option ns     祭 stub  ⥯  
ணࠬ  windows (࠭   뫮  ⮫쪮  DOS32).  
windows  ணࠬ    stub     ।  DOS  ਢ     ।᪠㥬
१⠬.



祭 ᮢ.
~~~~~~~~~~~~~~~~~~~~~~

    ୮,     㦥  ⨫,     ᫨     windows    ணࠬ
⪮஢    ४⨢  #winmonoblock  TRUE  , 
⠪ ணࠬ,  ᥣ,  ࠡ⠥.

    稭  ⮣    ,    ணࠬ  騥    
ᬮ    㠫  ࠧ   ᫥  ᥪ樨  ⠡  ꥪ⮢,   
  ᠬ   䨧᪮ ࠧ  ᥪ樨. ⮬, ᫨  ᫥
뢠 ᥪ ,  ன  讥 ᫮   樠஢
,   䨧᪨   ࠧ   ⮩   ᥪ樨   ࠢ    Object_Align
뢠  祬 㠫  ࠧ, 㪠    Virtual_Size 
⠡ ꥪ⮢, ࠭   ᠬ    ᥪ   ࠭楩
.

    ⮡    ⮣,      樠஢     ᮧ
⤥쭠  ᥪ  .bss,    ᯮ  ᠬ  ࢮ     ⠡
ꥪ⮢.     ᠬ     ᫥饩  ᥪ樨     㠫   ࠧ
뢠 ࠢ  ࠢ 䨧᪮     ந室 祭  
ᥪ樥 ᮢ.

     .bss  ᮧ ⮬᪨   樨  ணࠬ   箬
/w32. ᫨      ᥪ    樨 ணࠬ   砬
/w32c  /dll  室     ப   /wbss,
 ப wbss  INI-䠩,  ४⨢ #pragma option wbss.

    ᯮ짮 ᥪ樨  .bss ࠪ᪨      ࠧ 砥
䠩.  ᪨,    ஢,       ⤥  
,  ᯮ짮   ᥪ樨  .bss,        ᪮  ࠡ
ணࠬ.



    0.233  11.09.2000


     ⨬樨  ᪮,  ᯠਢ   Pentium
 MOVZX    権 XOR  MOV.   ⮬ 
 樨,  砫 訡 . ਬ:

   ப 室 ⥪:

   EBX = DSBYTE [ EBX ] ;

    ⮬ ஢ ᫥騩 :

   XOR EBX,EBX
   MOV BL,DSBYTE[EBX]

    믮 ⠪   맮 ᡮ ணࠬ.

      ᨨ  ⠪ 樨 ᫥   ᪠.



    த ⨬ 㥬   ࠧ   ᪮
믮:

 -    㬭:
      ⭮,  ᠬ   .  
     ६  ᫮, ᫨  祭  ॢ蠥 65535,  
         믮饥 㬭. ਬ:

	ப 室 ⥪:

	 dword a,b;
	 ....
	 a = b / 12 ;

	 ⮬ 㤥 ஢ ᫥騩 :

	 mov    eax,[b]
         mov    edx,15555556
         mul    edx
         mov    eax,edx
         mov    [a],eax

	 ᫮ 祭,  ஥ 㤥 㬭 ६,
         ஬  ᫥饩 㫥:

	  new_const = 0xFFFFFFFF / old_const + 1

	 ᫥  ६묨 ⨯ int  char ਬ 
        㣮 ,   ⠥ ⠪ .

 - ᫮  32- ॣ஢  ᫮ 祭 ந
   樥 LEA. ਬ:

    EBX = EAX + EDX;         - 㤥 祭  LEA EBX,[EAX+EDX]
    EAX = EBX*4+ECX+0x1234;  - 㤥 祭  LEA EAX,[ECX+EBX*4+0x1234]

    ਬ 樨 LEA 㬥蠥 ࠧ 砥   㢥稢
    ᪮ 믮, ,  ஢ Pentium  㢥稢
    ⭮  権 AGI  ।騬 .

 -  㬭 ᫮ ⠭  ६ ந  ⠬
   ᮬ⥫,  ਢ  祭  ⭮ .






    0.232  6.09.2000


    稭  ⮩ ᨨ   -- ⠥ 室    ਠ
(᮫    ᮢ᪨).    㤥  ⮫쪮    32-⭠    
⥫  .    裡    ⨬  㢥稢   ॡ 
   ஬ ᯮᮡ  ࠡ .   ॡ  ⠪ -
386    ⠬ ⨢  (  ).



		 ஡    .


  ࠬ  ப.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      襭  ⢨      ࠡ祩  窮 (IDE) 
ࠬࠬ    ப    ࠬ, 믮騥 㭪樨 ࠭
। ४⨢.

      ᮢ襭  ࠬ:

/AC  (Align Cycle) -  ࠢ 砫 横    8.  
         த⢨          ᯮ짮 
     ஢ Pentium.

/MIF=<filename>  (Main  Input  File)  -  ।       
     㥬  .    ࠬ  ।祭  ᯮ짮 
     䠩 砫쭮 樠樨 *.ini.

      ᯨ᮪ ࠬ஢  ப   ᠭ:

/0          ᯮ짮 ⮫쪮  8086/8088  (⠭ 
            㬮砭  樨 16- ணࠬ).
/1          ᯮ짮  80186 .
/2          ᯮ짮   ⨬  80286 .
/3          ᯮ짮   ⨬  80386 ]
            (⠭  㬮砭  32- ணࠬ).
/4          ᯮ짮   ⨬  80486 .
/5          ᯮ짮   ⨬  Pentium .
/6          ᯮ짮   ⨬  Pentium MMX .
/7          ᯮ짮   ⨬  Pentium Pro .
/8          ᯮ짮   ⨬  Pentium II .
/9          ᯮ짮   ⨬  Pentium III 
	    (  ॠ - ⢨ ଠ樨).
/A          ࠢ    
	     㬮砭 ࠧ設, ন 
/AC         ࠢ  砫 몫
	     㬮砭 ⪫祭, ন 
	      ⮫쪮   Pentium+
/AL=##      ⠭ 祭    ࠢ 
	     㬮砭 0.
/AP         ࠢ  砫 楤.
	     㬮砭 ⪫祭, ন 
	      ⮫쪮     
/ARGC       ⠢  ࠧ  ப
	     㬮砭 ⪫祭, ন 
/AT         ⠢  প ATEXIT 楤
	     㬮砭 ⪫祭, ন 
/C          ⠢  ஢ CTRL<C>
	     㬮砭 ⪫祭, ন 
	      ⮫쪮  DOS ணࠬ
/CRI        ஢ 砥 䠩   㧪
	     㬮砭 祭, ন 
/D32        ᮧ EXE 䠩 (32    DOS)
	     㬮砭 COM
/D=<idname> । 䨪  ᫮ 樨
	     㬮砭 
/DE         ६ ७ ࠧ來 ᫥ 㬭
	     㬮砭 ⪫祭, ন 
/DLL        ᮧ DLL  Windows32
	     㬮砭 COM
/EXE        ᮧ EXE 䠩  DOS ( SMALL)
	     㬮砭 COM
/HELP /H /? ࠢ,  ଠ
/IA          ᥬ 権  䨪ࠬ
	     㬮砭 ⪫祭, ন 
/IP=<path>    ᪠ 砥 䠩
	     㬮砭 
/IV         樠஢  ६
	     㬮砭 ⪫祭, ন 
/J0           砫 jump  main()
	     㬮砭 ⪫祭, ন 
	     COM-䠩  ᮧ jmp  main.  ⠫  ᮧ 
	    砫쭮 樠樨 ணࠬ,  ࠢ ।
	    ࠧ  main.
/J1          ⪨ jump  main()
	     㬮砭 
	      ⮫쪮  COM-䠩
/J2          jump  main()
	     㬮砭 , ন 
	      ⮫쪮  COM-䠩
/LAI        ᯨ᮪ ন ᥬ 権
/ME             
/MER=##     ⠭ ᨬ쭮 ᫮ 訡
	     㬮砭 16
/MIF=<file> ।   㥬 䠩
/NS           stub ( DOS 32bit)
	    ᫨ 㪠  stub-䠩 - ࠧ襭
/OBJ        ᮧ OBJ 䠩
	    ⮫쪮 16  .
	     㬮砭 COM
/OC         ⨬஢  ࠧ 
	     㬮砭 , ন 
/ON         ⨬ ᥫ
	     㬮砭 , ন 
/OS         ⨬  ᪮ 믮
	     㬮砭 , ন 
/OST        ⨬ ப 䨪஢
	     㬮砭 ⪫祭, ন 
/P          ⠢  ࠧન  ப
	     㬮砭 , ন 
/R          ⠢  㬥騩 ࠧ 㯭 .
	     㬮砭 , ন 
	      ⮫쪮  DOS-䠩
/S=#####    ⠭ ࠧ ⥪
	     㬮砭 2048
/SA=####    砫쭮 ᬥ饭  ᪠ ணࠬ
	      ⮫쪮  COM-䠩,  㬮砭 0x100
/SOBJ       ᮧ  OBJ 䠩
	     㬮砭 COM
/STM        ७  startup   楤 main
	     㬮砭 , ন 
	      ⮫쪮  COM-䠩
/SUV=####   砫   樠஢ ६, 
            ᯮ짮  startup .
	      ⮫쪮  COM-䠩,  㬮砭 ࠢ /SA
/SYM        ன  COM 䠩
	     㬮砭 COM
/SYS        ᮧ ࠩ ன (SYS)
	     㬮砭 COM
/TEXE       ᮧ EXE 䠩  DOS ( TINY)
	     㬮砭 COM
/UST        ᯮ짮 startup   ६.
	      ⮫쪮  COM-䠩
	     㬮砭 , ন 
/W          ࠧ ।०
	     㬮砭 , ন 
/W32        ᮧ EXE 䠩  Windows32 GUI
	     㬮砭 COM
/W32C       ᮧ EXE 䠩  Windows32 console
	     㬮砭 COM
/WF=<file>  ७ࠢ 뢮 ।०  䠩.
	     㬮砭 
/WFA        ᯮ짮  맮 API 楤
	     㬮砭 , ন 
	    ⮫쪮  windows
/WFU        ᮧ ⠡ ६饭 ( Windows32)
	     㬮砭 , ন 
	    ⮫쪮  windows
	     DLL ⠭  
/WIB=#####  ⠭  image base
	     㬮砭 0x400000
/WMB        ᮧ Windows-䠩   
	     㬮砭 , ন 
	    ⮫쪮  windows
	     DLL ⠭  
/WORDS      뤠 ᯨ᮪ १ࢨ஢ 䨪஢
/X           ⠢   SPHINXC-- ᨣ
	     㬮砭 ࠧ襭, ন 
	    ⪫砥 ᫨  J0

ਬ砭: ࠦ "ন " 砥,    樨
 ᯮ짮  ⨢ 祭   ᨬ '-' ᫥
樨.



 砫쭮 樠樨 *.ini.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          ⮬᪨   ᪠      㦠  䠩  砫쭮
樠樨 c--.ini  ᭠砫   ⥪饩 ४ਨ   ᫨   ⠬   뫮
,   ४ਨ,  ன  饭 .    䠩
    (  ७   易⥫쭮 ini).   ⮣
䠩  ७   ।    ப.  
c--.ini 㦠  ࠡ뢠   ० - ⮬᪨   㧪
䠩 㪠   ப.

     ࠧ, 䠩  *.ini  ᯮ짮   make-䠩 -   
  㪠     㥬     室 
 樨 ன.



⨬   த⢨.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

           Pentium   믮       ४権    騩
த⢨  ணࠬ.  :

  -   ࠢ ॣ  㫥  樨 OR ᯮ
    TEST.
  -   ᯠਢ騥 樨 CDQ, NOT, NEG, MOVZX, LEAVE 
    ᯠਢ騥 , ⠬,   뫮 .
  -  㬭  2, 4, 8  樨 LEA ᯮ ᤢ.
  -  ࠢ 砫 楤  横 (砥 樮쭮 
     ப).
  -  । ࠬ஢ ⥪ 楤ࠬ  ਬ 
    ᯠਢ騥 樨 PUSH NUMBER  PUSH VARIABLE.   祭
    ७  ॣ AX/EAX  ⥬  PUSH AX/EAX.

      䨪樨  ਬ   㥬  ᥬ
権.



஡  ᮧ DLL.
~~~~~~~~~~~~~~~~~~~~~~~~~~

      襭  ஡,      業  ᯮ짮  DLL
ᮧ ஬  C--.   ᫥ Denis  Porfiryev (FIDO -
2:5066/68.2) 뫮 ᭥,    樨 ⠡ ६饭  ந室
訡,  -  ன      ந室 樠 ⠡ ६饭 
.   ந室 樠   ⠡     砥, ᫨  ⠡
६饭   室   ⤥쭮 ᥪ樨.  ⮬   樨 DLL 
ᯮ ४⨢ #winmonoblock TRUE.




    0.231  16.07.2000


প 楤 'ABORT', 'ATEXIT'  'EXIT'  Windows.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    楤  'ABORT'    'EXIT'  易    ࠡ⮩  ४⨢  #atexit   
楤ன 'ATEXIT'.  ⨬  ॠ    ⥣
 ᤥ ⮫쪮 .   ⮬  楤  ন
஬. প  楤  DOS 㦥 뫠 ந ࠭.

    楤 'ATEXIT' - ॣ஢ 楤,  ॣ  㭪,
 ன ।   ⢥ ࠬ, .. १ ॣ EAX,  
㭪 襭 ணࠬ.  ᯥ譮 ॣ樨 'ATEXIT' 頥  0.
ᥣ  ॣ஢  16 㭪権.

    騥 㭪樨      ࠬ஢   .   㭪樨
 믮   浪 ⭮ ।  ॣ樨  砥,  ᫨
 㤥  ࠡ ணࠬ १ 맮 楤 'ABORT'   'EXIT'
   ࠡ 楤  'main'. ᫨     ࠡ ணࠬ
맮 楤 ExitProcess  Windows   맮 AH=0x4C; $int 0x21  
DOS, 室  ணࠬ ந  ᪠ ॣ஢ 㭪権.

    楤  'ABORT'    'EXIT',  ᫨   祭 ४⨢ #atexit 
맮 楤 ExitProcess   Windows   맮 AH=0x4C; $int  0x21  DOS.
楤  'ABORT'    ।    ࠬ,   蠥 ࠡ
ணࠬ        0.  楤  'EXIT'  ।     ⢥
ࠬ  ,     蠥 ࠡ ணࠬ.


४⨢ #pragma strtup.
~~~~~~~~~~~~~~~~~~~~~~~~~~

    ४⨢ #pragma startup  㪠 㭪,  㤥  믮
। ᪮ 楤 'main'.  ४⨢  ⠪ ଠ:

#pragma startup procname

    ⢮ ࠧ, ஥   ਬ   ४⨢    ணࠬ
 ࠭祭,  ॠ쭮  ᯮ짮  ᪮쪮  ࠧ.


७  ᯮ짮 ᨬ '$'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     '$',  ஬ ⮣,     ਧ ᫥饩 ᥬ୮
樨,    몥  C--,       몥 Assembler  㪠뢠 ⥪騩
  (ᬥ饭)  㥬  ணࠬ.      C--    ࠭祭
.    ᯮ짮   㬥    GOTO/goto
 ᥬ   DW/DD/JMP      易⥫쭮   
塞 ࠦ.

      ᨬ   室     塞 ᫮
ࠦ     ਬ     ᮢ⭮   㣨 ᫮묨
ࠦﬨ.


७  ᯮ짮  'sizeof'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨  'sizeof'  ⢥ ࠬ 㪠  ६,   
ணࠬ 㤥 ⠢ ࠧ , ⢥   ६  (࠭
⠢ ࠧ ⨯ ६).

            ,  ந襤訥     ᯮ짮
  'sizeof'      .    ⠪  ࠦ ⠢
䠪᪨  ࠧ  ,    ன (࠭ ⠢ ࠧ
⥣ ).  ᮡ , ᫨   ᨢ .

      'sizeof'  ਬ    ⥣      ࠭, ⠢
ࠧ ⮣ ⥣.

      'sizeof'  ⥯    ਬ     । ࠭
楤. ⮬ 㤥 ࠧ ⮩ 楤.


஡  樥 DLL.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ᯮ짮  DLL, ᠭ   C--,  ᭨,    㧪
  ⥪  ந室  樠  ⮫쪮  ⠡ ᯮ. 
६饭  ,    稭  樠.   
ࠤ    , 襩   ஡.

      ।,       樠  ந     樠樨
⥪.  ⥫     㢨   㬥⠫쭮  ⢥ত   ⮣  
஡ ᠭ ⮣ .

     ஡ 뢠,  祭      ,  ࠭祭
  ᯮ짮  DLL  ᠭ    C--.    ࠭祭     ⠪ -
楤, 室騥,  DLL  ᮮ⢥⢮ ᥬ ॡ,  
।  ᪨ 楤ࠬ, ..     ᮤঠ   ᥡ
맮 㣨 楤      ६.  ⠪  
   ᥡ ப ⠭.






    0.230  13.06.2000


 䨣樨 c--.ini
~~~~~~~~~~~~~~~~~~~~~~~~~~

       䠩  䨣樨 ᭠砫  ⥪饩  ४ਨ ,
᫨  ⠬  ,   ४ਨ,  ᯮ ᠬ .  
 ᯮ짮 䠩 䨣樨  ன ⭮ ஥.


饭  ᥬ 権.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ⠫   ᯮ짮 ᥬ  樨   䨪 '$' 
  asm.  ० 砥:    ப 樥 /ia;   䠩
䨣樨 ப ia  ४⨢ #pragma option ia.

       ० 祭,     ᥬ 権  ⠭
१ࢨ஢묨  ᫮,  ..      ᬮ     ᯮ짮 
⢥    ६    楤.  ᥬ 樨 
ᯮ ᨬ  ⮣, ᠭ  쪨  訬 㪢.


᮪ ন ᥬ 権.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ᯨ᮪  ন   ஬  ᥬ   権
, ⨢   樥 /lia.


४⨢ include.
~~~~~~~~~~~~~~~~~~~

     ४⨢ include   includepath   ⥯ 뢠   
ᨬ '\\'.   ४⨢  include   ୠ⨢ ਠ ᪠
䠩,    ஬    砥  䠩  ந室     ⨢
ࠢ - ᭠砫   ४ਨ,   ன 室 ,  ⥬ 
४ਨ,   㪠뢠 ६ 㦥 C--, ⥬   ४ਨ
  ப  ini-䠩  ip=path,  ⥬    ४ਨ  樥
 ப /ip=path.    ⥪饩 ४ਨ   ந. ⮡
 砥 䠩  ந室  ⮬  ,  ⮣  䠩 
  㣫 窨. ਬ:

 #include <system.h-->


⠪ ࠬ஢  ப.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    樨     ப ⥯  뤥  ஬ ᨬ
'/'   ᨬ '-'.  ஢ 㭪 樨  ᨬ  '-' ᫥
樨. ਬ:


/on    -on   ⨬묨  㭪樮쭮 묨.
 ⬥ ⮩ 樨  :
/on-    -on-

    ⢥⢥    ᨭ⠪   䠩  C--.INI -     ⮬
䠩  뢠  筮  ⠪          ப  ᪫祭
ࢮ 䨪樮 ᨬ '/'  '-'.



ய ୮ 砥 䠩.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ᥣ,   ୮     䠩     㥬  ஥,   
室,     ந室 - ⮣,    砥
䠩  ᠬ    㣨  䠩.  ⮡  ⮣   ந室 室
 ஢   㧪 䠩.   㭪    ᥡ
    ⯠ 室   ஢.

      (祭 ।)  ॡ ᤥ ୮  祭
䠩.   ⮣         ப /cri-,  
頥   ஢  ୮ 祭.  ⢥⢥,
  c--.ini  䠩,       ᤥ  ப  cri-    ४⨢   
㥬 䠩 - #pragma option cri-.


ய 祢 ᫮ struct.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨          㦥  ࠭  ।  ⥣   ⮩
,  祢 ᫮ 'struct', ⠪      㣨 몠  C, 
 ,  㪠뢠 ࠧ  ⥣. ਬ:

//塞 ⥣ 
struct EXAMPL
{
  int a;
  long b;
  char c[6];
};

...

//   뫮 ࠭
struct EXAMPL s1;
//ᥩ     ⠪
EXAMPL s2;



    0.229  06.04.00


७  䠩   㫥 室 ணࠬ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          㥬  ணࠬ     ७
*.c--  *.cmm.   ন   ७  
䠩. : *.c; *.h--; *.hmm; *.h.    ᯮ짮  ।
 ஢  㣨 몮.  ᫨      ப 㪠 ⮫쪮
 䠩  ७,   㤥 ஡  䠩   ⨬
   ᫥⥫쭮  砥묨 ७ﬨ  ᫥饬  浪:
*.c--; *.cmm; *.c; *.h--; *.hmm; *.h.


⠡஢ .
~~~~~~~~~~~~~~~~~~~~~~~

      ⮣,  ⮡     롮    ⨯  ᨢ   
  ࠭  뫮    ⮬᪮  ⠡஢    
ᨬ      ⨯  ᨢ.     饭 
⠬  ᨢ   㪠뢠     浪       ᮫⭮
ᬥ饭.  ⮬᪮ ⠡஢  ⮫쪮  砥  ᫨
  ⢥    ᯮ  ६    -  ࠦ 
ॣ,       ᯮ짮   樨  ᢥ 
ᥬ୮ 樨 ( 16-⭮  ०  ॣ AX,CX,DX).  
ᯮ짮    ⢥    ᫮  ⠭    ॣ  
樨  ॣ஢    ன      ᥬ 
        ⠡    ⨯  ᨢ, ..  
 ᯮ ᮫⭠   ᨢ. ਬ:

word buffer[10];  //ᨢ  10 ⮢ ⨯ word
int i;

proc()
{
  ...
  buffer[i]=0;  //६ i 㪠뢠   ᨢ buffer
  buffer[3]=0;  //᫮ 3  ᮫ ᬥ饭  ᨢ, .. 
		//㤥 ᠭ   #buffer+3
  buffer[BX]=0; //ॣ BX ⠪ ᮤন ᮫⭮ ᬥ饭  ᨢ
  buffer[AX]=0; // ॣ AX 㦥 㤥 ᮤঠ 浪  
		//ᨢ
 ...
}

      ⢥    ⥬,    ࠭   ⢥ 
 뫮 㪠뢠  ⮫쪮 ᫮ 祭   ॣ,   
ᯮ짮     ᢥ  樨        ᥬ.  
ᮢ⨬   묨 ணࠬ     뫮 ࠭,   
᫥騥   ⨯ ᮢ,   ࠭   ন,  ⥯
ᯮ   ⮢ ᨢ.

      ⢮    ⥫  䥪.  C--  
ᨢ buffer[idx]  ᮫⭠  १ ࠦ ⨯  DSWORD[idx]
ࠧ  楤ன ,   १ 祣    ࠦ
⨯ DSWORD[idx] ⠫  ந室 ⠡஢,    ᪨
.

     ⮩ ᨨ    楤 ᥭ ४⨢  騥 ࠧ
 ࠦ,   १ 祣   ⠫ 뤠   ᪨
ࠢ .

    ⭮  뫠      ⪫  ⠡஢   
饭    ᨢ  (   ।⠢      
ਣ).      ᤥ   ⠢  ।  ᮬ  ᨬ   '*'.
ਬ:

  buffer[*i]=0;  // ६ i 㤥 ᮤঠ ᮫⭮ ᬥ饭 
                 //ᨢ,    .



    0.228  08.03.00

     㯯 ७ 楤 ᮢ.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᯮ짮 ७  楤-ᮢ      
       .     ⥬,   ⯠
室  ८ࠧ뢠   ।     頥  ࠬ   
஬筮, 㤮   ।, ﭨ.   ⮩ ᨨ   
㦥  饩  㯯  楤  -뢮    ,  
㯯  ⥬᪨   楤  ࠡ     ⢥묨   ᫠   
६묨 ⨯ float.

     ⪮ ᠭ  楤:

float atan(float x);    -  ⠭ ᫠ x.
float atan2(float x,y); -  ⠭ ⭮襭 x/y.
float cos(float x);     - 頥 ᨭ 㣫 x.
float exp(float x);     - 頥 ᯮ ᫠ x ( ᭮
                          ࠫ 䬮  ⥯ x).
float fabs(float x);    -  ᮫⭮ 祭 ᫠ x.
float log(float x);     -  ࠫ  ᫠ x.
float log10(float x);   -    ᫠ x.
float sin(float x);     - 頥 ᨭ 㣫 x.
float sqrt(float x);    -   ७  ᫠ x.
float tan(float x);     - 頥 ⠭ 㣫 x.

      㣫      楤       ࠤ.  ⢥
ࠬ஢  ⨬  楤ࠬ    ᯮ짮    楫  ᫠,  ⠪   
६ 楫  ⨯.   ⮬᪨ 㤥  ८ࠧ뢠  
⢥ ⨯.


    ﭨ  ப ⠭.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⮩  ᨨ        ०  ⨬樨  - ᫨ﭨ
   ப   ⠭.   ᫨      ०   ⨬樨   㤥
⨢஢,    㤥    ப ⠭   
㦥        䠩   㤥 ⠢ ୠ ப
⠭,    㤥  ᤥ  뫪   , 㦥 ࠭ ப
⠭.  ⨬樨   ⮫쪮   ப ⠭.
..  ᫨  ᨢ      㤥  樠஢  ப,  ⠪
ப   㤥 ⢮     樠樨, ⠪   ப 
    ࠡ ணࠬ. ਬ:

char var="test";  // ப  㤥 ⢮   ⨬樨.

void proc()
{
    WRITESTR("test");	// ப 㤥 ⢮  ⨬樨.
    AX="test";          //६ AX 㤥 ᢮  ப, 
                        //뫠 ⠢   ணࠬ  ।饩 ப.
}

        㦥  ୮ ப   㤥 뤠
।०.

    砥    ०  ⨬樨       ப /ost, 
४⨢ #pragma option ost,  ப  䠩 c--.ini - ost.  ⪫,
祭 ࠭,  ०  ४⨢ #pragma option -ost.


    ⠭ 䨪  TRUE   ப.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨  ᠫ  ணࠬ,    ஢  ࠧ,  
ᨬ    ﭨ     䨪஢  (ᯮ   ०
᫮ 樨),   祭  ਣ  . ⠭  
  ப  ࠧ  䨪         ࠧ
ਠ ணࠬ  । 室 ⥪ ணࠬ.

    䨪    ப 箬 /d=idname.



    0.227  09.02.00

    樠  ६   :
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ⢥,    ,      祣    .    ⠪
⭮.   ⢥   ᪠,           ࠭祭.  
樠஢  ᨢ      .  樠஢  
   祭,   .         樠樨    ६
짮 ᫥ 祭  䨣 ᪮  ࠬ FROM  
EXTRACT.


    ஫  ᫮  ⨯ । ⥪ 楤 ࠬ஢:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⭮,   C--  ஫   ᫮   ⨯ ।  楤
ࠬ஢      ணࠬ.  ⮬     
ᮢ ६ ⢨ ஫  ࠬࠬ (  ᮢ⨬
  ।騬  ﬨ)      稥.   १ ஬ᮢ 
ਠ  ⫨騩  ࠤ樮 ਭ⮣  몠 .

      ⫨稥  -    ,   ࠬ, ।塞  ।
楤,   ਭ ஬  ஫  .   
몠  ᪠  ᮢ饭 ⨯ 楤    .   --
 ⮣,  ⮡ 稫  ஫   ࠬࠬ ⥪  楤, 
 楤 易⥫쭮  .    类  楤  㤥
ᨣ   祭 ஫  ࠬࠬ ⮩ 楤.  ᫨
      㣫  ᪮  祣   㤥,    㤥
᫥  ࠬ  ।  ⮩  楤.   C++ ⠪ 
砥,  楤  ।  ࠬ.  C--  ⮣  
    楤    㣫  ᪮  易⥫쭮     void.
ਬ:

int proc ( void ) ;

⨢ ⠪   楤   㤥  ᫥   ⥬, ⮡
⮩ 楤  뫨 । ࠬ.

      楤  ࠬ஢  ᪠.  ⭮,  
--  ࠬ  楤    ⨯  뢠 १ .  ᬥ
⨯ ᯮ   ⮩.    ᬥ ⨯   ந
 ᫥ ⮩:

void ptoc ( int a, b, c; word d );
void proc ( int, int, int, word );
void proc ( int, int, int; word );

      ਬ   묨  ⨬묨.

      ஫    楤ࠬ    ६ ᫮ ࠬ஢  
   --   ᨭ⠪ -  稥     뢠 .
  㤥 룫拉  楤 printf:

void cdecl printf ( word, ... );


     横 LOOPNZ/loopnz:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     LOOPNZ/loopnz  ⫨   横 loop,  ⥬,   । 室  
横 ஢ ࠢ⢮  㬥 横. ᫨ 㬥 ࠢ ,  
⥫  横    ࠧ    믮  (  横 loop  ⮬ 砥 ⥫ 横
믮 ᨬ쭮 ᫮ ࠧ).



    0.226  10.01.00

   ࠭ 訡:
 - 뤠  ᮮ饭  訡  ࠦ ⨯:
    intvar = #ucnownlabel + number ;
 - ந室 ᡮ   ࠧ ࠦ ⨯: $ push 8, AX, var
 - ஢ ࠢ   ᯮ짮 ய⠭
   ࠦ __DATE__.

    뫠    饭  প  ᨬ  !  -  not    
ࠢ if/IF for/FOR  while/WHILE.  ᪨   ⮣ ᨬ  
  ࠢ  (ᨬ  !       ⮫쪮  )  ਢ   
஢ 䫠 ஢ન ᫮. ..  ࠦ:

  IF ( NOTCARRYFLAG )...     IF ( ! CARRYFLAG )...
  IF ( proc() == 0 )...     IF ( ! proc() ) ...

 ᨭ.

       ⨬஢  .



    0.224  28.10.99

    ᮫ ਠ   ⮩ ᨨ ⠫  , 祬  
ᮢ᪨ .   樨  32- ணࠬ   ᮫쭮  ᨨ
  ࠧ  室  䠩    ࠭稢.  ⥫쭮
㢥祭   㣨 ࠬ.


     樨 ணࠬ   Windows ⥯   ⠡,   㬥
ᮧ  (   㬥 ᮧ ⠡ , ᯮ  
⠡ ६饭)    ᥪ.     
  室  䠩.  ᫨    ,        稭   ⠪
 䠩  ࠨ,     ४⨢  #winmonoblock FALSE
 㤥  䠩  ⠭⭮  ⠡.


     ⠪  ४⨢ #pragma,     ᢮ ।   ᢮
४⨢.    ⮩  ᨨ   ४⨢  #pragma  ন  ᥣ   
४⨢ -  option. ४⨢  option         樨
 ப .   樨     ᯮ짮 
⮩ ४⨢; 㣨      ᠬ 砫 室  ⥪.
ਬ:

  #pragma option w32c

      ४⨢    ,      ᮧ   ᮫
32- 䠩  windows.


       ப   ࠢ  砫
楤    砫  ࠣ,       த⢨ 
ணࠬ.    ࠡ⠥  ⮫쪮   樨 32-⭮  .   
㬮砭   ⪫祭. 砥  ⠪:

  /ap=true


    __DATE__  __TIME__ ।⠢ ⥪⮢ ப    ६
樨 襣 䠩.


     ஢  BREAK,  break,  CONTINUE,  continue     প
᫮ ࠬ,  ।饣 ᪮쪮  横   ய, ०
祬 㤥 믮  . ਬ     横:

do{
   loop(CX){
      for(BX=0;BX<10;BX++){
	 break;	  //⠭ 
	 break 0; //break  ࠬ஬ - ய 0 横
	 break 1; //break  ࠬ஬ - ய 1 横
	 break 2; //break  ࠬ஬ - ய 2 横
      }
LABL0:
   }
LABL1:
}while (DX!=0);
LABL2:

     쥬 横 室 㯯 ࠧ ਠ⮢   'break'.
  ⮨   ⠭     'break'     믮   ண
ࠢ 㤥 ।  । 쥣 横 -    'LABL0'.
    'break  0'   믮 ண  㤥 ய饭 0
横  ࠢ 㤥 ।     'LABL0'.   ࠧ
  'break'    'break  0'    ᨭ.  쨬  
'break 1'   믮  ண 㤥  ய饭   横   ࠢ
㤥  ।    ।  ண  横    'LABL1'.   
᫥      'break  2'    믮  ண  
ய    横    ।  ࠢ   । 쥣  
'LABL2'. ⪨   ⮬ ਬ ⠢   㤮⢠ ᭥.    
  ⭮,  祭 ࠬ   ॢ ᫠  横
室  ।  ⥪騬.      筮 横  ࠬ 
ਭ ᨬ쭮  ⢥ 祭 - 0.


    饭  ᨭ⠪  䠩  c--.ini.       ⮬  䠩   ⨬
ᯮ짮  ஡     ਥ.   ਧ  砫   
 ᨬ  ';'.   ᫥騥 ᨬ  ᫥ ';'     ப
 ਥ.   ०,  樨   ᮮ⢥⢮
᢮ ப.


     ணࠬ  windows  ⠫ 㯭 ४⨢ #arg,   
ணࠬ    ࠧન    ப.  ⢥⢥  ⥯   
ᯮ짮  ஥ 楤 PARAMCOUNT()  PARAMSTR().


    0.223  05.10.99

                            .
			  ~~~~~~~~~~~~~~~~~~~~~

        ⥣     ᯮ짮 ⥣  㣨,
 ࠭ . ਬ  :

struct RGB
{
  byte Red;
  byte Green;
  byte Blue;
  byte Reserved;
};

struct BMPINFO
{
  struct BMPHEADER header; //ᠭ ⮩  ய饭
  struct RGB color[256];
}info;

    ।    㦭    ᮤন  ६  Red  ⮣
 color.   㤥  ⠪:

  AL=info.color[10].Red;

       ࠭祭  ᯮ짮     C--.
  ᯮ짮 ६    ࠧ   饭
  ࠬ. ᭨   ਬ:

struct ABC
{
  int a;
  int b;
  int c;
};

struct
{
  struct ABC first[4];  //4   ABC
  int d;
}second[4];

int i,j;

void proc()
{
  AX=second[i].first[j].a;  //⠪  맮 ᮮ饭  訡, ⠪
                            // ६ ᯮ짮   
  AX=second[2].first[j].a;  //  ᨭ⠪ ⨬.
  AX=second[i].first[3].a;
}


                  ᨭ⠪ ⭠ ᥫ.
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      C--      ࠤ樮  C-⨫  ⭠  ᥫ
    ᫠  ᠭ    ⨫  ᥬ.   ,   
,  ᮮ,    ⭠  ᫠   ᥬ   
ᨬ 'h'  'H'. ᫨  ᨬ ⭠筮 ᫠   '9',
 ।  易⥫쭮   ᠭ ᨬ '0'. ਬ:

  1234h
  0A000H


                   ᨭ⠪  ࠤ樮 C.
		 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮣, ⮡ 뫮  ७ 砥 䠩 몠 C  C--,  
ᨭ⠪ ४⨢  ⥯   ᨬ '?'   ᯮ짮
ᨬ '#'.


    0.222  19.09.99

                ᯮ 楤  ᮧ DLL  Windows.
	       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩  ᨨ      ணࠬ஢   windows
 ᯮ  楤 ,  ᮮ⢥⢥,    
䠩 ᪨ 砥 ⥪ - DLL.

    ᪨ 砥 ⥪      
ணࠬ  ᪮   樨.  ᠬ ᯮ짮  DLL 
⭥ 室  ᠬ  䠩 DLL  ᪠   
 㢥稢 ६ ᪠ ணࠬ.

     ⮣  ⮡ 楤  ⠫ 㯭   㣨  ணࠬ   
室  ।    楤  ய  祢  ᫮  -  _export.
ਬ:

  void _export testproc()
  {
    ....
  }

      ⮣  ⮡  ᮧ  DLL  㦭    䠩    ஬  
楤    祢묨  ᫮  _export.  楤  main  ⠪ 䠩 
㦭.  ᯮ⥫  楤,        ࠡ
᭮  ᯮ㥬  楤,      _export  易⥫쭮.
⥬    䠩  㦭  ⪮஢    箬  /dll.   १ 
 ⮢ ᪨ 砥 ⥪.

    ਬ砭:    樠樨  DLL  室    䠩   STARTUP.H--,
    ~~~~~~~~~~~ ⮬  ० 祬  ஢ DLL  易⥫쭮 
 䠩.   室  䠩  LIB.ZIP.      襫  㬥
뢠      樠樨    DLL,              祭
⨢-ᯥਬ⠫ ⥬. ᫨    ⠪ 㬥,  ,
, 諨     sheker@mail.ru.


                 ୠ⨢ ७ 室 䠩.
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩ ᨨ   ஬ ७  *.C--    *.CMM. 
ᤥ ⮬,   ।  ਭ ७ C--.


                     ⠪  API-楤.
		    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⮩   ᨨ  ⠪          ᨭ⠪   
API-楤.    ᫥    楤   易⥫쭮 ய뢠
뢠    뢠  ᪮       ⮩ (࠭  뫮
易⥫).    楤 ⨯ fastcall   ᪮   㪠뢠 
ॣ ᯮ㥬  । ࠬ஢.


    0.221  10.09.99

               ࠬ஢  ॣ஢ 楤.
	     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ࠬ஢  ॣ஢ 楤  ,   ⮣ ⮡  
맮  ॣ஢  楤      뫮    ᫮     ।
ࠬ஬ 楤.

        ࠬ  ॣ஢  楤  ᮮ⢥⢮   ண
।  ॣ.  ਬ,    ६  ⨯  int   word 
ࠬ  ।  १  ॣ  AX,  2-  -  BX,  3-  -  CX, 4- - DX,
5- -  DI, 6-  - SI.  ⮬ ᫨   뫮  室 । ⮫쪮 
ࠬ १ ॣ SI,   室 ।     . 
, ਬ, 룫廊 맮 楤 STRCPY:

void main ()
{
  STRCPY ( , , , , #dest, #sourc ) ;
}

     ॣ   ᯮ  ।  ࠬ஢ ந
ࠧ.  ⮫쪮      ⮬,  ॣ  ९ 
 ࠬ஬   楤.  ᫥ ⠪    㤥
ᠬ ᫥   ⥬,  १   ॣ ।  ࠬ 楤, 
ࠧ୮    ᫮  ।  ࠬ஢.      㤥  룫拉
  ᯮ짮 楤 STRCPY:

void STRCPY ( DI, SI ) ;	//  楤

void main ()
{
  STRCPY ( #dest, #sourc ) ;	//  맮 楤
}

         楤,  㪠 ᯮ  ॣ஢ 
 楤.  ⮣  ⠪ 楤  뢠  ⮫쪮 ᫥
 ।.  ਬ  楤 뢮饩  ࠭  ᪮쪮 
ᨬ:

void PUTNCHAR(AL,CX,BL,BH)
/* 1 ࠬ  AL -  ᨬ,  㤥 뢥
   2 ࠬ  CX - ᫮ 뢮 ᨬ
   3 ࠬ  BL - 梥⮢ ਡ
   4 ࠬ  BH -  ࠭
*/
{
  AH=9;
  $INT 0x10
}

        ॣ஢  楤    ⠪  㪠뢠  ⨯
६    楤  (/    ⢥).  
㬮砭 ⠥  ⨯.   ⨯ 㪠뢠   
⮫쪮  ᫨  ࠬ  ।  १  ॣ  AL/AX/EAX.  १   㣨
ॣ  ६  ᥣ  ।    .  ਬ 
ॣ஢ 楤  㪠 ⨯:

int fastcall Exampl( word CX, int AX, DX, float ESI ) ;
                                    
                                     4- ࠬ.  ⨯ float 
                                          ।. १ ॣ ESI.
                                  3- ࠬ.   㬮.
                                           ⨯ word  ।. १ DX.
                               2- ࠬ.  ⨯ int 
                                            । १ ॣ AX.
                      1- ࠬ.  ⨯ word 
                                             । १ ॣ CX.
               塞 楤.
      䨪, 㪠뢠騩, 
                                                . . ॣ஢.
  楤 頥 ६.
						⨯ int.

    ᫨    ᤥ    ॣ஢  楤,     㤥
ண ᫥  ⢮  㪠 ࠬ஢  맮  ⮩ 楤
 뤠  ᮮ饭   訡, ᫨   㤥     .   
஭    -   ஫   ⥬,     祣  뫨  
  譥    맮  楤.    㣮  ஭    뢠
易⥫ ࠬ,   ⥯ ਤ ய뢠.

    ᫨    ॣ     ॣ஢ 楤,  
  ᠬ 楤,   㤥 ,  ࠬ   
楤  ।    ᯮᮡ.    ࠧ,  ⨣  
ᮢ⨬  ।騬 ﬨ .


    0.220  23.08.99

                                  OBJ-䠩.
				 ~~~~~~~~~~~

      祭    (slave)  obj-㫥      
  ப  /sobj.    ⮣  ⨯  obj-㫥   ࠭祭 
ᯮ짮 ६.


                            ४⨢ ?dosstring.
			   ~~~~~~~~~~~~~~~~~~~~~~

    ४⨢   ?dosstring   ।      ᨬ   㤥  ନ஬
(ਧ ) ப.

    ᫨    ४⨢  ?dosstring  TRUE,     ᫥騥 ᨬ
ப  稢 ᨬ  - '$'.

    ᫨    ⠭    ४⨢    FALSE,    ⢥ ନ
ᨬ ப 㤥 ᯮ짮 .

     㬮砭  ४⨢ ⠭  FALSE.


              ४⨢  樨 ணࠬ  Windows.
	     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ᪮쪮  ४⨢,    ࠡ  ⮫쪮   樨
ணࠬ  Windows.

    ?imagebase value -   Image Base.  㬮砭    ࠢ
0x400000.

    ?fixuptable TRUE/FALSE  - ࠧ/  ᮧ FixUp  ⠡ (
㬮砭  饭).    ᭨,   ணࠬ    Windows   ४᭮
ࠡ  ᥪ樨 FixUp.

    - ?fastcallapi FALSE/TRUE - /ࠧ  ண  맮
API-楤  (  㬮砭  ࠧ襭).    ४  ⠪ 奬
맮 API-楤  -   CALL   ᢥ JMP,   ᠬ  ᯮ
ࠧ ᢥ  CALL.          ,  
᫨ 맮 API-楤   ,  祬 5  ணࠬ,    
⪨ .


                     ᮫쭠  .
		    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᮫쭠       ࠡ⠥  ⮫쪮     ।  Windows   
ᯮ ⥪ cw3220.dll    BC 5.0  .

    㭪樮쭮 ᪠  ᮫쭠    .


                          㬭 ᤢ.
			~~~~~~~~~~~~~~~~~~~~~~~~~~~

     㬭   ᫮   祭  ⨬樨   ᪮ 
  祭    ண    ⠥  ࠧ 㬭 ᫮ 
 ᤢ  ᫮.


                        ꥤ - union.
		      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ꥤ    ࠧ   ६  ࠭    ꥪ
祭 ࠧ筮 ⨯.

    ,     뤥     ꥤ,  ।   ࠧ஬
       ⮢   ꥤ.       ꥤ
ࠧ        ⮩           ⮣  .
祭  ⥪饣    ꥤ  ,    㣮  
ꥤ ᢠ 祭.

     C-- ॠ ⠪ 뢠  ꥤ. ..  ꥤ
 ᢠ  ,   饭   ⠬ ꥤ  ந室  
筮 ६. ਬ:

union
{
  dword regEAX;
  word  regAX;
  byte  regAL;
};  // ,  3 ६ ᯮ    ⮬  䨧᪮
    // 

void test()
{
	regEAX = 0x2C;
	BL = regAL;	// ॣ BL  祭 0x2C
}

    ꥤ      ६   ࠧ   ⨯,   ᨢ,  ப
६   . ꥤ     묨   묨, 
⠪  ᯮ      (    ꥤ  
   ᯮ짮   ).      ꥤ       
樠஢묨           樠஢묨.      ⮡      
樠஢  ꥤ  筮  ந樠஢    
 ꥤ. ᫨    ꥤ  樠஢,  
᫥騥  樠஢,    맮 ᮮ饭   
訡.


    0.219  06.07.99

                                  OBJ-䠩.
				 ~~~~~~~~~~~

     C--  ᮧ obj-䠩,      祭   ஥⠬
ᮧ    㣨  몠,  ..    (slave)  㫨.  祬  C--
㫥  ᭮ ஥ 뫨  㯭 ⮫쪮 楤    楤
  뫨 ᯮ짮  ६.

        C--    ᮧ  ᭮  (master),  
 ᫨  ᠬ⥫ 䠩.      ⫠
ணࠬ.  ਬ    ᠫ  ணࠬ,      ࠡ⠥, 
ࠡ⠥   ⠪   . ⪠  ᯮ짮   ⫠ ⫠稪 TD.EXE
᫮ ⥬,  祭 殮 ਥ஢  設 .   
    ⪮஢    䠩    箬 /obj,  祭 obj-䠩
᫨  tlink.exe    箬  /v.    १      exe-䠩 
祭    쭮  ⫠筮 ଠ樥.  ⨢   䠩 
⫠稪   㢨   設    楤   ६,  
⥫쭮  ⫠.

      obj-䠩       ᯮ짮  譨   (extern)
楤,  ६    .    ⮣ 筮   
extern.  祬  祢  ᫮  extern      ᥣ  . ਬ
 譨 ꥪ⮢:

extern void cdecl _printf(); //  譥 楤 _printf 饩
                             // ⨯ cdecl   ⨯  void
extern int buts,cubs;        //   譨 ६ ⨯ int
extern struct IPXL ipxl;     //  譥  ipxl 饩  ⥣
			     // IPXL,  祬 ⥣  ⮩    
			     // ᠭ ࠭.

          譨  ꥪ   
obj-    C--  㫨  ᠭ    㣨  몠     
ணࠬ    C--  楤    ⥪   㣨 몠.  
譨 ꥪ⮢ 祭   ࠢ쭮 㪠  ⨯ 楤    . ᫨
 㤥 ᯮ짮 譨 楤  ᠭ      ᥣ, 
㦭 㤥 㪠뢠  䨪 cdecl,     楤   ६
 䨪 '_'.

     ᭮ (master) obj-䠩 ᠭ  C--  㣨  obj-㫥
㯭  楤,  ६   .

      (slave) obj-㫥   ࠪ᪨   .
  ०  ᯮ짮  㫥  C-- ⮫쪮 楤.  祬
 楤   ᯮ짮   ६,   ⥯  
      ᯮ짮  譨  ६    맮  㣨
楤, ⠪   譨.  ⮡    obj-   室 
 ४⨢ ?jumptomain NONE    樨   /obj  
 /j0.

    ᫨ 祭 obj-䠩 ⫨   箬 /s     map-䠩
 ஡ ଠ樥. .. ⯠ 室  樨 C--  map-䠩,
  䠪᪨    ᯮ.    ⮩ ᨨ ࠭ প 祩
 ப /-map  /+map.

    --  ᮧ obj-䠩    tiny  small.   㬮砭
ᮧ 㫨     tiny. ⮡   obj-䠩     
small      砬 /obj  /exe. ᪨  
  32-  obj-㫨    (     ஢, ⮬
    -  ࠡ⪨).     obj-䠩    windows   
।ᬮ७.


                   䨪 ⨯ 맮 楤.
		 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     諮 ᨨ  䨪 ⨯ 맮 楤 cdecl.   ⮩
ᨨ         - pascal,  stdcall   fastcall.  ⪨
ࠪ⨪  ⨯ 맮 楤:

cdecl     ⨯  맮  楤      㬮砭   몠 . 
~~~~~~  ࠪਧ  ⥬,    ࠬ  楤  ।  浪
⭮  . ⪠ ⥪  ࠬ஢ ந ᫥  襭
ࠡ 楤.   ᯮᮡ  맮 楤  祭 㤮   楤  
६ ᫮ ࠬ஢.

pascal   ⨯ 맮 ।,  ࠬ ।  ⮬  浪,
~~~~~~~  ஬  ᠭ   ணࠬ. ᢮ ⥪   ࠬ஢
ந  ᠬ  뢠  楤.     ⨯  맮     
 祬 cdecl.

stdcall   ⨯ 맮   ਤ  . ࠬ  ।
~~~~~~~~  楤    浪  ⭮,  ⮬    ஬    ᠭ  
ணࠬ. ᢮  ⥪   ࠬ஢ ந   ᠬ 뢠
楤.

fastcall     ⨯  맮  楤  ।    । ࠬ஢
~~~~~~~~~  楤   ந  १   ॣ,  ⥬   ᠬ   ⯠
室  ᢮  ⥪    ࠬ஢.    ⮣  ⨯   맮
楤  ࠭祭   । ࠬ஢.    
  ࠬ,      C--  .    --  ࠬ ।  ᫥饬
浪: 1- - AX/EAX, 2- - BX/EBX, 3  - CX/ECX, 4 - DX/EDX, 5 - DI/EDI,  6 -
SI/ESI.  ࠬ  ⨯  char    byte   ।  ⢥ 
 4  ⮫쪮   4 ॣ: 1 - AL, 2 - BL, 3 - CL, 4 - DL.

      C--    㬮砭,  ᫨    楤 ᠭ 訬 㪢, 
⠥,      楤    ⨯  맮  fastcall. ᫨   
楤      쪠  㪢,    㬮砭 ⠥, 
 楤  ⨯  맮 pascal,  ᪫祭  ணࠬ 㥬
 箬 /w32   /w32c.     㬮砭 ਬ ⨯ 맮  楤
stdcall. ᫨       ⨯ 맮 楤    㬮砭  
 㣮,     楤   易⥫쭮    㪠  ⨯
 맮.


                        ࠢ   .
		       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       C--      ४⨢   ?align,        ⭮
ࠢ     . ,  ᫨  ⮩  ४⨢ 
᫮,    ࠢ  㤥  ந        ⮬ .
ਬ ४⨢ ?align 4  ᥣ    ⭮ 4.  
ࠢ  ⠢  祭  ।  ४⨢
?aligner,  㬮砭   祭 ࠢ  . ४⨢ ?align  ந
ࠢ  ⮫쪮    ᥣ  .        ,  
ᥣ        ᮢ    ४⨢    ਬ     
ࠢ 砫 楤.

      ⮩  ᨨ      ४⨢ - ?aligncode [value], 
  ࠢ    ᥣ         祭 value, 
㬮砭      .  祭        ⮩  ४⨢
 ᫮ 0x90 -   樨 NOP. 祭     ⮩
४⨢    .  ..    ४⨢    ਬ   
ᯮ塞  .  ਬ,  ᫨           486
,  ४   ࠢ 砫 楤   横 
  16.  Pentium     ⨢稢 ଠ.   
筨 ᠭ,     Pentium ࠢ     ,    㣨,
ᮮ頥    室  ࠢ       32. ᫨ -
 筨  ଠ,  졠 ᮮ  ⮬ .


    0.218  14.06.99


                          ४⨢ ?startuptomain
			 ~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⮩  ४⨢      砫  䠩    jmp    砫
楤 main().  । 砫  樨 ⮩  楤  筥
 startup      ⥬  㤥 த   楤
main().  ᠬ startup      砫 䠩,    ந室
筮,      ⥫  楤  main().    㤥      樨
१ ணࠬ (TSR).

    ४⨢ ?startuptomain ࠡ⠥ ⮫쪮  樨 com-䠩.


                            ४⨢ ?undef
			   ~~~~~~~~~~~~~~~~~~

      ४⨢  㭨⮦  ⠭    ४⨢ ?define. 
  ਬ         樨 祭 -
⠭.


                      Startup-  䠩 startup.h--
		     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ୮        뫨  ᮣ   ⥬ startup , 
ਫ    ᠫ  㪨   .    뫮 祭 ᫮,
⠪     ਫ     뫮      .
 startup   뭥ᥭ  ⤥  䠩 - startup.h--.   䠩 
室   ४ਨ  ⠫묨 묨 䠩.   
४⨢ ?include   ᢮ ணࠬ   .  ᠬ  㧨  
㤮   .

             startup    ᢮ . 
 ன 室   ⥫쭮.

       ࠢ   樥   startup-   ।⢮   ᮧ
ࠧ  ⠭.    砭   樨  startup-     ⠭
㤠 ४⨢  ?undef, ⠪        㦭.  
⮪    ६    ,  ⠪         ᯮ짮
஬       쭥襩   樨.  ⮡   뤥   
(⠭, ⪨, ६),    ,    ᨭ⠪ 
 ᨬ  ᨬ  ન.


                   䨪 ७ 権 DB/DW/DD
		  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ᥬ  樨 DB,  DW, DD    ᯮ짮
䨪 ७ dup. ਬ ⮣ 䨪  ᫥騩 ᨭ⠪:

  $DW NUMREP dup VALTOREP

NUMREP - ᫮ ஢ 樨 DW.
VALTOREP - 稭,  㤥 ७ NUMREP ࠧ.

     ⫨稥     ⮣ 䨪   ᥬ  塞 稭
  ᪮ .


                        맮 楤  C-⨫.
		       ~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮣ ⮡  뫮  맮 楤  C-⨫  0.212  ᨨ
  䨪  楤 c_ ,  ஬  ।,  
 楤  ਭ   楤  C-⨫.     ⠪
ᯮᮡ  ।  ⨯  맮  楤      ⨬.
,          堭   楤, ⠫
 ਡ ᨭ⠪  ⠭⭮ 譮.

      ⮩  ᨨ   䨪  c_  ⬥.     㭪  ⥯   믮
䨪 cdecl.  ᫨   ᯮ 楤   -⨫  ࠭ 祬 
।,    楤  易⥫쭮   ࠭ 祬   㤥
ᯮ짮. ᫨   楤 㤥 ।  ࠭  ਬ,   
 易⥫쭮.  楤  ᫥騩 ᨭ⠪:

rettype modif procname();

      易⥫ ⨯    楤.  㬮砭   
16- ணࠬ ࠢ word,   32- dword. ⥬    ⠪
易⥫  䨪.    㬮砭    ⥪  楤  --(
᪫祭  ०  樨  ணࠬ     Windows,       㬮砭
  ⨫  맮  楤  stdcall)    ⨫  pascal.  C--
ন  ᥣ    䨪  -  cdecl,    ⨫
맮  楤      㬮砭    -⨫.     楤 
᪮,    ਧ ⮣     楤,   
६. 蠥  ᨬ 窠  ⮩.

          楤      C--   ய뢠   ࠬ  楤
易⥫쭮  (      ஫  ᫮    ⨯ ।
ࠬ஢),    ᫨      ⠢     㤥 訡,  
 ந.


    0.217  24.05.99

                                32- .
			       ~~~~~~~~~~~~~~~

      ⮩  ᨨ        ᮧ  32-
ணࠬ    DOS    Windows.  32-      ᢮  ᮡ   
ॡ.      ࠧ᭥               ᮢ⮢  
ᮮ⢥  .  -    ᮡ⥩  ࠪ᪨  
楤       ⥪,     楤   室騥      䠩
᪨ ⥪ ᮫⭮  (⠪   ⪮஢   16-⭮
०),      ࠡ    32-⭮  ०.  ⭮,   ।⮨
   ᮧ  32- ⥪.    Windows   
   ஬  API-楤.


    32-   DOS.
    ~~~~~~~~~~~~~~~~~~~~~~~

     ⮣ ⮡ ⪮஢ 32- ணࠬ  DOS   
  箬  ப  /d32.  ࠡ 32-⭮ ணࠬ  
DOS   ⥫ DOS.  C--  ࠭ WDOSX.    
⮣     ⥫     DOS                     ୥      
http://www.geocities.com/SiliconValley/Park/4493.        ⮣   
㦥 㤥  䠩 wdosx.dx. ⮡  ,  ᪠  䠩  
 ,     䠩 c--.ini  ய ப  stub=path_name_to_stub_file.
ਬ:

    stub=c:\c--\wdosx.dx

    ᫨        c--.ini    ப,      ᣥ
32- exe-䠩,   ⥫  DOS. ⮡  ⮬ 䠩  ਫ
⥫ DOS       WDOSX 䠩 stubit.exe    ,
㪠      ⢥  ࠬ    ⪮஢ 䠩. ᫨  
  䠩  c--.ini ப   ६ stub,    ᮧ 
㦥 ⮢  㯮ॡ 䠩. ᫨   ப   箬  /d32
㪠      /ns,    ப    ६  stub  䠩 c--.ini 㤥
㫨஢,    䠩  ⥫ DOS.

      32-⭮   DOS-䠩     ᯮ짮  ४⨢   
?parsecommandline  TRUE/FALSE      ७ ਠ ?argc TRUE/FALSE.
   প ४⨢  ?atexit TRUE/FALSE.  ४⨢ ?initallvar
஬  ⠭     ﭨ  TRUE.         砥   
⠭  ४⨢  FALSE.   ணࠬ  㤥 ࠡ.


    32-   Windows.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⮣  ⮡  ⪮஢  ணࠬ,  ᠭ  Windows 
         箬      ப   /w32.  ⥬  㦭
⪮஢ 䠩  ᮢ (᫨   室   ).   ⮬  
 䠩  ᮢ   ⠥ ᫠        ᮮ⢥饩
.  樨 ᮢ   ᯮ짮  ᮢ   BC.
 ⮩ 樨   ᫥騥 䠩   BC v5.0:

  BRC32.EXE
  BRCC32.EXE
  TLINK32.EXE
  RW32CORE.DLL
  RLINK32.DLL

    ᫨      ᢮  ணࠬ  ᯮ  맮  API-楤,    
楤  ।⥫쭮 易⥫쭮 .  楤  
᫥ :

extern WINAPI "DLL_name"
{
    returncode procname1
    returncode procname2
    procname3
}

  :
       DLL_name -   ७ dll-⥪  ன 室 
                  楤.
     returncode - ⨯   api-楤.  㬮砭  ࠢ dword.

     ਭ樯   㦭 ᮧ  䠩,  ஬  ᠭ   
ᯮ㥬  API-楤.    㢫  ⨬    ⮨,  ⠪  
  API-楤  ॡ  ண  ⢠  ,   ⨬ 
  ᫥ ६ ⠫  ᫮.

    맮  API-楤   祭     ᯮ     ⢥  ࠬ஢
⠭.  ⠭ ᠭ   䠩 winuser.h wingdi.h  .   
BC 5.0.   㤥   ⠭  ९   C--.       ⮨
ᨫ쭮 㢫 ⨬.

    ணࠬ, ᠭ  Windows,     ᮡ  -
  ࠬ    ⥪  楤  ।    ⭮  浪  (⠪
뢠  -⨫),    ⪠  ⥪    ࠬ஢  ந室  ᠬ
楤. 砥  ᢮ࠧ ਤ  ci   pascal ⨫.     
㬪 - ⠪ ॡ  맮 api-楤.

     --   ࠭祭  ᠭ ணࠬ 
Windows. :
1.       ॢ 64 .
2. C--   㬥 ᯮ஢ 楤.
3.   ॠ প startup-.


    祭.
    ~~~~~~~~~~~~

    ୮,      ᭥      ࠧ  ᥬ ⨬
ਬ,     ⮩ ᨥ .

        ⠪     ४⨢  ?code32  TRUE/FALSE, 
ࠧ蠥/頥  32-⭮ .   ⮩ ४⨢  
   32- com-䠩.     ⮬   㤥 ᯮ짮  
䠩      .  ᫨       -   ਬ 32-⭮
com-䠩,    ᮮ   .  짮  ⮩   ४⨢     ᮡ
    ᮢ.   ⥫ ᯥ६஢.



    0.216  12.04.99


                     ⥫ ROM-BIOS.
		  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ⥫  ROM-BIOS  (  ஫஢,  ⥢  ...)  
।    ॡ. C-- ⥯      
ᮧ    ROM-BIOS.  ᫨         箬
 ப /ROM,    ᮧ ᨣ ()  ROM-BIOS,
  ⠢襥  ᢮       㪠   ࠧ     
, ⠥  ᪮४ ஫ 㬬 .
     ⮣ ० 樨  ᪮쪮 ᯥ᪨ ४⨢:
  1.  ?sizerom   value  -    ४⨢  ᮮ頥    ࠧ  
. ᫨  ४⨢   㪠,   ᠬ 롥  
室騩  ࠧ      鸞:  1024,  2048,  4096, 8192, 16384, 32762 
65536.            ࠧ  
⮬   ।塞 ४⨢  ?aligner.   㬮砭   ࠢ
,      ⨯  27          ᤥ  ࠢ 0xFF.
᫥      㤥  ᪮४஢  ஬ ⠪ ࠧ, ⮡
஫쭠 㬬 ࠢ﫠 .
  2.  ?movedatarom  TRUE/FALSE  -    ४⨢ ᮮ頥   
室 ஢      .  㬮砭   ⠭ 
FALSE. ᫨   ४⨢  । TRUE,     ⠢  
樠樨  ६騩     .  ⮬ ॣ DS  㤥
⠭  ᥣ  . ⥪ ⠪  㤥 ⠭    ᥣ.
 ࠧ 楤 main   ࠢ  ॣࠬ  AX = ES = DS =
SS = ᥣ      ७ᥭ묨      묨.  ᫨   ४⨢
⠭    FALSE,  ॣ  DS    ࠢ  㤥  ⠭  
ᥣ  ,  ⠪          㤥  ᯮ짮     ᥣ  
樠஢    ६.  樠஢   ६
⠭      饭     ந १ ॣ  CS.
  ⠭  ஭ (⠪   ⠭  )  ⥪.
  3. ?dataseg value - ⮩ ४⨢  ᮮ頥 ᥣ  
,    ᯮ짮  訬 .  㬮砭   ࠢ 0x70.
        㧭       ⠢   襣  
ᬥ饭 4. ਬ: DS = CSWORD[4];
     砭:
  1.  뢠,    樠樨 ROM-BIOS    㦥 
ᮮ⢥⢥  楤 ᯮ騥 맮  ࠡ  .
  2.    ࠡ  ணࠬ 楤ࠬ  ABORT()   EXIT()  
.   ⥫ ROM-BIOS     ⮫쪮 室  
楤 main().
  3. ᫨ ४⨢  ?movedatarom ⠭   FALSE,    ⥫
  ࠡ    樠஢묨  ६묨.     ⮬ ० 㯭
⮫쪮  ⥭,   १ ॣ CS.


               室 䠩 *.EXE    tiny.
	      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᪨  䠩 *.exe  tiny 祬  ⫨砥    *.com.
  魮        com-䠩    ஬  32- 
exe-䠩.  ⢥  ⫨稥          䠩  
४⨢  ?resize  TRUE.    com-䠩    ⮩  ४⨢    ணࠬ
  ᮮ⢥騩  ,  騩  ࠧ  㯭  .   
exe-䠩      楫  㤥  ᪮४஢   exe-䠩. ⮡
 exe-䠩    tiny,     箬  
 ப /TEXE.


                                 ⥫.
				~~~~~~~~~~~~

     ⮩ ᨨ ᤥ ⪠  C-- ࠡ  㪠⥫ﬨ.   ࠧ
,   ᥣ  ⪠,  ⮬ 㪠⥫ ॠ    
  ꥬ  ,   ,         㤥   ஢
ࠢ .  ᫨    ,      㤠  
  ࠡ    㪠⥫ﬨ.            
権      ࠢ    ।  ਠ⮢
,    ᣥ஢  ࠧ ਠ ᨭ⠪.
    ਬ ਬ 㪠⥫  C--:

char *string[4]={"string1", "string2", "string3", 0}; //ᨢ 㪠⥫
char *str="string4";

main()
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);
	}
}


                 ᫥  ॣ EAX/AX/AL  .
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ᫥  ॣ ந   묨
稭. ਬ:
  int a,b,c;
  AX = a * b / c ;
 ⮬  ஢  樨 div  mul, ⠪ 
ॣ  묨 ६묨.   ᫨  ⠪:
  AX = int a * b / c ;
 ⥯  ᣥ 樨 idiv  imul.
      ,   ॣ AL  ᯮ짮 ⮫쪮
䨪 char,  AX ᮮ⢥⢥ ⮫쪮 int,   EAX - long. 
⠫ ॣ஢   .


                  ࠢ 訡 । ᨩ.
		 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    1. ४⨢ ?setdinproc  ⠢﫠 ᪨ 楤  ⥪
᪨ 楤.
    2.    樨    ᢠ  ᮤন  ॣ஢ AL/AX/EAX 
祩    ।  饩  ⪮ ஢  
⮩ 祩.
    3.     ᫥  ࠦ     饩   窮,  ᫨   
室 ८ࠧ ᫮ ଠ  float  楫 ᫮,   
ᥣ   ⮬᪨   ⠢         맮   楤    樨
float2numer().
    4.    ᫥  祭  ६  ⨯  byte  char, ᫨ ।
権 ᫥ 뫮 ,    ਫ    -
।  樥        㫥 ॣ AH ( ७
 AL  AH  ⨯ char).



    0.215  14.03.99


                  ᫮ ࠦ MINUSFLAG  PLUSFLAG.
		 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ஢ન        ॣ  䫠      
ᯥ樠 ᫮  ࠦ -  MINUSFLAG   PLUSFLAG. ࠦ  MINUSFALG
ਭ  祭  <⨭>  ᫨    SF  (䫠  )  ॣ  䫠
⠭  1.  ࠦ PLUSFLAG ਭ  祭 <⨭> ᫨   SF
(䫠 ) ॣ 䫠 ⠭  0. ਬ:

1).
    i = a + b ;
    IF ( MINUSFLAG ) i = 0 ; //᫨ i ⥫쭮 - ⠭   0

2).
    do {
      i-=a;
    } while ( PLUSFLAG ) ; //横  ६ i ⥫쭠


                            楤.
			  ~~~~~~~~~~~~~~~~~~~~~

     楤    ⮣, ⮡  ᮮ    ⨯
  楤. ᫨ 楤   ⨯  void  word   
   ࠢ  ᢠ,  ⠪ 楤   
.


                 ⨯ ࠦ  ᢠ.
	       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⭮,    C--    ᫥ 祭 ६  ६
騥       ᫥  (..  室騥   ࠢ     
ࠢ⢠)  ८ࠧ    ⨯  塞  ६.  ᫨ ᫥
 ࠢ⢠  ⨯ ⫨   ⨯ 塞 ६,   
६ 騥   ᫥,  ८ࠧ뢠   ⮬
 ⨯,     १ 㤥 ८ࠧ  ⨯  塞
६. ਬ:

int i, a;
long b;
char c;

  i = a * b + c ;

    祭  ६  a,  b,    c   ⮬ ਬ । ᫥ 
८ࠧ  ⨯ int (⨯  ६ i).  ᫨    ࠦ
 ⠪:

  i = long a * b + c ;

      ६  a,  b,    c    ⮬  ਬ  ।  ᫥   
८ࠧ   ⨯ long,     १ 㤥  ८ࠧ   ⨯
६ i - int.


                              稥 .
			     ~~~~~~~~~~~~~~~~~~

        ࠭  প  祩    ப /MACRO /PROC
/REGPROC, ⠪    ⯠ 室.

            樨  ந室 ९ ⥪, 
裡   ⨬   ⮩ ᨨ   ࠧ  ⥪ 㢥祭     ࠧ.
  ࠢ 8192 .

     ⥪  ᪮쪮 楤:

long filelength(word handle) - 頥   䠩 ( ⫨稥   楤
	      FILELENGTH     FILELENGTH32     㪠⥫  䠩    
	      ).

long  lseek(word  handle;  long  offset;  byte mode) - ⠭ 㪠⥫
	      䠩      .    ⫨稥   楤
	      FSEEK    LSEEK      㪠⥫  ।   
	      ६ ⨯ long (⯠ 室 ࠧ  ᬥ饭
	        ⠢騥).

long tell(word handle) - 頥 ⥪饥  㪠⥫ 䠩.

long ATOL(,strofs) - ८ࠧ ப  ᫮ ⨯ long.

void  BYTE2STRBIT(val,strbuf)  -  ८ࠧ      ப  ⮢ (㫥 
	      ).  ६  strbuf    ᮤঠ   
	      ப ࠧ஬   9 .



    0.214  21.02.99


                      ⥪ ᪨ 楤.
		     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⮩  ᨨ      প ⥪ ᪨
楤.    ࠡ ⮫쪮   ⥪  饩
  MAINLIB    饩  ७  LDP  (Library  Dynamic Procedures).
⥪  室   ४ਨ  ஬.

      -  २⢠   ⥪,  ࠢ 
ࠤ樮 ᯮᮡ ࠡ?
      ⯠ 室  ᫥  ( 
 ,     ࠧࠦ).
     , ⥮᪨,  㬥 ६ 樨 ணࠬ (
 ஢,   ᭮ ஢).
       , 㬥蠥 㧪   ॡ 
 .

     ⥪  ७ᥭ    ७  楤. ⠢  
    ࠡ    ⠬,  楤    ࠡ    ப
PARAMCOUNT, PARAMSTR  楤  襭 ࠡ ABORT, EXIT.   
  প  楤  ATEXIT.    ⥪      
᪨  楤    䠩  *.h--.    ᥣ譨    ⥪
ᮤন 431 楤.  ࠡ  ⥪ ᠭ ⨫  CMMLIB.EXE.
⨫      ⨭    楤,       㤠
楤.
    楤       㥬   䠩  ᫥   砭  
樨,  ⮬    ६  樨          ⨯
    楤  (        C--    ॠ   
楤).    ਢ   १⠬.
    ਬ:
     ⥪  楤 GETVIDEOMODE   ⨯   byte.
      ப IF(GETVIDEOMODE()  == 0x54)...  ᣥ  ࠢ
    ॣ  AX  (  㬮砭    ⠥,  楤  
     ⨯  word).   ⠪ 砥      㪠  ⨯ 
    楤 - IF(byte GETVIDEOMODE()  == 0x54)...    ᯮ짮 ⮩
    楤 ᤥ  -⠭ 窮 @byte  GETVIDEOMODE();.
    ,  ᫨    ॣ஢  楤,      ᯮ짮  
    :  IF(@GETVIDEOMODE  ==  0x54)...      㤥 㦤
      ⥪  楤  ⥬ ᠬ 㧭   .


                         প 楤 ATEXIT.
			~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    楤  ATEXIT   ॣ  楤     ன    ।
楤 ATEXIT   ⢥  ࠬ,   楤 襭  ணࠬ.
 楤 㤥  맢    襭 ணࠬ 楤ࠬ  ABORT
 EXIT  樥 RET  main.
    ᥣ    ॣ஢    16  楤.  楤  뢠 
浪 ⭮ 浪  ॣ樨.
    প 楤 ATEXIT 砥 ४⨢  ?atexit.



    0.213  1.02.99


                   '$'  ᥬ .
		 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        ᥬ  ,  ⠪        ᥬ, 
ᯮ짮 ᨬ '$'.  樨   ᨬ 㤥    ⥪饥
祭  ॣ  IP.       ᯮ짮    ᫥   ᫮
祭,    ⥪饣  ,   ᨬ '$'   ᯮ짮 
 ⭮     . ਬ:

  $JMP SHORT $+2   //। ࠢ  ᫥ 
  $DW $		   //  ᫮ ⥪騩 


                        ࠡ  ⠬.
		      ~~~~~~~~~~~~~~~~~~~~~~~~~~~

          প  ᮢ: inp(), inpotr(), inportb(),
inportd(),  outp(),  outport(),  outportb(),  outportd().       
ୠ⨢  ⥪  PORT.H--             
 .
⠪:
    byte inp(potr)      -     
    byte inportb(port)  -     
    word inport(port)   -  ᫮  
    dword inportd(port) -   ᫮  
	   port -  ᫮   ᮬ    易⥫ ࠬ஬.
		  ᫨  稭  ,  㤥 ᣥ஢  
		  in  al,dx.  ᫨  稭  port  㤥  256,  㤥
		  ᣥ஢  in al,port.
        outp(byte val,word port)      -    
    outportb(byte val,word port)  -    
    outport(word val,word port)   -  ᫮  
    outportd(dword val,word port) -   ᫮  
	   val - 뢠 祭
	   port -  ᫮   ᮬ    易⥫ ࠬ஬.
		  ᫨  稭  ,  㤥 ᣥ஢  
		  out dx,al.  ᫨ 稭  port 㤥   256,   㤥
		  ᣥ஢  out port,al.


                ୠ⨢ ࠡ稪  ப.
	       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ୠ⨢  ⮣  ࠡ稪    ப 砥  ⮬,
  맮 PARAMSTR(0);     ப  ன 㪠   
  饭   ணࠬ.  ୠ⨢   ࠡ稪      ப
砥 ४⨢ ?argc  TRUE     ப   箬
/+argc  窮 +argc  䠩 C--.INI.


               ४⨢ ࠢ騥 ࠧ饭 ६.
	      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩  ᨨ    ४⨢   ࠢ ᯮ
樠஢  ६.      樠஢ ६
ᯮ  । 䠩.
      ४⨢  ?initallvar  TRUE  砥  ०   ஬ ᥬ
樠஢ ६ 㤥 ᢮  㫥 祭    
ᯮ  ⮬    뫨  . ࠬ FALSE  ⮩ ४⨢
⪫砥  ०.
    ४⨢  ?usestartup  ࠧ蠥    ᯮ짮  祩  
砫쭮  樠樨   ணࠬ     ᫥饣  ࠧ饭      
樠஢ ६.
    ४⨢  ?startusevar     㪠   砫       ண
  㤥  ।      樠஢ ६.
ਬ  稢  ४⨢  ?startusevar  0x53   㤥 ᯮ
樠஢ ६ 稭   0x53.


                   ࠡ ४⨢ ?ifdef/ifndef.
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ४⨢  ?ifdef  ࠡ뢠    稥 ⠭ ᨬ 
祭  稭,  ⠭ ?ifndef ࠡ뢠  ⢨  ⠭
 㥬  䠩.   ?indef ࠡ뢠     ⠭ 
稭  TRUE,     ?ifndef  ࠡ뢠       ⢨  ⠭   
㥬 䠩, ⠪   ⠭  祭 FALSE.
     ४⨢  ?ifdef/?ifndef १ࢨ஢  ⠭ codesize   speed,
  ਭ   祭  TRUE     FALSE     ᨬ     ०
⨬樨.  㤥   ᮧ   ⥪.





    0.212  7.12.98


                                 .
				~~~~~~~~~~~

        ꥤ      ꥪ ᮢ㯭 祭,
   ࠧ ⨯.

⠪:
~~~~~~~~~~
struct [<⥣>] { <ᯨ᮪--⮢> } <⥫>[,<⥫>...];
struct <⥣> <⥫> [,<⥫>];
        稭    祢  ᫮  struct   
 .
     ࢮ ଥ ⨯    ⮢  ᯥ   ᯨ᪥
   ⮢.   易⥫         砥   <⥣>  -  
䨪,      ⨯, ।   ᯨ᪮
 ⮢. <⥫>  ᯥ  ६  ୮
⨯,  ᨢ   ⨯.
      ᨭ⠪᪠  ଠ    ᯮ  ⥣    
뫪   ⨯, । -  㣮  ணࠬ.
    ᮪    ⮢  ।⠢  ᮡ  ᫥⥫쭮  
     ६.  ६,    ⮬
ᯨ᪥, 뢠 ⮬ .
         ᫥⥫쭮  ⮬ 浪,  
஬     .  ࠢ   ⮢        
ந.      ࠢ       ᫨ 祭
ࠢ.
    ਬ  :

struct test
{
  int a;
  char b[8];
  long c;
} rr, ff[4];

     ⮬ ਬ      rr   ᨢ  4   
 ff.  ᥬ   ६ ᢮   (⥣)  test.  ⥣
 ᯮ짮   㣨 . ਬ:

struct test dd;

         dd   ⮢ ᠭ  
⥣ test.

樠   .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ᫥            ਭ  ந
祭.       ⮣     뫮        ந樠஢.
樠஢           ⮫쪮 . C--
ন ᪮쪮 ᯮᮡ 樠樨    :

    1.  祭:
       struct test dd=2;
 ⮬ ਬ ᥬ ⠬  dd ᢠ 祭 2.

    2. ᨢ 祭:
       struct test dd={1,2,,6};
  ⮬  ਬ  ࢮ      dd  ᢠ  祭 1,
஬ - 2,  ⢥⮬ - 6.  ய饭  樠஢  祭
㤥 ᢮ 0 祭.

    3.  FROM:
       struct test dd=FROM "file.dat";
 ⮬  ਬ      ᯮ   dd   樨 㤥
㦥 ᮤন  䠩 <file.dat>.  ᫨ ࠧ  䠩   祬 ࠧ
,  譨    㦥    ணࠬ,     
ॡ. ᫨ ࠧ  䠩  祬  ࠧ ,   騥
    ﬨ.

    4.  EXTRACT:
       struct test dd=EXTRACT "file.dat", 24, 10;
 ⮬  ਬ      ᯮ   dd   樨 㤥
㦥  ࠣ    䠩  <file.dat>    10      ᬥ饭  24.
騥    ﬨ.

樠   믮 ணࠬ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      믮  ணࠬ,  ஬  ᢮    
祭,   ந樠஢    ᢮   ᫠  
६. ਬ:

void proc()
struct test aa[5],rr;
int i;
{
  aa[0]=0x12345678;
  aa[i]=int 0x12345678;
  aa=long 0x12345678;
  rr=i;

 ࢮ  ਬ    ࢮ  ன ᨢ   5 
㤥  ⮬ 0x78 ( 㬮砭).
  ஬  ਬ      (i+1)-  ன  ᨢ    5
 㤥  ᫮ 0x5678.
  쥬  ਬ      ᥬ  ᨢ    5   㤥
  ᫮ 0x12345678.
  ⢥⮬  ਬ       ன   rr  㤥   
ᮤন ६ i.
     ⠪ ஢ ᮤন    . ਬ:

  rr=aa[2];

㤥 ᪮஢ ᮤন 쥩  ᨢ  aa  
rr.

樨  ⠬ .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     ⠬    믮    樨,   㯭
 ६ ᮮ⢥饣 ⨯. ਬ:

 :
struct test
{
  int a;
  char b[8];
  long c;
} rr[3];
ਬ ⨬ ᨭ⠪:
    rr.a = rr.b[i] * rr[1].c + i ;

ਬ砭:
~~~~~~~~~~~
          ⠬   ᨢ         ஢묨
⠬        ⢥      ᯮ
६,    ᯮ짮  ॣ SI   DI,     
  (ਬ:  rr[i].b[j] >< rr[i+1].b[j+2] )  㤥  ⢮  
ॣ DX.

       -     ࠬ  C--.


                             sizeof.
			   ~~~~~~~~~~~~~~~~~

     sizeof  । ࠧ  ,   ᮮ⢥ ꥪ
 ⨯.  sizeof  ᫥騩 :

 sizeof (< ⨯>)

    ⮬   樨   sizeof      ࠧ         ,
ᮮ⢥騩  ꥪ  ⨯.
      C--    sizeof    ਬ   ६, ॣࠬ, ⨯
६, ࠬ, ⥪⮢ ப  䠩.
    ᫨    sizeof  ਬ    ⨯  ,     १⮬
 ࠧ ⥣  .
    ᫨    sizeof  ਬ    ⥪⮢  ப,   १⮬
樨  ࠧ ப  騩 . ਬ:

 sizeof ("Test")

१⮬  ⮩  樨  㤥  ᫮  5.  ,  ᫨   ⠪
:

char a="Test";

 sizeof(a)

 १⮬  㤥 1  - ࠧ  ⨯ ६  a. ᫨    室
  ࠧ  ப         㫨஢  ,     
४ ⠪ ᯮᮡ:

?define RR "Test"
char a=RR;

 sizeof(RR);

१⮬  ⮩  樨  㤥  ᫮  5  - ࠧ ப  騩
.
     sizeof  ਬ   䠩.  뢠 祭   
ᯮ짮    FROM,      ਬ      㣨 .
ਬ ਬ  sizeof  䠩:

 sizeof ( file "filename.dat" )

⮬ ⮩ 樨 㤥 ࠧ 䠩 "filename.dat".


                        맮 楤  -⨫.
		       ~~~~~~~~~~~~~~~~~~~~~~~~~~~

      C--     맮   ⥪  楤        ⨫  pascal.
२⢮  ⮣  ᯮᮡ  맮  楤   ⭮  
⮩  堭   樨  .     ⪠,     ᮮ⢥⢥   
२⢠  -⨫,    ⭥    ਢ易  ᪠᪨
楤        ⨯  ।  ࠬ஢  (஡   맮
楤  ⨫  pascal    ࠬ    100% ᠭ).
  孨᪨ ⠫  ⨯ 맮 楤.

 ⥪ C--   楤 ⥪  ⨫ pascal:
     
      ...
    BP + FFFE ।᫥   ६
    BP + FFFF ᫥   ६
    BP + 0000 ࠭ BP
    BP + 0002 RET 
    BP + 0004 ᫥ ᫮ । 楤 ࠬ஢ (᫨ 
              )
    BP + 0006 ।᫥ ᫮ । 楤 ࠬ஢
     ...
    BP + nnnn ࢮ ᫮ । 楤 ࠬ஢

᢮  ⥪    ।  楤  ࠬ஢  ந室 אַ 
ᠬ 楤   RET nnnn -   nnnn   ࠧ஬ । 
⥪ ࠬ஢.

 ⥪ C--   楤 ⥪  ⨫ :
     
      ...
    BP + FFFE ।᫥   ६
    BP + FFFF ᫥   ६
    BP + 0000 ࠭ BP
    BP + 0002 RET 
    BP + 0004 ࢮ ᫮ । 楤 ࠬ஢ (᫨ 
              )
    BP + 0006 ஥ ᫮ । 楤 ࠬ஢
     ...
    BP + nnnn ᫥ ᫮ । 楤 ࠬ஢

楤    ⨫    稢    RET.  ᢮  ⥪ 
ࠬ஢ ந室   ⮬  㤠  뫠 맢 楤.  筮 
   ADD SP,nnnn.  ..    筮   ᪮쪮 
  ࠬ஢    ।      砥 楤  ᮮ⢥⢥
᢮ ⥪ ᫥  襭 楤.   祭 㤮   楤,
    ࠡ뢠  ६  ᫮ ࠬ஢ (ਬ 楤
⨯ printf).
          C--  ਭ  ⥪  楤  楤 
-⨫,    ᨬ     楤   : c_.  ਬ:
test();	-  㤥  楤ன   ⨫ pascal
c_test(); -  㦥 㤥 楤ன -⨫.


                    ᪠ 砥 䠩.
		  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩ ᨨ     ७  砥 䠩.  
⮣      :  ४⨢  ?includepath  "filepath",   
  ப  /ip=filepath    ப   c--.ini 䠩 ip=filepath. 祬
    ᪮쪮  ४⨢        ﬨ,    饥   ᫮
ᬠਢ ⥩ ࠭祭 16.
        砥  䠩  ந    ⠪  奬: ᭠砫
 ⪠   䠩   ⥪饩  ४ਨ. ᫨  䠩 ⠬ , 
    ⪠    䠩    ४ਨ  㪠   ४⨢
?includepath. ᫨  ४⨢   뫠    䠩   ⮩ ४ਨ 
,      ⪠    䠩    ४ਨ  㪠   
 ப   /ip. ᫨     뫠    䠩  
㪠  ४ਨ    ,      ⪠    䠩  
४ਨ 㪠   䠩  C--.INI   ip. ᫨     뫠
   䠩   㪠 ४ਨ   ,     ⪠
 䠩  ४ਨ   㪠뢠 ६ 㦥 C--.  ᫨
६ 㦥  뫠   䠩  ⮩ ४ਨ   ,
   ᫥ ⪠   䠩   ४ਨ  㤠  饭
.
      C--.INI    室    ⮩    ४ਨ,   ᯮ
.


    0.211  15.11.98


           祭 㯭 権  -EAX/AX/AL ࠦ.
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      -EAX/AX/AL ࠦ 뫮  ᯮ짮   樨:
᫮,  ⠭,  XOR,  OR,  AND.      CPU  286    
ᯮ짮 㬭  ᤢ  ᫮. ਬ:
     DX = var * CX * 3 * var >> 3;
㤥 ஢,  ࠦ
     DX = var * CX * 3 * var >> var;
맮 ᮮ饭  訡, ⠪    㪠 ᤢ  ६  (ᤢ
  ⮫쪮  ।⢥ ᫮).
    ਬ砭:  8  -AL  ࠦ 㬭  ⮫쪮   ᫠:
0, 1, 2, 4, 8,  16, 32, 64  128.    ࠭祭 易   ६
 ࠧ 㣨 ॣ  ᯮ짮 -EAX/AX/AL ࠦ.


                     ⨬ ᫮ ࠦ.
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     祭   ப 樨 /ON   䠩 C--.INI 窨  ON,
  㤥  ஢  樨    ᫠       
᮪ ᫮ 権. ਬ:

 ப  ⨬樨  | ᫥ ⨬樨
----------------------------------------------
  AX = var + 7 - 3;     | AX = var + 4;
  AX = var * 2 * 5;     | AX = var * 10;
  AX = var * 2 / 4;     | AX = var / 2;
  AX = var * 10 / 2;    | AX = var * 5;
  AX = var / 2 / 3;     | AX = var / 6;
  AX = var / 4 * 8;     | AX = var * 2;
  AX = var / 16 * 16;   | AX = var;

    ⨢  ᫥⢨.  ਬ  ⮩   ⨬樨       
    ~~~~~~~~~~~~~~~~~~~~~~~ ⨢ ᫥⢨.  ਬ, ᫨   㦭
஢ 祭 ६  ࠭ ࠣ,   ப:
    var = var / 16 * 16;
 ᫥ ⨬樨 㤥
    var = var;
.. ࠢ   㤥  ந. ⮣   ,  ᫨ ࠧ
 ࠦ  :
    var = var / 16;
    var = var * 16;
⮣ ⨬   㤥  ந.    祭   ⭮
  㤥  ⠪:
    AX = var;
    AX = AX / 16;
    AX = AX * 16;
    var = AX;


                  ६ ७ ࠧ來 ६.
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⭮,   ᫥  㬭     ந   ९,   .
ࠧ來  १    ॢ  ࠧ來  室  ࠭  
ந  ᪠  १.  筮     ஡  
    ப  /DE    ப  DE   䠩 C--.INI. ᫥ 
㬭  㤥 ᬠਢ ⮪ ப  ᫨ 㦨,  
७  ࠧ來      ॡ  (ॡ  ७
ࠧ來   樨    ᫥  ⪠),    ਭ
   ࠭. ਬ:
    a = b*c+d/e; // 㤥 祭 প ७ ࠧ來
    a = b*c+d*e; // প ७ ࠧ來  㤥.

     ਬ ⮩ 樨    ⨢ ᫥⢨. 
  ਬ:
  ࠦ
    a = b * c / d;
᫨ 祭 ६ b = 0xC000,  c = 0x1000, d=0x10, ᫥ ᪠  ⠪
ணࠬ ᭥  ᮮ饭  ⮬,  ந諮 ९  .


                        樨  ᢮.
                       ~~~~~~~~~~~~~~~~~~~~~~~~~

     C-- 㦥 㬥   樨  ᢮: ᫮ +=;  ⠭
-=; or |=; and &=;  xor ^=; ᤢ    <<=  ᤢ ࠢ >>=.    
       -  㬭   ᢮ *=    
᢮.
      権  ᢮    ,   ᭠砫
㤥  ᫥  ࠦ  ࠢ      ࠢ⢠,    ⥬ 㦥 㤥
믮 ⢨ ᫥   .     ᢮   ࠧ襭
ॣ EBX/BX/BL  EDX/DX.



    0.210  15.10.98


                    প ᥬ 権.
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩ ᨨ 祭  ॠ প ᥬ 権  CPU
  Pentium MMX.  ᯨ᮪ ᫥ 㯯 権 祭  
:
  ARPL r/m16,r16  - ४ ॡ ஢ ਢ
  LAR r16,r/m16   - 㧨 ࠢ 㯠
  LAR r32,r/m32
  LGDT m64        - 㧨 ⠡ ਯ஢  GDTR
  LIDT m64        - 㧨 ⠡ ਯ஢  IDTR
  LLDT r/m16      - 㧨 ⠡ ਯ஢  LDTR
  LMSW r/m16      - 㧨 ᫮ ﭨ 設
  LSL r16,r/m16   - 㧨 । ᥣ
  LSL r32,r/m32
  LTR r/m64       - 㧨 ॣ 
  SGDT m64        -  ⠡ ਯ஢  GDTR
  SIDT m64        -  ⠡ ਯ஢  IDTR
  SLDT r/m16      -  ⠡ ਯ஢  LDTR
  SMSW r/m16      -  ᫮ ﭨ 設
  VERR r/m16      - ஢ ᥫ   ⥭
  VERW r/m16      - ஢ ᥫ   


                      32-⭠   .
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      C--  ᤥ ஡ 蠣   32-ࠧ來.    樨
 ᯮ짮 32- ॣ. ..  ⢥  ᨭ⠪ ⨯:
      AX = DSWORD [ECX+EDX*2+64];
 ᣥ ᮮ⢥騩  .


                      ।०  樨.
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ॥ ᥣ,       ।०,   ଠ
  樨.    C--    뤠  2  ⨯  ।०:   
ଠ    ᠬ쭮  ᯮ짮  ஬  ॣ஢  CPU (஬
ॣ஢ AL,AH,AX,EAX)   ଠ     ਬ ⪨ 
몮 ᨭ⠪ (IF, ELSE, JMP SHORT, FOR...).
     뢮 ।०    樨  ப  /+w
-  ⮣   ।०     뢮       䠩   砥   
㥬 䠩.       뢮  ।० ⮫쪮  
  䠩    ४⨢  ?warning.   ࠬ  FALSE    TRUE  ⮩
४⨢   ࠧ    뢮  ।०  ⥪饣
䠩.
      㬮砭  ।०  뢮    ࠭.    ᫨  
ப     ࠬ  /wf=<file_name>   -     ।०   
뢮  䠩 <file_name>.


                    ஢ ᨢ  ६.
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ।    뫠  ⪠   ᤥ  ,       
業    ᥣ  ஢ ࠢ쭮.  , த  , 
஡ ࠧ襭.   ⢥     ᯮ ॣ  SI, 
   ><  ⠪  ⢮ ॣ DI.
    ਬ:

int buf[20];
int a;
	AX=buf[a];
     ᣥ :
	mov SI,a
	shl SI,1
	mov AX,[#buf+SI]

     ⢥   ᯮ짮  ⨯ ६ ஬ float.
    ᪠ ⠪ ਬ  ஢. ਬ:

char buf[20];
int a[20];
int b;
	AX=buf[a[b]];
     ᣥ :
	mov SI,b
	shl SI,1
	mov SI,[#a+SI]
	mov AX,[#buf+SI]



    0.209  24.09.98


		      ࠩ஢ ன.
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ⮩  ᨨ      䠩 ࠩ஢ ன.
 ⥫쭮      ᠭ ࠩ஢.  
ᠬ  ᮧ    ࠩ    楤      . 
⠥    ࠡ⪨ .
        ⪮஢  䠩   ࠩ  ன⢠,       
 ப  /SYS. ஬ ⮣   ४⨢  ,
  ⮫쪮  ⨬ 箬.  :

    ?sysattribute <祭>   -   ४⨢ ।    ਡ
ᮧ ࠩ.  㬮砭 ⠭ 祭 0x2000.

    ?sysname  <⥪⮢  ப>  -    ४⨢  ।  
饣 ࠩ.   㬮砭 ᢠ   "NO_NAME".    
 8 ᨬ.

    ?syscommand  <command_0>,<command_1>,  ...  <command_n>;  -   ४⨢
 易⥫쭮.   ⮩  ४⨢   । ᯨ᮪ 
楤 ࠡ⪨   ࠩ.   ࠧ  묨. ᮪ 
稢 ᨬ  窠--⮩.   ।    25  .
᫨  -          প,   ᯨ᮪  
᫮ NONE.

      㬮砭      ࠩ    ᮧ  ⥪. ࠩ 
짮 ⥬ ⥪.  , ,       㡨.
᫨  楤  ⨢ ᯮ ⥪        ⥬,
 ४⨢  ?stack <稭>   ⠢  ࠩ 짮  ᢮
⥪.
    訬  楤ࠬ  ࠡ⪨      । ࠢ  ॣ
ES:BX  㤥  ।      .    DS  ࠢ  CS. 
 ࠢ  楤  ࠭ ॣ DS.  ॣ  AX
 室   .  ⠫ ॣ     ᯮ짮
ந ࠧ.
    楤   ࠡ⪨      樠樨   ⥫쭮   ᯮ
᫥  (⮡      ⤠ ᭮ ࠭⢮ 
⮩  楤ன  樮  ⥬).  ।  ⮩  楤ன,  ᫨  
㣨  楤  ࠡ⪨     ᯮ  ᪨   楤,
易⥫쭮      ४⨢  ?setdinproc.    ⮩  ४⨢  
஡  ᬮ  .     ६       易⥫쭮
ந樠஢.
      ⢥  ਬ  ।    ࠩ  TIME2000,   
      ஡ 2000  .   䠩 DRIVER.TXT 
    ଠ樨  ࠩࠬ.


		          ४⨢ ?setdinproc.
                         ~~~~~~~~~~~~~~~~~~~~~~~~

      ४⨢      ⮣,  ⮡    ᠭ   C--
ࠩ஢  १⮢.   ⮩ ४⨢    ⠢  
  㥬  ணࠬ    뢠訥 ࠭ ᪨ 楤.
    ஡.
    筮, १ ணࠬ  ⠪ 奬:  ᠬ 砫  室
jmp    樠樨,  稢  맮 뢠 INT  27 
ᮬ ᫥, ⠢塞 १,   (筮    砫
  樠樨).    jmp      樠樨  ᯮ  
騩  १⭮.  ᫨      ⮬      맮  ᪨
楤,      樨    楤     ⥫ 䠩 
ᠬ  ,    樠樨.  ᫨    ⠪ ணࠬ,
    ᪨  楤      । १  ࢮ 
饭   ਢ  ᠭ.
    ᫨    ।    樠樨  ⠢ ४⨢ ?setdinproc, 
᪨ 楤   ⠢  ⮬  .     C--
 室,   ⠢  ४⨢   砫 䠩.  
  ,  楤  ᮡࠥ ᯮ짮.
      ६    ᮧ  १⮢   ࠩ஢  
易⥫쭮  ந樠஢.    樠஢ ६ 
⢮  । 䠩       ,    ᪨
楤.


		     ᪮ ꥤ ࠢ.
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      C--    ᪨ ꥤ ࠢ.  ..
   樨 ⨯:

  IF( (AX > 2) && (CX == 0) || (DX < 8)){...

     樨  ⥯  ⠪   横 do{}while(),
while(), WHILE(), for()  FOR().
      ᯨ ࠤ.  ᪮쪮 ࠭祭:
  1. ꥤ    30 ࠢ.
  2.    ᪮  ਮ  ஢થ ᫮ ( 
       ).  ᫮  ஢ ᫥⥫쭮,  ⮬
     浪   ᠭ.

    ⠪᪨,  ᫮   易⥫쭮 祭  ᪮.


		   ७ ⥩ 横 for  FOR.
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      横 for  FOR  ⠯ 樠樨  ⠯ 饭  
 ᪮쪮 . ⥫     ⠯  
. ਬ:

  for ( a=0, b=0, c=1; (a<12) && (c>b); a++, c+=4, b=b*a)

    ᫮   ⠯ 樠樨   ࠭祭.  ப   ⠯
饭 ࠭祭 1000 ᨬ.



    0.208  6.09.98


			   ६ ⨯ float.
			   ~~~~~~~~~~~~~~~~~~~~~~
      ।⠢  祭    饩  窮     C--  ⨯
float.  ⮬ ⨯ ᮮ⢥ ⢨⥫쭮 ᫮ ୮ 筮 FPU.
    ଠ ।⠢    饩 窮 砥   : ,
    浪.    ।  訬  騬  ࠧ冷.   
 ᮤন  騥   ᫠,    浪  ᮤন ⥯ 2 
। ⠡騩 ⥫  .
    31 30.....23 22........0
                       
               -  
       -  浪
     -  

		       ⠭  饩 窮.
		       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     ⫨砥 ⢥ ᫮   楫      窨.
稭 ⢥ ᫮   ன  0  9,    .
易⥫쭮    ⢥   ᫠    ⥫   ⥯.
⥫  ⥯  ⤥    ᫠  ᨬ  <e>    <E>.   ஡
⨬.  ਬ ⨬ ᨭ⠪:
   0.98
   -15.75
   3.14e2
   1.234567E-20

		        ⨬ 祭.
		       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ⢥ ᫮ ⨯ float   室    3.37E38  
-3.37E38. 쭮     祭 ࠢ 1.17E-38   -1.17E-38.
뢠 ⢥ ᫮ ୮ 筮  祬 8 ࠬ   
᫠. ⥫ ⥯  ਭ 祭  +38  -38.

			  ⥬᪨ 樨.
			  ~~~~~~~~~~~~~~~~~~~~~~~~
     ন  4 ᭮  ⢨   ६묨 ⨯ float:
᫮,  ⠭,  㬭    .  ন  ⠪ ६
(var++ - 㢥祭   1), ६ (var-- -  㬥襭  1), ᬥ  
(-var)      祭ﬨ  (var1><var2).  ⠫ ⥬᪨ 樨
  ॠ    譨  ⥪  (  䠩  fpumath.h-- 
樨 㦥 ॠ   ,    ਬ ⨥    쭥襬
).    ᫥ 祭 ६  float  ᯮ짮  
६ 㣨 ⨯,   ⮬᪨ ८ࠧ  ⨯ float.
    ! ⠢ ⥬᪨ 樨  믮  ⮬ 浪,  
஬  ᠭ,   ࠢ 䬥⨪.

			   ८ࠧ ⨯.
			   ~~~~~~~~~~~~~~~~~~~~~
     ⥬᪨    ⮣    ६
⨯ float,  ࠭ 㣨 ⨯ । ᫥  ८ࠧ  
⨯ float.  ᢠ ६ ⨯ float 祭 ६  㣮
⨯  ⠪ 㤥 ८ࠧ  ⨯ float.
    ᫨   楫᫥ ᫥     ࠭ 㤥  ६
⨯ float,    㤥 뤥 楫 ,   ਬ ⨥  
᫥.    ᢠ  楫᫥  ६ 祭 ६
⨯  float,      ⠪  㤥  뤥  楫  ,     㤥
᢮  楫᫥   ६.       ᪫祭   -  
32- ॣ.   ᢠ 32-⭮ ॣ  祭 ६
⨯  float,  ᢠ  ந    樨.   뤥 楫
  ६  ⨯ float 㤥  맢 楤 float2numer   䠩
fpu.h--. ⮬, ᫨   ᢮ ணࠬ  ᯮ ६ ⨯  float,
易⥫쭮   ᢮ ணࠬ  - ?include "fpu.h--" .
    !  ᫨    ᮡࠥ    ᢮  ᪨  楤  
ᯮ짮 ६  ⨯ float,      ⠪,  ⮡  
権,   㤥 㦤 ஢ ⢥ ᫮  
楫᫥.     ⮬  㤥   ᣥ஢     맮  饩
楤.  易  ⥬,   C--  ᪠  맮  楤
 ᪨ 楤.  襥 ६     ஡.

			    樨 ࠢ.
			    ~~~~~~~~~~~~~~~~~~~
    ᫨    樨  ࠢ    ࠭    ६ 
ࠦ  ⨯   float,     ࠢ     楫᫥  祭,   
楫᫥ 祭 㤥 ८ࠧ   ⢥ ⨯. ᫨   
࠭  楫᫥ ࠦ  ६,  ࠢ  ࠭
祭  ⨯  float,      ࠢ  ࠭  㤥 뤥 楫 ,
  ਬ ⨥  ࠢ.
    !    樨  ࠢ    ⨥  ६  ⨯   float,
ᮤন ॣ AX 㤥 ࠧ襭.

			      ...
			    ~~~~~~~~~~~~~~~~~~~~
    ६ ⨯  float   ⢮   몥 C--      諠
 ஢. ⮬  ᪠    ஢  
⨬       訡.  , ,    墠祭 
  砨 ᯮ짮 ⮩ ६.
    ᫨    ᠫ  ணࠬ    ᯮ짮  ६  float,  
ࠡ⠥   ⠪   ,   ᠥ,    㢥७   ⮬,  ணࠬ
ᠭ  ୮,    諨      室    訬  ᭥ﬨ.   
  ࠧ  -              .
뫠  ⠪    ।     ⨬樨       ७
ਬ ६ float.


                     ४⨢  assumeDSSS.
		     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     ,   Peter  Cellik ( 몠 C--)   ,    , 
   樨   ,    ⢥   ᯮ ॣ
BP,  㬮砭  ந室   ᥣ SS.     
 ᯮ짮  ⥪ ६  ᮢ⭮ ⠬  䨪 SS. 
 譨   ⠪    饭  . ⮡   ⮣ 뫠
ਤ㬠 ४⨢   assumeDSSS,  ।   ᥣ
    ⥪  ᮢ  (    設⢥  砥    ந室)   
  ਫ 䨪 SS.
         ⠢    ᢮      室     ४⨢
assumeDSSS ⯠.  ⮩  ᨨ  㤥 ண뢠   ४⨢
 ।०  ⭮ ४⨢,    ⢨    㤥
ந.



    0.207a  6.08.98


        ᮪ ন 権 䬥᪮ ᮯ.
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

F2XM1         ᫥ ^b2x-1
FABS           ᮫⭮ 祭
FADD ST,ST(i)  ⢥ ᥫ
FADD ST(i),ST  ⢥ ᥫ
FADD float     float c ST(0) १  ST(0).
FADDP ST(i)    ⢥ ᥫ  祭  ⥪.
FBLD var80     筠 㧪 (BCD).
FBSTP var80    㯠 筮 祭 (BCD)  祭
               ⥪.
FCHS           .
FCLEX         ⪠ ᪫⥫ 뢠.
FNCLEX        ⪠ ᪫⥫ 뢠.
FCOM ST(i)    ࠢ ⢥ ᥫ  ST(0)  ST(i).
FCOM float    ࠢ ⢥ ᥫ  ST(0)  float.
FCOMP ST(i)   ࠢ ⢥ ᥫ ST(0)  ST(i)  祭  ⥪.
FCOMP float   ࠢ ⢥ ᥫ ST(0)  float  祭  ⥪.
FCOMPP        ࠢ ⢥ ᥫ  祭  ⥪ .
FCOS          ᨭ ST(0) (387+).
FDECSTP       襭 㪠⥫ ⥪.
FDISI         饭 뢠 (⮫쪮  ᮯ 8087).
FDIV ST,ST(i)  ⢥ ᥫ.
FDIV ST(i),ST  ⢥ ᥫ.
FDIV float     ⢥ ᥫ.
FDIVP ST(i)    ⢥ ᥫ  祭  ⥪.
FDIVR ST,ST(i)  ⢥ ᥫ  饭.
FDIVR ST(i),ST  ⢥ ᥫ  饭.
FDIVR float     ⢥ ᥫ  饭.
FDIVRP         ⢥ ᥫ  饭  祭  ⥪.
FENI          襭 뢠 (⮫쪮  ᮯ 8087).
FFREE         ᢮ ॣ.
FIADD ST(i)   ᫥ ᫮.
FIADD var32   ᫥ ᫮.
FICOM var16   ᫥ ࠢ.
FICOM var32   ᫥ ࠢ.
FICOMP var16  ᫥ ࠢ  祭  ⥪.
FICOMP var32  ᫥ ࠢ  祭  ⥪.
FIDIV var16    楫 ᥫ.
FIDIV var32    楫 ᥫ.
FIDIVR var16   楫 ᥫ  饭.
FIDIVR var32   楫 ᥫ  饭.
FILD var16    㧪 楫 ᫮.
FILD var32    㧪 楫  ᫮.
FILDQ var64   㧪 楫 ⢥୮ ᫮.
FIMUL var16   ᫥ 㬭.
FIMUL var32   ᫥ 㬭.
FINCSTP       祭 㪠⥫ ⥪.
FINIT         樠 ᮯ.
FNINIT        樠 ᮯ.
FIST var16     楫 祭.
FIST var32     楫 祭.
FISTP var16    楫 祭  祭  ⥪.
FISTP var32    楫 祭  祭  ⥪.
FISUB var16   ᫥ ⠭.
FISUB var32   ᫥ ⠭.
FISUBR var16  ᫥ ⠭  饭.
FISUBR var32  ᫥ ⠭  饭.
FLD ST(i)     㧪 ⢥ 祭.
FLD float     㧪 ⢥ 祭.
FLDCW var16   㧪 ᫮ ࠢ.
FLDENV var14b 㧪 樮 ।.
FLDLG2        㧪 ^blg 2.
FLDLN2        㧪 ^bln 2.
FLDL2E        㧪 ^blog e.
FLDL2T        㧪 ^blog 10.
FLDPI         㧪 ᫠ ^bPi.
FLDZ          㧪 ^b+0.0.
FLD1          㧪 ^b+1.0.
FMUL ST,ST(i)  ⢥ ᥫ.
FMUL ST(i),ST  ⢥ ᥫ.
FMUL float     ⢥ ᥫ.
FMULP ST(i)    ⢥ ᥫ  祭  ⥪.
FNOP           樨.
FPATAN        ஡ ⠭.
FPREM         ஡ ⮪.
FPREM1        ஡ ⮪ (387+).
FPTAN         ஡ ⠭.
FRNDINT       㣫  楫.
FRSTOR var94b ⠭ ࠭ ﭨ.
FSAVE var94b  ࠭ ﭨ.
FNSAVE var94b ࠭ ﭨ.
FSCALE        ⠡஢.
FSETPM        ⠭ 饭 ० (287+).
FSIN           ST(0) (387+).
FSINCOS         ᨭ ST(0) (387+).
FSQRT          ७.
FST ST(i)      ⢥ 祭.
FST float      ⢥ 祭.
FSTCW var16    ᫮ ࠢ.
FNSTCW var16   ᫮ ࠢ.
FSTENV var14b ࠭ 樮 ।.
FNSTENV var14b ࠭ 樮 ।.
FSTP ST(i)    ࠭ ⢥ 祭  祭  ⥪
FSTP float    ࠭ ⢥ 祭  祭  ⥪
FSTSW var16    ᫮ ﭨ.
FNSTSW var16   ᫮ ﭨ.
FSTSW AX       ᫮ ﭨ.
FNSTSW AX      ᫮ ﭨ.
FSUB ST,ST(i) ⠭ ⢥ 祭.
FSUB ST(i),ST ⠭ ⢥ 祭.
FSUB float    ⠭ ⢥ 祭.
FSUBP ST(i)   ⠭ ⢥ 祭  祭  ⥪.
FSUBR ST,ST(i) ⠭ ⢥ 祭  饭.
FSUBR ST(i),ST ⠭ ⢥ 祭  饭.
FSUBR float   ⠭ ⢥ 祭  饭.
FSUBRP ST(i)  ⠭ ⢥ 祭  饭  祭 
              ⥪.
FTST          ஢ઠ 設 ⥪  +0.0
FUCOM ST(i)   㯮冷祭 ࠢ.
FUCOMP ST(i)  㯮冷祭 ࠢ (387+).
FUCOMPP ST(i) 㯮冷祭 ࠢ (387+).
FWAIT         .
FXAM          ஢ઠ 設 ⥪.
FXCH ST(i)     ᮤন ॣ஢.
FXTRACT       뤥 ᯮ  饩 .
FYL2X         ^bY * log2 X.
FYL2XP1       ^bY * log2 (X+1).

        		  ᫮ 祭:
                         ~~~~~~~~~~~~~~~~~~~~~~~
ST      設 ⥪.
ST(i)    ⥪,  i=0-7.
var32   dword  long ६ .
var16   word  int ६ .
var64   qword 8-⭠ ६.
var80   10-⭠ ६ .
float   float ६ .
var14b  14-⭠ ६ .
var94b  94-⭠ ६ .


                            ᨢ.
                          ~~~~~~~~~~~~~~~~~~~~

     ⮩ ᨨ   ᯮ짮  ⢥  
ᨢ  ६ ⨯: char, byte, int, word.  ⮬  
⠬ ᨢ ⢫  ᨬ   ⨯ ᨢ.
ਬ:

?define COUNT 10
int array[COUNT];
int i;

void PROC()
{
	FOR ( i=0; i<COUNT; i++){
// ⮡  ᨢ array ﬨ ࠭ 㦭 뫮 ᤥ ⠪:
		BX=i+i;	//   ⠬ ᨢ  ᯮ짮 
			// ⢥  ॣ஢  ।⢥
			// 祭 ⢫ ⭮.
		array[BX]=0;

//    ⠪:
		array[i]=0;	//  ⮬  ᠬ 
				// ॣ BX  ᪮४  稭 
				// ᨬ  ࠧ୮ ᨢ.


                     ४⨢  ?else.
		    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ४⨢ ?else   ࠭ ४⨢ ?ifdef ?ifndef ?endif.
४⨢ ?else ᯮ  ४⨢ ?ifdef/?ifndef  ?endif.
    ᫨ ࠦ ᫥饥  ?ifdef ।  ணࠬ १ ?define
 ᫨ ࠦ ᫥饥  ?ifndef  ।  ணࠬ  㤥
஢ ⥪ ᯮ  ?ifdef/?ifndef  ?else. 
 ?else  ?endif ஬ 㤥 ய饭.
    ᫨  ࠦ ᫥饥  ?ifdef  ।  ணࠬ  ᫨
ࠦ ᫥饥  ?ifndef ।  ணࠬ  㤥 -
 ⥪ ᯮ  ?else  ?endif.   ?ifdef/?ifndef
 ?else ஬ 㤥 ய饭.
    ਬ ᯮ짮 ?else    䠩 FPU.H--.


    0.206  5.06.98


ini-䠩
~~~~~~~~~
      ।祭  ।⠭  㬮砭 ࠬ஢ .
   ࠬ ய뢠 筮. ⠪  ,    
   ப,   饣 ⭮ .

 goto, GOTO
~~~~~~~~~~~~~~~~~~~~
     ⠪:
     goto <⪠>;
	.
	.
	.
<⪠>:

   室 goto । ࠢ  <> 祭
<⪮>.   ᥬ  goto   jmp near.
  ᥬ  GOTO   jmp short.

 while, WHILE
~~~~~~~~~~~~~~~~~~
     ⠪:
  while(<ࠦ>)
       <>

   믮   ,  祭 <ࠦ>  ⠭ .
砫  <ࠦ>. ᫨ <ࠦ> 砫쭮 ,  ⥫
 while   믮  ࠢ ࠧ । 
᫥騩  ணࠬ.
   WHILE 祭 横 while,   ⮬    3 
.  ᣥ஢   横 WHILE    127
.
  ਬ:
	while ( i < 20 ){
		WRITEWORD(i);
		i++;
	}

	WHILE (i < 20 ) @WRITEWORD(i);	//横  㤥 ᪮  
                                        //믮  ࠧ
 for, FOR
~~~~~~~~~~~~~~
     ⠪:
  for ([<砫쭮 ࠦ>]; [<᫮>]; [<饭>])
    <>

   for 믮   ,  祭 <᫮>  ⠭ .
᫨ <᫮> 砫쭮 ,  ⥫  for   믮
 ࠢ ࠧ ।  ᫥騩  ணࠬ. <砫쭮
ࠦ>  <饭> 筮 ᯮ  樠樨  䨪樨
ࠬ஢ 横.
   蠣  믮 for  ᫥ <砫쭮 ࠦ>,
᫨  . ⥬  <᫮>  ந  業
᫥騬 ࠧ:
  1) ᫨ <᫮> ⨭,  믮 ⥫ . ⥬ 
<饭> (᫨  ),   .
  2) ᫨ <᫮> 饭,   祭 ਭ  ⨭.  ⮬
砥 横 for ।⠢ ᪮ 横,   
⮫쪮  믮   ⥫ ஢ break, goto, return.
  3) ᫨ <᫮> ,  믮 横 for 稢  ࠢ
। ᫥饬 .
   FOR 祭 横 for,   ⮬    3 
.  ᣥ஢   横 FOR    127 .
  ਬ:
	for(i=0;i<5;i++){
		WRITESTR(" ");
		WRITEWORD(i);
		WRITELN();
	}

 break, BREAK
~~~~~~~~~~~~~~~~~~~~~~
   ࠧ뢠 break 뢠 믮 ஢ do-while, for,
while, loop.   ᮤঠ ⮫쪮  ⥫  ஢. ࠢ
। , ᫥饬  ࢠ 横.
   BREAK 祭 break,   ⮬    1 
.  ᣥ஢     ਬ BREAK  
横    127 .
  ਬ:
	FOR (i=0; ; i++){
		FOR(j=0; j<WIDTH; j++){
			IF(i==5)BREAK;
		}
		IF(i==10)BREAK;
	}

 continue, CONTINUE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   த continue । ࠢ  ᫥  
横 do-while, for, while, loop.  横 do-while, while, loop ᫥
 稭  ᫥ ᫮ ࠦ.  横 for ᫥
 稭  ᫥ ࠦ 饭,  ⥬ ந室
᫥ ᫮ ࠦ.
   CONTINUE 祭 continue,   ⮬    1
 .  ᣥ஢     ਬ CONTINUE 
砫 樨    127 .

 switch
~~~~~~~~~~~~~~~~
    ⠪:
  switch(<ࠦ>){
    case <⠭>:
      <>
	...
    case <⠭>:
      <>
	...
    ...
    default:
      <>
  }
   ४⥫ switch ।祭  롮   ᪮쪨
ୠ⨢ ⥩ 믮 ணࠬ. 믮 稭  ᫥
祭 <ࠦ>. ᫥ ⮣ ࠢ ।   <஢>
⥫ ४⥫.  ⥫ ४⥫ ᮤঠ 樨:
case <⠭>:,  ᨭ⠪᪨ ।⠢ ᮡ ⪨ ஢.
, 騩 ࠢ, -   , 祭 ⠭
ண ᮢ  祭 <ࠦ> ४⥫. 祭
<⠭>   㭨.
  믮 ⥫ -४⥫ switch 稭  ࠭
⠪ ࠧ   த   ⥫    , 
-   । ࠢ  । ⥫.
   ᫥騩  祢 ᫮ default, 믮, ᫨   
⠭  ࠢ 祭 <ࠦ>. ᫨ default 饭,   
  ⥫ ४⥫  믮,  ࠢ । 
 ᫥騩  switch.
   室  ⥫ ४⥫ 筮 ᯮ  ࠧ뢠 break
(BREAK).
  ਬ:
  switch (i){
    case 'A':
      WRITE(i);
      i++;
      BREAK;
    case 32:
      WRITE('_');
      i++;
      BREAK;
    default:
      WRITE('i');
  }

祢 ᫮ asm
~~~~~~~~~~~~~~~~~~~
  祢 ᫮ asm  ᨭ  $ - 䨪 ᥬ୮ .
᫥ ᫮ asm    ᥬ .
  ਬ:
	asm {
		.
		.
		push AX
labl:
		push BX
		mov AX,0x1234
		jmp short labl
		.
		.
		.
	}
  ⪨   ᥬ  ⨬.


        	     ᥬ    C--.
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BSF r16,r/m16   ࠭-筨  । ࢮ  ࠢ 1.
BSF r32,r/m32  BSF ᪠  㫥   訬,  BSR  ⭮ -
BSR r16,r/m16  浪. ᫨ 1 ,  ⠭ ZF   ࠭-ਥ-
BSR r32,r/m32   頥   .

BT r16/r32,imm8               祭 㪠   䫠 ७
BT r16/r32/m16/m32,r16/r32   CF.  ࠭-ਥ . ஢塞 ᫥.
BTC r16/r32,imm8             ⮢,  ࠭-筨 -  樨. BT -
BTC r16/r32/m16/m32,r16/r32    , BTC -   ᫥ ⮣
BTR r16/r32,imm8              祭  ਥ, BTR - 
BTR r16/r32/m16/m32,r16/r32   ᫥ ⮣ 뢠  0, BTS -  
BTS r16/r32,imm8             ᫥ ⮣ ⠭  1 祭  ࠭
BTS r16/r32/m16/m32,r16/r32  ਥ.

SHLD r/m16,r16,imm8    (2x16 )  ⢥७ (2x32 )
SHLD r/m32,r32,imm8  ᫮, ⠢   ࠭. SHLD ᤢ
SHLD r/m16,r16,cl    , SHRD - ࠢ.  SHLD  ࠭ 室
SHLD r/m32,r32,cl    ᫥, ன - ࠢ.  SHRD  ࠭ 室
SHRD r/m16,r16,imm8  ࠢ, ன - ᫥. ᢮ ࠧ ࢮ
SHRD r/m32,r32,imm8  ࠭  ⠬ ண ࠭.
SHRD r/m16,r16,cl    ᫮ ᤢ    CL,  8-⭮ ⠭-
SHRD r/m32,r32,cl    ⮩.

SETcond r/m8  ⠭ , 㪠  ⢥ ࠭,  1, ᫨
              ᫮  祭 "⨭",   0  ⨢ 砥.
              ᫮ ஢   䫠  ᮮ⢥⢨ 
              ⠡楩:
ͻ
   䫳        ᠭ ᫮                    
͹
SETO       OF=1         ⠭, ᫨ ९               
SETNO      OF=0         ⠭, ᫨  ९            
SETC       CF=1         ⠭, ᫨ ७                    
SETNC      CF=0         ⠭, ᫨  ७                 
SETB/SETNAECF=1         ⠭, ᫨ /    ࠢ    
SETAE/SETNBCF=0         ⠭, ᫨   ࠢ/      
SETE/SETZ  ZF=1         ⠭, ᫨ ࠢ                      
SETNE/SETNZZF=0         ⠭, ᫨  ࠢ                   
SETBE/SETNACF=1 | ZF=1  ⠭, ᫨   ࠢ/      
SETA/SETNBECF=0 & ZF=0  ⠭, ᫨ /    ࠢ    
SETS       SF=1         ⠭, ᫨                        
SETNS      SF=0         ⠭, ᫨                      
SETP/SETPE PF=1         ⠭, ᫨ ⭮                      
SETNP/SETPOPF=0         ⠭, ᫨ ⭮                    
SETL/SETNGESF!=OF       ⠭, ᫨ /    ࠢ
SETGE/SETNLSF=OF        ⠭, ᫨   ࠢ/  
SETLE/SETNGZF=1 | SF!=OF⠭, ᫨   ࠢ/  
SETG/SETNLEZF=0 & SF=OF ⠭, ᫨ /    ࠢ
ͼ

		       MMX-.
                     ~~~~~~~~~~~~~~~~~~~~~~~~~

     MMX ,  ᪫祭 EMMS, 뫠    
࠭: 筨  .  ࠭ -   ன ࠭ -
筨. ࠭   ⠪   室 ࠭ 
樨.  뢠 १  ࠭ - .
    室 ࠭   MMX  ( ᪫祭  ।
),        ॣ MMX. ࠭  ᥣ
 ॣ MMX.   । , ࠭ 筨  
 ⠪  楫᫥ ॣ (  MOVD)   (
MOVD  MOVQ ).
    ᫨   ࠭    ६, 
樠஢   ⨯ dword,   뢠  MMX 
ᯮ 8 .  ७ 易  ⥬,  C--  ন ⨯
६ qword. ਬ ᯮ짮 MMX   C--:

dword i[2];	//१ࢨ஢ 8   ६ i
int j[4];
main()
{
	asm{
		movq i,MM1
		movq MM0,DSDWORD[0x100]	/*  ॣ MM0 㤥 ᠭ 8 
					     100h  107h */
		movq MM2,DSDWORD[#j]
		emms
	}
}

     EMMS  ᯮ짮    ᫥ 砥:
 -  ਫ, ᯮ饥   饩 ⮩ 頥 
MMXT ⥪/DLL. (ᯮ  EMMS  MMX .)
 -  ਫ, ᯮ饥 MMX  뢠 ⥪/DLL 
饩 ⮩. (ᯮ  EMMS । 맮   饩
⮩.)
 -  ந諮 ४祭  MMX   /  㣨
砬/ﬨ  ᮢ 樮 ⥬, ᫨  㢥७, 
襥 ⢮ MMX  㤥 믮 ।  FPU .
    ᫨ ਫ ᮤন   饩 ⮩  MMX ,
᫥ ⨬ ਭ樯:
 - 뤥 MMXT     ᮯ  ⤥ ⮪ 
(⤥ 横  ணࠬ) ⠪, ⮡  ᮤঠ ⮫쪮 
 ⨯.
 -    ᮤঠ ॣ஢ ४ 室.  ﭨ
 MMX  ॡ,  ﭨ MMX, ᯮ  EMMS.
 - 室  ࠧ   饩 ⮩   ⥪.
EMMS - ᢮ MMXT ﭨ.  EMMS ᢮ ﭨ MMX. 
         ᯮ짮, ⮡  ﭨ MMX (⮡
       ᢮ tag- ᫮ ॣ஢  ࠡ  饩 ⮩) 
        MMX ணࠬ । 맮 㣨 ணࠬ,  
       믮 樨  饩 ⮩.

MOVD mmxreg,mem   - ६ 32 , । 32 
MOVD mem,mmxreg     㯠     ॣ MMX  ⭮,
MOVD reg32,mmxreg     楫᫥ ॣ஢  ॣ MMX  ⭮.
MOVD mmxreg,reg32

MOVQ mmxreg,mmxreg/mem64 - ६ 64 , । 64  㯠
			       ॣ MMX  ⭮, 
			    ॣࠬ MMX.

      .  PADDSB, PADDSW,  PADDWD
(㯠 ᫮)  PSUBB, PSUBW,  PSUBD (㯠 ⠭)
        室
࠭   (' ࠭   横᪮ ०.  
ন 㯠 , 㯠 ᫮,  㯠 
᫮.  PADDSB  PADDSW (㯠 ᫮  饭) 
PSUBSB,  PSUBSW (㯠 ⠭  饭)  
    室 ࠭    
⮢  ࠭   १ १  ࠭祭
  ⨯ .   ন 㯠  
㯠 ᫮.  PADDUSB  PADDUSW (㯠 ᫮  
 饭)  PSUBUSB,  PSUBUSW (㯠 ⠭   
饭)        室
࠭    ⮢    ࠭   १
१  ࠭祭  ⨯   .  
ন 㯠   㯠 ᫮.
PADDB   - Add with wrap-around
PADDW   - Add with wrap-around
PADDD   - Add with wrap-around
PADDSB  - Add signed with saturation
PADDSW  - Add signed with saturation
PADDUSB - Add unsigned with saturation
PADDUSW - Add unsigned with saturation
PSUBSB  - Subtract signed with saturation
PSUBSW  - Subtract signed with saturation
PSUBUSB - Subtract unsigned with saturation
PSUBUSW - Subtract unsigned with saturation
PSUBB   - Subtract with wrap-around
PSUBW   - Subtract with wrap-around
PSUBD   - Subtract with wrap-around

     .  㯠 㬭 믮 
㬭   16-ࠧ來  ࠭, ந 32-ࠧ來
஬ १. 짮⥫  롨 訥  訥
  32-ࠧ來 १.  PMULHW (㯠 㬭
訩)  PMULLW (㯠 㬭 訩) 㬭  ᫮
࠭ 筨    뢠    
१  ࠭ .
PMULHW - Packed multiplic ation
PMULLW - Packed multiplic ation

     /.  PMADDWD (㯠 㬭 
᫮)  ந  ᫮ ࠭  
筨.  ஬ 32-ࠧ來 ந 㬬 
, ⮡ ந  32-ࠧ來 १.
PMADDWD - Packed multiply add

     .  PCMPEQB, PCMPEQW,  PCMPEQD (㯠
ࠢ  ࠢ⢮)  PCMPGTB, PCMPGTW,  PCMPGTD (㯠 ࠢ
 襣 祬) ࠢ ᮮ⢥騥    ࠭
筨    ࠢ⢮  業  祬, ᮮ⢥⢥.
      㫥,  뢠  ࠭
. ᪨ 樨  ᯮ짮 , ⮡ 
.   ᯮ짮, ⮡ 믮 㯠 ᫮
 뫪  ⢫    ⢫.  䫠
 ⠭.   ন 㯠 , 㯠
᫮  㯠  ᫮.
PCMPEQB - Packed compare for equality
PCMPEQW - Packed compare for equality
PCMPEQD - Packed compare for equality
PCMPGTB - Packed compare greater (signed)
PCMPGTW - Packed compare greater (signed)
PCMPGTD - Packed compare greater (signed)

     .  ८ࠧ ८ࠧ뢠 
  㯠 ⨯ .  PACKSSWB  PACKSSDW
(㯠   饭) ८ࠧ뢠  ᫮ 
     ᫮   ᫮,  ० 
饭.  PACKUSWB (㯠 饭  )
८ࠧ뢠  ᫮    ,  ० 饭 
.  PUNPCKHBW, PUNPCKHWD,  PUNPCKHDQ (ᯠ 訥
㯠 )  PUNPCKLBW, PUNPCKLWD,  PUNPCKLDQ (ᯠ 訥
㯠 ) ८ࠧ뢠   ᫮, ᫮   ᫮, 
 ᫮  ⢥୮ ᫮.
PACKSSDW  - Pack dword to word data (signed with saturation)
PACKSSWB  - Pack word to byte data (signed with saturation)
PACKUSWB  - Pack word to byte data (unsigned with saturation)
PUNPCKHBW - Unpack high data to next larger type
PUNPCKHDQ - Unpack high data to next larger type
PUNPCKHWD - Unpack high data to next larger type
PUNPCKLBW - Unpack low data to next larger type
PUNPCKLDQ - Unpack low data to next larger type
PUNPCKLWD - Unpack low data to next larger type

     .  PAND (ࠧ來 ᪮ ), PANDN
(ࠧ來 ᪮ -), POR (ࠧ來 ᪮ ),  PXOR
(ࠧ來 ᪮ ᪫饥 ) 믮 ࠧ來 ᪨
樨  64-ࠧ來 묨.
PAND  - Bitwise And
PANDN - Bitwise AndNot
POR   - Bitwise Or
PXOR  - Bitwise Xor

     .  ᪮ ᤢ , ᪮ ᤢ
ࠢ  䬥᪮ ᤢ ࠢ, ᤢ   
। ᫮ ⮢. ᪨   ࠢ ᤢ ⠪ 
 ६ 64-ࠧ來    ,   
८ࠧ ⨯    ࠢ.  PSLLW  PSLLD
(㯠 ᪨ ᤢ )  PSRLW  PSRLD (㯠 ᪨
ᤢ ࠢ) 믮 ᪨   ࠢ ᤢ,   
訥  訥 ⮢ 樨 ﬨ.   ন
㯠 ᫮, 㯠  ᫮,  ⢥୮ ᫮. 
PSRAW  PSRAD (㯠 䬥᪨ ᤢ ࠢ) 믮
䬥᪨ ᤢ ࠢ,   ࠧ   ࠧ來
樨  襬  ࠭.   ন 㯠 ᫮
 㯠  ᫮.  ࠭      8
⭮ ᫮.
PSLLD - Packed shift left logical
PSLLQ - Packed shift left logical
PSLLW - Packed shift left logical
PSRAW - Packed shift right arithmetic
PSRAD - Packed shift right arithmetic
PSRLW - Packed shift right logical
PSRLD - Packed shift right logical
PSRLQ - Packed shift right logical

