!
~~~~~~~~~~
      ࠢ 訡  ࠢ  楤 
䫠.  ( 0.238 ᨨ ) ஢ ⨢  ࠢ.
ਬ:

void CARRYFLAG TEST();	//declaration procedure
...
{
  IF ( TEST() ) AX = 1 ;  //check carry flag returned procedure TEST
}
      ⠪ :
     call    103h
     jnc     10Ch
     mov     ax,1
    뫮 ⠪:
     call    103h
     jc      10Ch
     mov     ax,1


'static' 㭪樨  ६  .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    প 'static' 㭪権  /    諮
ᨨ .   ⮩ ᨨ  প 'static' ६.

    'static' 㭪樨  ६   㭪樨  ६ 
(㯭)  ࠭祭 ⮤ (㭪ﬨ)  () 
  .

      'static' ६ 뤥 ࠧ   ⥣
 ().  'static' ६ ᥣ ⠥  ⢥
, ᨬ  ᫠ ᮧ ꥪ⮢  㯭 ᥬ ꥪ⠬
 .  'static' ६  樠஢ ࠧ 
 . ਬ:

struct info
{
  info (int num); // 塞   info, ਭ饣 
                  // ࠬ.
  int number;
  static int svar = 5; //   樠 static ६ svar
};

      'static' ६  㭪  㭪権   ⮣ 
 ⢫    ६  㭪. ਬ:

info::info (int num)
{
  IF ( this ) {
    svar = num ;
  }
  return this;
}

     㯠  'static' ६  㭪  㭪権  
⮤ ⮣   㪠  ⥣ ,  ஬ ᠭ 
'static' 㭪  ६.  ਬ:

void main()
{
  EAX = info.svar;
}


 ⢥ ⨯ ६.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ६ 'double' ⨢ ᯮ   ᥬ   ,
⮬ ஡    㤥 .

    㭪樨, 騥 ⨯  'double', ⠢ १  設
⥪ FPU.   㣨 ⨯ ⮢  㭪権  ⮣ ᯮ
ॣ (AL, AX, EAX, EDX:EAX).     ,  
㦭, 㧪 ⢥ ᥫ  ॣ.

    㣨  ⨯    ॣ FPU.

    ᥣ  8 ॣ஢ FPU.    ⠪: st(0), st(1),
st(2)... st(7).   ࣠  ⥪, 設 ண 
ॣ st(0).  १  ந 㧪  㧪 ⢥
ᥫ.   ॣ    st.   ஡  ࠡ 
᢮⢠ ॣ஢ FPU,     ᯥ樠쭮 .

    ⥪ ࣠ ॣ஢ FPU ᫮ ᯮ짮  ॣ஢
 ॡ ⥫쭮   ⭮襭.  㦭 ﭭ ᫥  ᥬ
ﬨ 設 ⥪, ஥    ॣ  
  ६.

     FPU  ᯮ짮  ᫥ ࠦ. ਬ:

double d,d2;

  st(3) = st(2) + 1 * d;
  d2 = PI / st(3);

     FPU  ᯮ짮   㭪権  ⢥
ࠬ஢  ⠭  㣨 ⨯ ६. ਬ:

void cdecl proc (int, st(3), st(4) );
int fastcall func (ECX, st(3), st(4) );

     st(0)  ᯮ짮  ⢥   㭪樨.  
⮬ 㤥 ஢ ⠪  ,    ᯮ짮 
double.  ਬ:

st ctdcall func (dword, st(2));



64- ६.
~~~~~~~~~~~~~~~~~~~~~~

    ᯮ짮 64- ६  32-⭮ ଥ ਢ 
⥫쭮  ࠧ   ணࠬ  ᭨ 
த⢨.  ⮬ ਬ 64- ६  ⮫쪮 ⮣,
  ⢨⥫쭮 室.

     -- ন 64-  ⨯ ६ - 'qword'.
 ᮢ⨬  ⠭  ন 祭 ⮣ ⨯ 
'long long',   ᫮ ⠭⠬   䨪 'I64'.  
64-      ᯮ짮 १ࢨ஢
䨪஢:  DSQWORD, ESQWORD, SSQWORD, CSQWORD, FSQWORD, GSQWORD.  
㤮⢠ ࠡ  64-묨 ६묨  ꥤ 32- ॣ
 . ਬ:

  EBX:ECX = DSQWORD[EAX] + 1;

     ⮬ ਬ ॣ EBX  ECX ᯮ   64-
ॣ.   ॣ EBX 室   64-⭮ 稭,  
ॣ ECX - .

    㭪樨, 騥 ⨯  'qword,' ᯮ   64-
 ॣ஢ EDX:EAX.

     64-묨 ६묨  믮 ⠪  樨,   
६묨 㣨 ⨯.   権 㬭   
ᯮ 㭪樨 室騥  䠩 'math64.h--'.  ᫨  㤥
ᯮ짮 樨 㬭    64-묨 ६묨, 
 室 㤥    ஥  䠩.


樨 ࠢ  ᯮ짮 䫠.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ࠢ  ᯮ짮 ⮫쪮  樨 䫠,
    ᥬ  ᫮ 室.
 㯭 樨 䫠 ਢ  䠩 'flags.c--'.


⪠ ⥪  ࠬ஢ cdecl-㭪権.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ⪠ ⥪  ࠬ஢ ᫥ 맮 㭪樨 ⨯ cdecl, ࠭
ந ࠧ ᫥ 맮 ⮩ 㭪樨.    , 
,  ,  .     ࠬ
᪮쪨 cdecl-㭪権  ⥪ , ⮬  ⥪   ਥ.

      ஬ ᯮᮡ ⪨ ⥪    樨 
ப /js-.

    ⥪ 頥 ᥬ୮ 樥 add esp,sizeparam   ⮬
䫠 .  ⫮ ⪠ ⥪ ந । ࠬ
ࠢ,  ᫨   ஢ 䫠,  ணࠬ 㤥 ࠡ
 ࠢ쭮.  ⮡ ⮣  ந室    ⥪  ,
 ନ 䫠.   ⮣ 筮 । ⮬ ନ஢ 䫠
⠢  ,  ⠪ 뢠  ⥪. ਬ:

  printf("Password: ";
  scanf("%s",#pword);
  ESI = #right;
  EDI = #pword;
  ECX = sizeof(right)-1;
LOCAL:        // । ⮩ ⪮  ࠧ㧨 ⥪
  $rep $cmpsb //  樨 ⠭ 䫠
              //    襭, ᫨  㤥 ⪨
  IF (ZEROFLAG) printf("OK\n";
  ELSE printf("Incorrect Password!!!\n";


COFF ꥪ 䠩.
~~~~~~~~~~~~~~~~~~~~~~

    COFF ଠ ꥪ 䠩 ন ⮫쪮  ணࠬ 
Windows.  ⮡  ᣥ஢ ꥪ 䠩  ଠ COFF 㦭 
筮  権  ப,  室  ᮧ
ꥪ⭮ 䠩 Windows,   /COFF.

    ꥪ 䠩 ଠ COFF    ᢮ ஥ ४⨢
#include. ਬ:

#include "filename.obj"

     䠩   ७ *.obj.   ꥪ 䠩 
⮫쪮  ஥  Windows.   㭪権  ⮣ ꥪ⭮ 䠩,
묨   ᯮ짮, ⥫쭮 ᤥ .


४⨢ #define.
~~~~~~~~~~~~~~~~~~~

      ४⨢ #define  C--  뫮 ।: 
ᥬ, ᫮ ࠦ (஥ ᥣ   ᫮ ⠭)
 ப ⠭.    ⮩ ४⨢ ७.

    ࠦ, । १ #define,  ८।:

#define WORD word
#define VERSION 1
 . . .
#define WORD dword
#define VERSION 2

     । ⮩ 䨪:

#define WORD
#define VERSION

     䨪 ।塞 १ #define   㬥:

#define SQR( v )         v * v
#define AREA( r , a )    2 * SQR ( r ) * a

 main ( )
{
  AX = AREA ( BX , CX ) ;
}

     ᣥ ⠪ :

test.c-- 6: AX = AREA ( BX , CX ) ;
0100 B80200                   mov     ax,2
0103 F7E3                     mul     bx
0105 F7E3                     mul     bx
0107 F7E1                     mul     cx
0109 C3                       ret

     #define  㬥⠬   ᨭ⠪  易⥫ ᫮:
    1 - 뢠 ᪮  ᯨ᪮ 㬥⮢ '('   ࠧ 
䨪஬  ஡.
    2 - ࠢ  #define 稭 ᫥ ᨬ 뢠 ᪮
')'  稢 ᨬ 室   ப ( 13).

      ࠦ,  ᪮쪮 ப,  ᯮ짮
ᨬ '\'  ⢥ ᨬ த ப.

    ᫨  室 । 䨪, 騩  ᪮쪨
ᥬ,   ࠬ஢,  室 易⥫쭮 ᫥ 
䨪 ⠢  㣫 ᪮:

int i,j;
#define ADDVAR( )    i + j

    ᫨    #define  ᪮,     몠 ,
  ਬ ⮫쪮  ᥬ,  ⠢ ᥬ 맮
ᮮ饭  訡.  ᯮ짮 ⠪ 䨪    ᪮,
⠪   :

  AX = ADDVAR ( ) ;
  BX = ADDVAR + 1 ;

      ४⨢ #define ॡ    
४⨢ #undef  #ifdef/ifndef.   뫨 ࠭  ᯨ᪠
१ࢨ஢ ᫮:  FALSE, TRUE, __SECOND__, __MINUTE__, __HOUR__,
__DAY__, __MONTH__, __YEAR__, __WEEKDAY__, __VER1__, __VER2__", __COMPILER__,
__DATESTR__, __DATE__, __TIME__.    ⠭ ⥯ ⮬᪨
 ஬ १ #define.       㤠.


४⨢ #undef.
~~~~~~~~~~~~~~~~~~

    ४⨢ #undef  㤠 (ࠧ묥뢠) ⮫쪮 䨪
 १ #define.


४⨢ #ifdef/ifndef.
~~~~~~~~~~~~~~~~~~~~~~~~~

    ᫨ 祭 ஢塞 䨪 ࠢ ,  १⮬
ਬ  ⮬ 䨪 ४⨢ #ifdef/ifndef 㤥 ᮮ⢥⢥
TRUE/FALSE.   뫮 FALSE/TRUE.


४⨢ #inline.
~~~~~~~~~~~~~~~~~~~

    ४⨢ #inline ਭ  祭 - TRUE  FALSE, 
।﫨  ᪨ 㭪権,   inline.   TRUE
 㭪樨 ⠢﫨  ,   FALSE  맮 㭪樨.  ᫨
४⨢ #inline  ᯮ짮,   㭪樨  ⨬樨 
᪮ ⠢﫨  ,   ⨬樨  ࠧ  맮.

      ४⨢ #inline   ﭨ - AUTO.   ०
 ᭮  㬮砭.   ⮬ 㭪樨  ᥡ, ⠪  
४⨢ #inline  ᯮ짮 ࠭, ..  ⨬樨  ᪮
㭪樨  ⠢,   ⨬樨  ࠧ 㤥  
맮.


Unicode ப.
~~~~~~~~~~~~~~~~

     ⮣ ⮡ ப 뫠 ࠭  ணࠬ  ଠ unicode, ।
⮩ ப   䨪  ᨬ 'L'. ਬ:

char string = L"This unicode string";

    ⨬ ࠭稢 প unicode ப ஬.  樨 
⠪ ப (஢, ࠢ, 뢮  ࠭...)  
묨 㭪ﬨ,    ।⮨ .


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

     sizeof    ࠭: __CODESIZE, __DATASIZE,
__POSTSIZE, __STACKSIZE,  ᮮ⢥⢥  ࠧ ,
樠஢ , 樠஢   ⥪ 㥬
ணࠬ.     ⠭ 㯭  ᫮  
㣮   ᫮묨 ⠭⠬.    権 㤥 ࠭ 
ணࠬ    ᫮ 祭. ਬ:

  sizeCOMfile = sizeof(__CODESIZE) + sizeof(__DATASIZE);

    ࠭ sizeof ⥯     ᪮:

int sizeCOMfile = sizeof __CODESIZE + sizeof __DATASIZE;

    : ⠭ '__sizepostarea'  ஬ 
ন.  ᫨   ᯮ짮  ᢮ ணࠬ,   室
  ࠦ 'sizeof (__POSTSIZE)'.


 ᨭ⠪   ⮪.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ⪨ ⫨砫   ⥬,   ᠫ
⮫쪮 訬 㪢.    ⪨   묨 㪢.
  ⮣, ⮡ ,   ⪠  쭮, । 
  㪠 䨪 - ᨬ '@'.   䨪   ⮫쪮
।  ᠬ ⪨.  ᯮ짮  ⠪ 쭮 ⪨ 㦭 
⮣ 䨪. ਬ:

void proc()
{
  . . .
  goto local_label;
  . . .
@ local_label:
  . . .
}


祢 ᫮ 'uses'.
~~~~~~~~~~~~~~~~~~~~~~~

    祢 ᫮ 'uses' ᯮ    । 㭪権
 ।  ᯨ᮪ ॣ஢,   ᯮ짮 ⮩
㭪樥.   ᨬ  ⮣, ᯮ 'uses'   㭪樨
   ।,   㭪樮쭮 ࠧ .

      㭪樨 祢 ᫮ 'uses' ।  ᯨ᮪
ॣ஢,   㭪 ࠧ.   ᯨ᮪   'uses' 
 祭  㣫 ᪮,  ᯮ  ᯨ᪮ ࠬ஢
㭪樨  騬 ';'.  ਬ:

void proc (int param) (uses EAX,ECX);

      ࠧ  ⮩,  ஡.  ᫨  㭪
ࠧ蠥  ॣ,   ᯨ᪠  ॣ஢  ᯮ짮
㣮 祢 ᫮ - 'uses allregs'.

     㬮砭, ᫨  㭪樨      㪠
ᯨ᮪ ࠧ蠥 ॣ஢, ਭ,  㭪 ࠧ蠥 
ॣ.  ᪫祭 ⠢ 㭪樨 Windows API.    ਭ, 
 ࠧ  ॣ ஬ EBX, EDI, ESI.

     । 㭪樨 祢 ᫮ 'uses' । ᯨ᮪ ॣ஢,
  ࠭  ⥪,   襭 㭪樨 
⠭.   ᯨ᮪  ᯮ ࠧ ᫥  㭪樨 
ᯨ᪮ ࠬ஢.    ᯨ᮪  㣫 ᪮ 易⥫쭮.
 ॣ஢  ᯨ᪥ ࠧ ஡  묨.   ⮣ ⮡
࠭  ॣ,  ᯮ짮 祢 ᫮ 'allregs'.  
࠭  ⠭  ॣ஢  㤥 ᯮ짮
ᥬ 樨 PUSHA(D)/POPA(D).  ਬ:

void proc (int param)
uses EBX ECX
int localvar;
{
int localvar2;
  EBX=param;
  . . .
}

    ᫨  㤥  㭪 ᥬ୮ 樥 'ret',  
ॣ   ⠭  ⥪,   ணࠬ 㤥 ࠡ
ࠢ쭮.


ᯮ짮  ६ 㣨 㭪権.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᯮ짮  ६ 㣨 㭪権  ⮫쪮 
inline-㭪 (inline-㭪樨  ,    ନ ᢮
⥪      襭 㭪樨).

     ⮣ ⮡ 饭   ६ 㣨 㭪権 뫮
४, inline-㭪樨     ६ 
ࠬ஢ 㭪樨, 筮 ⠪ ,    㭪樨  ६
ன  ᯮ짮. ਬ:

void proc (int param)
uses EBX ECX
int localvar;
{
int localvar2;
  EBX=param;
  proc2();
  . . .
}

void proc2 (int param)
inline
int localvar;
{
int localvar2;
  localvar=param;
  $ret
}

     ⠪ inline-㭪樨  ᯮ짮 祢 ᫮ 'uses', 
  ६ 樠஢ .   ⠪
㭪樨  ᥬ୮ 樥 'ret'.


४⨢ #print.
~~~~~~~~~~~~~~~~~~

    ४⨢ #print, ᫨   室 ᫮ 'error', ᫥ 뢮 
࠭ ଠ樮 ᮮ饭 蠥 ࠡ    訡
10. ४⨢ #print  ᫥騩 ଠ:

  #print [error] string or number


४⨢ #ifdef #ifndef.
~~~~~~~~~~~~~~~~~~~~~~~~~~

    ४⨢ #ifdef  #ifndef ন 樨 ࠢ  ⠭.
ਬ:

  #define VERSION 1
  . . .
  #ifdef VERSION < 2
  . . .
  #else
  . . .
  #endif

      ࠦ ࠢ   ⠢ ⠭
ࠦ. ࠢ    ⮫쪮 ⠭⮩.


 ⨯ ᮢ.
~~~~~~~~~~~~~~~~~~~~~

        ᯮ짮 , ⫨ 
⠭, ⨯ ᮢ.   ⮣  䠩 ᮢ  室
 ப ᫥饣 ଠ:

  id_name new_type "filename"

  id_name    - 䨪 ,  ਭ ஢  ⥪⮢
               祭.
  new_type   - ஢ 祭  ⨯ ᮢ.  ⠭ ⨯
	       ᮢ, ন ஬,  祭  1 
               22.
  "filename" -  䠩,  ஬ 室 ଠ, ।塞 ⨬
               ᮬ.

    ਬ ᯮ짮, ।塞 짮⥫ , 
ᬮ  䠩 control.zip.


Obj-䠩  ணࠬ  Windows.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᯮ ⠭ 祩 /obj  /w32   ꥪ 䠩,
 ⮬, ᯮ 騪,  ᮥ  㣨 ꥪ묨
䠩  ⥪  ணࠬ  Windows.

    騪  㬮砭 ᮧ ᥪ   ਡ⠬ ⮫쪮 ⥭.
 C--    樠஢     
⮬   室   . ⮬  室 㤥
ਫ ᨫ, ⮡  ᥪ   ਡ⠬ ⥭-. ᫨
   ᯮ tlink32.exe,   ⮣  室 㤥
ᮧ 䠩  ७ *.def,   易⥫쭮 ᮤঠ
ப:

SECTIONS
    .text READ WRITE

     ⮣ def-䠩 ⮬  㤥 㪠   ப tlink32:

tlink32 *.obj [*.lib],,,,*.def


   ࠡ  ᠬ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    뤥    ⥯  ஬ 'new',  稢
    ⥬, ।   ⮣ . ᫨
     ,   뤥 
 頥   'new'.

      ᯥ樠쭠 楤   ,  
樠஢   ஢ 㣨 ⮢⥫ ⢨ 
쭥襩 ࠡ .   । 室 
 ࠡ ࠬ.    ᪮쪮 ࠭祭:

 -    ⠪ ,    .
 -    㪠뢠 ⨯   䨪.
 - ⠪   'new'  C--  ஢, 뫠  뤥 
   樮 ⥬,    ⥫쭮 ᤥ  ஢.
 -   易⥫쭮  ⮬ ६ 'this'.

     ਬ ᨭ⠪   ᯮ짮 :

struct info
{
  info (int num); // 塞   info, ਭ饣 
                  // ࠬ.
  int number;
};

info::info (int num)
{
  IF ( this ) {
    number = num ;
  }
  return this;
}

  'new'  ᫥騩 ᨭ⠪:

  var = new info ( 5 );

     뢠 ⮬᪨ ஬ 'new'. ᫨  뤥
    ⥪  १ࢨ   ⥫ ணࠬ, 
ᯮ짮  'new'  室.  ⮬ 砥  
맢    楤  :

void proc()
{
info s1; //뤥塞     ⥪
  s1.info ( 5 ); //뢠 
 ...
}

    ᫨   ᫥ 㣨   ᢮ ࠬ, 
樠஢       C++, 㪠 ᯨ᮪
᫥㥬 ஢ १   । . 
⫨稨  C++  ᯨ᮪ 易⥫쭮  稢 窮  ⮩
';'.

info::info (int num)
: info2 (int num);
{
  IF ( this ) {
    number = num ;
  }
  return this;
}

      樠஢ ᫥  맮  
᭮ .

     ⮣ ⮡ ᢮  뤥 ஬ 'new' 
 'delete',  ᭠砫 뢠 ,  ⥬ ᢮
 . ᫨     ,   'delete'
 ᢮ .

      ᯥ樠쭠 楤   ,  
஢ ⮢⥫ ࠡ । 㭨⮦ .  
 ᪮쪮 ࠭祭:

 -    ⠪ ,    ,   砫 
     ᨬ '~'.
 -    㪠뢠 ⨯   䨪.
 -     ࠬ஢.
 -  뢠 ⮫쪮 ⮬᪨,   맢  
    楤 .

     ਬ ᨭ⠪   ᯮ짮   :

struct info
{
  info (int num); // 塞   info, ਭ饣 
                  // ࠬ.
  ~info();	//塞 
  int number;
};

info::info (int num)
{
  IF ( this ) {
    number = num ;
    WRITESTR("Create new class\n");
  }
  return this;
}

info::~info ()
{
  WRITESTR("Release class\n");
}

    ᫨    뤥  ⥪,   襭 楤
㤥 ⮬᪨ 맢 .   ⠫  맮
   ⢫ ⮫쪮 ஬ 'delete'. ਬ
ᯮ짮  'delete':

void proc ()
{
info s1; //뤥塞     ⥪
word w1; //६     饩 
  s1.info ( 5 ); //뢠 
  w1 = new info (4); //뤥塞   뢠 
  delete s1; //뢠     ⥪
  s1.info ( 3 ); //᭮ ⨢㥬   ⥪
  delete w1 info; //뢠   ᢮   
                  //।塞 
}

     'delete'   ᮧ    'new',  C--
  ன 易⥫ ࠬ -     ਬ
 .

    ᫨   ᫥ 㣨 ,  맮 ஢  
ᮢ  ⮬᪨ ᣥ஢ ஬. ᫨   
,  ᫥   ,  
⮬᪨ ᣥ 楤 .

     ࠡ ஢ 'new'  'delete'  室 㤥  
᢮ ஥  䠩 class.h--,    ਬ஬
ᯮ짮  ஢ 室  ⮬ 娢.


⨬ ୮ 㧪 ॣ஢.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     ᬮ५ ⨭ 㥬 ஬ , ୮, ⨫
,    ॣ ந ᫥ ࠦ, ஥
᪮쪨 ﬨ ࠭, 㦥 뫮 ᫥    㣮 ॣ.
 ணࠬ 㬥 ८࣠뢠 ᢮ 室 䠩 ⠪, ⮡
⠪ 権 뫮   ,    室  ६. 
 㤥 ᫥  ⥬,  뫮 ᠭ  ॣ  ᫨ 
㦨,   ॣ   ,  㦥 뫮 ᠭ   
㣮 ॣ,  ,  ய ⠪ , 
⥫쭮  .

     堭 ⨬樨   ॠ   ꥬ  ⮬
  樨,   ய - .  쭥襬
 ⮤ ⨬樨 㤥 ᮢ襭⢮. ᫨  㦨, 
  - 樨  ⨬஢ ,  ᮮ  ⮬ .
 砨 (ய  ⨬஢)  .  樨
   ,  ᮤন ॣ 㦥   㤥
 ⨬.  ⠪  易⥫쭮 ᮮ頩 .

    ᫨    ஢  ⮤ ⨬樨     
 ६,  樥  ப /oir-  ⪫ 
⨬.


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

       ப  /b32,   32-   直
.  㬮砭, ᣥ஢  㤥 ஥  㫥
⮢ . ᫨  室 㣮 ⮢ ,   
㪠   ४⨢ #imagebase startaddress    樨
 ப /wib=startaddress.  㪠뢠 ⮢  
㪠 ⨯ 㥬 䠩.   ᣥ  
㫥 .

     樨 32-⭮ ୮ 䠩,  䠩 startup.h--
஬  ᯮ.


맮 楤    ॣ  ६.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     C--   맮 楤  , 室饬 
ॣ.   ⮬ ࠬ ⮩ 楤 ।  Windows
ணࠬ  ᮮ⢥⢨  ⨯ 맮 'stdcall'   ⠫ ணࠬ 
ᮮ⢥⢨  ⨯ 맮 'pascal'.  , ஬ , ᯮ㥬 
㬮砭, ⨯,    㣮 ⨯ । ࠬ஢:

  (E)AX fastcall (par1,par2);
  (E)AX cdecl (par1,par2);
  (E)AX stdcall (par1,par2);
  (E)AX pascal (par1,par2);

     ᯮ짮 ⨯ 맮 楤 'fastcall',  ⥫,
⮡ । 楤 ࠬ  ࠧ訫  뢠
楤.   ⮬ ⨯ 맮 楤 ࠬ । ᫥騬
ࠧ: 1- - AX, 2- - BX, 3- - CX ...

      ࠧ   맮 楤   室饬 
६.    맮 楤  ⠪ ਬ 䨪
ᯮᮡ । ࠬ஢:

unsigned int var;  //६,  ன 室  楤
. . .
  var cdecl (par1,par2);  // 맮 楤,  ன 室 
                          // ६ 'var'  ।祩  ࠬ஢ 
                          // ᮮ⢥⢨  ⨯ 'cdecl'


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

      ப ⠭,  㬮砭,  ᨬ  
,   ਧ  ⥪⮢ ப - ନ஬.
  ஢ ப ⠭  ନ  
ᨬ '$'  ⢥ ନ.   ⮣   ப ⠭
 㪠 㦭  䨪.  -- ন ᫥騥 䨪:

   䨪|ନ
  ------------------
    'z'   |  0
    '$'   |  $
    'n'   | 

    䨪  ࠧ  ᨬ  窨  ஡. ਬ:

    AX = "test"n; //  ப  㤥  ନ
    BX = "test 2"$; //   ⮩ ப 㤥 ନ஬ ᨬ '$'

    ᮫쭠   ন   䨪,  稨
  ⢫ ४஢ ப ⠭.

   䨪|४஢
  -----------------------
    'o'   | OEM  Windows
    'w'   | Windows  OEM


祭 ⠡ .
~~~~~~~~~~~~~~~~~~~~~~~~~~~

      筮 ⮨  ᢮ ।   ⠡. 
⠡ LookUp Table  Import Address Table ᮫⭮ .

    樥  ப /WSI   ⠢  ஢
⮫쪮      ⠡ ( ⮫쪮 Import
Address Table).  ᠬ     ⭠ ⠡ ,
 ਢ,   ,  ᮧ  ⭮ 室
䠩.


 䠩  Menuet OS.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ᯮ塞 䠩  樮 ⥬ Menuet  
᫥饣 ଠ:

char  os_name[8]
dword os_version
dword start_addr
dword size_img
dword alloc_mem
dword esp_reg
dword I_Param
dword I_Icon

    os_name ᥣ ᮤন ப 'MENUET01'.

    os_version -  C--    ᥣ 뢠 1.

    start_addr ᮤন  窨 室  ணࠬ.

    size_img ᮤন ࠧ 䠩.

    aloc_mem । ࠧ  뤥塞 樮 ⥬
    ணࠬ.  C--    祭 塞 
    㫥:

      aloc_mem = align on 16 (size_img + size_post + size_stack)

    esp_reg । 設 ⥪.  C-- ⠭ 
    祭   뤥 ணࠬ .

    I_Param ᮤন   ࠧ஬ 256 ,   뢠
    ࠬ । ணࠬ  ᪥.   ᮧ ᫨
      ᢮ ணࠬ 㪠 ४⨢ #argc TRUE  #parsecommandline
    TRUE,   I_Param ⠭  0.

    I_Icon ஬   ন  ᥣ ⠭  0.

     ᮧ ணࠬ  MeOS   ப  C-- 
  '/meos'.  樨  ⨬ 箬 ।
䨪 __MEOS__,   ᯮ짮  ᮧ ⥪.
 ন  ⮩ 樮 ⥬ ७ 㭪樨:
ATEXIT(), EXIT(), PARAMCOUNT(), PARAMSTR().

     䠩 startup.h--   ࠧ  ப, 堭
ATEXIT  맮 襭 ணࠬ  MeOS. ᫨  樨 ᯮ
  ப '/j0'  ४⨢ '#jumptomain NONE',  䠩
startup.h-- ஬  ᯮ.


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

     䠩 startup.h--, ஬ প MeOS, ९ᠭ  ࠧ
 ப.   16- ० 樨  , 
室   ணࠬ ࠧ  ப  ⮬ 
 䠩.   ⨢樨 ⮣ ࠧ   砫 㥬 䠩
। 䨪 _USELONGNAME_    ப 㪠 
'/D=_USELONGNAME_'.

    ஬ ⮣  䠩 startup.h-- 뭥ᥭ   楤
'PARAMCOUNT()'  'PARAMSTR()'.


⨩  ॠ樨  'switch/SWITCH'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      'switch/SWITCH'   ॠ  ᯮᮡ:
⮤ ᫥⥫쭮 ࠢ 祭 'case'  ⠡ ⮤.

     ⮤  ᠬ ,   ᯮ짮 ࠭祭
⥬,  ⠡   祭 让 ࠧ.

     ⮤  ஬  묨 : ᮧ 
⠡ - ⠡ ᮢ 室  ⥫  'switch/SWITCH'  ⠡
祭 'case'.   楤 ࠢ 室 祭 
祭ﬨ  ன ⠡.  ᫨  ᮢ,   室 
  ன ⠡.   ⮤  ᠬ ,  
讬 ᫥ 祭 'case' ( 15)  ⠭ ᠬ .



  ஢ ࠢ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    , ᫨   ࠢ 㪠 ᫮ 祭, ਬ:

    WHILE (1) { code }

      ஢  ࠢ ⮣ ᫮ 祭  㫥.
 ᫨ ᫮ 祭 ⫨筮   ࠧ    
஬ ࠢ.  ᫨  ᫮ 祭 ࠢ ,   ,
᫥騩  ஬ ࠢ, 㤥 ய饭.    ࠢ
 ⥯  祣  㪠뢠:

   WHILE () { code }

     ⮬ 砥 १ 樨 ࠢ ⠥ TRUE  
ࠧ  .

      ⢠  ᯮ짮 ⮫쪮   
ࠢ (  ᯮ짮  ᪨ ꥤ ᫮).

    ᫨  樨 ࠢ  ࠢ ॣ (E)CX  㫥, 
  ᯮ짮 ᥬ  'jcxz',  
   .



 ᥣ ६.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ६  㬮砭 ᯮ ᥣ DS,  
 ᥣ SS.    ६  㪠뢠, ⭮⥫쭮
 ᥣ⭮ ॣ  ந .   ᬥ
ॣ ᥣ  । ६ 㪠  ॣ  
稥, ਬ:

   ES:var=1;

