                   ⪨    ᥬ
                   (஢ ᥩ  ࠤ)

                   .:[ 饣 祭]:.

   饣 祭:
  AX, BX, CX, DX - ⨯ Word (,  )
  祭 ⨯ Word ("᫮")    0  65535.
      - 襣  襣:
  *L  *H  (Lo (訩)  Hi (訩) )
   ᨬ "*" ࢠ 㪢   ॣ஢ 饣 祭.
     0  255.
  ਬ:
  DX -> DH, DL
  AX -> AH, AL

  樨:

  Assembler    襣 :    Pascal

  mov a, b    ᮪.  MOVE - ᫠   a:=b
  add a, b    ADD -               a:=a+b
  sub a, b    SUB -                 a:=a-b

  ਬ砭: a - ॣ; b - ॣ  ᫮.

  ਬ:

  mov  AX,  13h
  sub CX, 001010b
  add DX, 10d
  mov DX, BX

  h - ᮪饭  HEX. 砥,  ଠ ᫠ ⭠
      祭: 0 1 2 3 4 5 6 7 8 9 A B C D E F
      ᫨  ᫮  稭    㪢:  F0h,  ⠢ । 㪢
        0  -  0F0h!    㤥  ਭ   騩
      ॣ.
  b - ᮪饭  BINARY. 砥,  ଠ ᫠ 
      祭: 0 1
  d - ᮪饭  DEC. 砥,  ଠ ᫠ 
      祭: 0 1 2 3 4 5 6 7 8 9
  o - ᮪饭  OCT. 砥,  ଠ ᫠ ᬥ.
      祭: 0 1 2 3 4 5 6 7
   Pascal ᫨ 㪢 ⥬  㪠, ਬ:
  mov DX, 15
   ᫮ ⠥ .    ᪮...
      ...


                       .:[࣠ 横]:.

   ࣠樨 横  ॣ CX 뫠 祭, ஥ ࠢ
  室  横.  ᮧ ⪠,   ᨬ
"@",  ⪨    ; 横 稢 ஬
LOOP  ()   ⪮.   蠣 横  ॣ CX 㤥
⭨    (    !!!    :
SUB CX, 1).  CX ⠭ ࠢ  - 横 .
  ਬ:

  mov cx, 100d
  @rep:
       - - -
    ⥫ 横
       - - -
  Loop @rep

    ࠧ  横   ᫥ 横 ॣ CX 㤥 ࠢ
.
  !     CX   !
  ᫨  ⠪    POP  PUSH (. ).


                      .:[᪨ ]:.

  ᪨ :
  and a, b
  or  a, b
  xor a, b
  not a
  a -   易⥫쭮 ॣ஬.
  b - ॣ  ᫮.
  ᪨   樨      ⠪        㣨  몠
ணࠬ஢ (뫮  ࠭, ᫨  ⢮  㣮).

  ਬ砭:
  㬥 ⮢  :

    : 7 6 5 4 3 2 1 0
  祭   : 0 1 0 0 0 1 1 0
  筮 祭 ᫠: 70


                        .:[樨 ᤢ]:.

  樨 ᤢ:

  shl a, b \
             - sh  SHift (ᤢ): l - Left (); r - Right (ࠢ)
  shr a, b /

  a - ॣ
  b - ᫮  !!! ॣ CL !!! 㣨 ॣ - 饭.


  ୠ ࠡ  ९ 祡 ਠ:

    ணࠬ,    ॢ稢   ᫥.  ,
᫨   ᫮ 128,  ⭮ 㤥 1.    뢮 ᫠
  ᯮ짮  楤  ReadLn   WriteLn. 맮 Assembler' 
Turbo Pascal ॠ   ஢ ASM  END. ਬ:

Var B: Byte;
Begin
  Write(' ᫮: ');
  ReadLn(B);
  Asm
    mov ax, {  ᯮ짮  㣮 ॣ: BX, CX, DX }
    { - - - }
    { ணࠬ  ॢ⮢ ᫠ }
    { - - - }
    mov B, ax
  End;
  WriteLn('ॢ⮥ ᫮: ', B);
  ReadLn;
End.  {    ⫠   Register:  F10 ⥬ 
Debug->Register;   ᫨   -     㤥  ࠡ      
᫥   ॣ஢. }
    "5".  ⮦ ᠬ,   ᫮ (word).


       .:[; ࣠, , ࠡ  ᨢ]:.

   - த ᭮ ࠭⢮.
   -  .
  ~~~~

    16
   2   = 64Kb

   !!!  - ᮪  ࠧ஬   64Kb (65535 ) !!!

   20  ᫠  ᮢ     1Mb.
   DS,  CS,  SS,  ES - ᥣ ॣ. ࠭  ࠣ 
                       ᥣ.
   SI, DI, SP, BP, IP -  ॣ. ࠭ ᬥ饭.
   ࠣ - 砥  ᥡ 16  (   ࠣ).

    Assembler':
   OffSet - ᬥ饭  砫 ࠣ (ᥣ).
   Seg -  ࠣ (ᥣ).

   (Seg*16)+OffSet -   .

   Seg:Ofs -  .

   ਬ:
   mov [ds:di], ax
   mov dx, [ds:di]
   mov [ds:di], cl

  ᫨  ॣ,       ண  ⮢ (*L
  *H),    㤥  ⠭/ᠭ , ᫨ 塠 (*X), 
 ⠭/   (᫮).

  ਬ  Assembler':
  mov ax, Seg Arry
  mov cx, OffSet Arry
  Arry - - ᨢ (  ६; ⮫쪮 - 祬?).


  ୠ ࠡ  ९ 祡 ਠ:

    ணࠬ   ॢ稢 ᫠  ᨢ. ਬ
 ᨢ:
1 2 5 7 9 4 0 3 7 4
  室:
4 7 3 0 4 9 7 5 2 1
  ਬ砭:
    ᥣ ॣ DS  ᫠ ࠧ ᥣ ᨢ. 
㦭  १  ॣ 饣 祭:
  mov cx, Seg Arry
  mov ds, cx
  ⪠ ⪮஢ :
  mov ds, Seg Arry
  맮 訡  ணࠬ  㤥 ⪮஢.
  ᨢ    砩 ࠧ.  ᨢ -   10
ᥫ.

                        .:[ 䫠]:.

   z (zero - ) = 1 ᫨ १ ᫥ 樨 ࠢ 0.
   ਬ:
   mov ax, 5h
   sub ax, 5h
    䫠 z 㤥 ࠢ 1.
   s (sign  -  ) = ࠢ 襬  ᫥ 樨, ࠢ 1
   ᫨ 訩  1  0 .
   ਬ:
   mov ax, 5h
   sub ax, 8h
    䫠 s 㤥 ࠢ 1.
     s  㤥  ࠢ 0 ⮣   㬥蠥  ࠢ
    襥 ᫮.
   c  (carry  - ७) =  ᤢ (祧訩)  ᫥
   樨 sh*


                 .:[ ᫮ 室]:.

  JMP @ ⪨ (JMP  JuMP - 릮).
  ਬ:
  jmp @metka
  - - -
  @metka:


                  .:[ ᫮ 室]:.

  J* (J - ⮦  Jump).
  ਬ:  Jc,  Js,  Jz  -  ३  , ᫨ 䫠 s, c  z
  ᮮ⢥ᢥ, ࠢ 1.
  Jn* (n - not)
  ਬ: Jnz, Jns - ३  , ᫨ 䫠 0 (..  1).

  cmp a, b
  a - ॣ.
  b - ᫮  ॣ.
  cmp - CoMPare (ࠢ)
      宦   sub, ⮫쪮 ⠢ ॣ,  ண
⭨,  ⠪     ,   ⮬  뢠 䫠. 
:
     祭   ਩
   z        1       ᫨ a=b
   z        0            a<>b
   s        0            a>=b
   s        1            a<b

   test a, b
   a - ॣ.
   b - ᫮  ॣ.
   test - ஢
     宦  and, ⮫쪮 ⠢ ॣ a,  ஭.
 뢠:
     祭   ਩
   z        1       ᫨ (a and b)=1
   z        0            (a and b)=0

  ਬ:

  Pascal:         Assembler:

  If A<B Then     mov ax, A
    ...           cmp ax, B
                  Js @istina
                    - - -
                  @istina:
                    ...

  If A=B Then     mov ax, A
    ...           cmp ax, B
                  Jz @istina
                    - - -
                  @istina:
                    ...

  If A>B Then     mov ax, A
    ...           cmp ax, B
                  Js @loj     { ஢塞  A>=B }
                  Jnz @istina { ஢塞  A<>B }
                    - - -
                  @istina:
                    ...

   ࠧ 横 Loop:

  mov cx, 100h
  @rep:

  ⥫ 横

  loop @rep

  ⥭:

  mov cx, 100h
  @rep2:

  ⥫ 横

  sub cx, 1
  Jnz @rep2

  ﭨ 䫠  㧭  ⮣   Register.

       ୠ ࠡ  ९ 祡 ਠ:

    ணࠬ,      ᨢ ᨬ  
뢮      ࠭.  ⮣ ⮡ 뢥   
 祭  ६ Turbo Pascal.
    ணࠬ,           ᨢ  N
⮢  ⠬  (  ஢  ⮢     
楤 Turbo Pascal).
    "5".
    ணࠬ  ஢  ᨢ  ""    ᥬ.
  ஭  (    Turbo Pascal) ६, ஬
ᨢ ᥫ,  ᯮ짮.
   ⥫ .
   ணࠬ,   ᫥饥:
   ᨢ X ᥫ ⨯ Byte 騩  8 ⮢  筮 ⠪
 ᨢ Y. ᨢ X  砩묨 ᫠  ९뢠 
ᨢ Y ᫥騬 ࠧ:

  X = 00101010b, 01101110, .....
      |         /
  Y = .<------/

   :

  X = a7 a6 a5 a4 a3 a2 a1 a0   ,  b7 b6 b5 b4 b3 b2 b1 b0 , ...

  Y = a7 b7 c7 d7 e7 f7 g7 h7   ,  a6 b6 c6 d6 e6 f6 g6 h6 , ...

   a, b, c, d, e, f, g, h - 浪  ⮢;
  7, 6, 5, 4, 3, 2, 1, 0 -  ⮢   .

          ࢮ   ᨢ X ⠭ 
⮬  ࢮ  ᨢ Y,   ண  ᨢ
X  ⠭    ⮬      ᨢ  Y    .. 
१      ᨢ Y (뢥  ࠭),  
ࢮ    ᮤন      ⮢  ᨢ X, ன
  ᮤন      ⮢  ᨢ  X    ..   
࠭祭:  ஭ ६! ᨢ X  砩
ࠧ.

                       .:[ ணࠬ]:.

  1) .
  2) .
  3) ⥪.

  1)  - ᮤন ᠬ ணࠬ.
  CS - ᥣ ॣ.
  IP -  㪠⥫.
  CS:IP  -  ⥪騩  㪠뢠  ,  ᥩ 㤥
믮. IP 㢥稢    ᫥  믮.
  2)  (DATA) - ࠭ .
  DS - ᥣ .
  SI, DI - .
  DS  SI 易.
  [ds:si]=[si]
  [ds:di]=[di]
  3) ⥪ (STACK) - ࠭ ६ .
  SS - ᥣ ⥪.
  SP - .

  SS  SP 易.
  [ss:sp]=[sp]

   Assembler':

  PUSH A - 頥  ⥪ 㬥 A  㬥蠥 SP  2.
  POP B -   ⥪ 㬥 B  㢥稢 SP  2.

  A - ॣ  ᫮.
  B - ॣ.

  PUSHA -  PUSH All:   ⥪  ॣ.
  POPA -  POP All:   ⥪  ॣ.


                  .:[ ᯮ塞 䠩]:.

                          ᯮ塞 䠩:
                              /        \

                            .EXE     .COM ࠧ 䠩   64Kb!

                Ŀ                  Ŀ<- CS, DS, SS
                  PSP                      PSP  
                Ĵ<- DS             Ĵ
                 CODE                     CODE  
                Ĵ<- CS IP=0         - - - 
                 DATA                     DATA   1 ᥣ
                Ĵ<- SS              - - - 
                 STACK                    STACK 
                <- SP (FFFE)      <- SP


                             뢠.

    Ŀ           (Kb)  ᮤন ⠡
             ஢ 뢠.
    
      ^ ^ ^ ^ ^         0:0-0:03FF -  뢠.
      | | | | |
                        4  - 뢠.
                        4  -  
                        (᫮ (Word)  ᥣ  ᫮  ᬥ饭).

                        ⮣ 256 뢠.

  맮:

  INT .

  ਬ:

  INT 10h  (BIOS (Basic Input Output Sistem) 뢮  )
  (ਬ砭:     設⢠ ਫ;  ࠧ
       ⮣ ⮡ ⠢ ᥫ  뢥 ப
     ⥪⮢  ०.   ஡  ஢મ : 
     稭    ...)

  㭪樨:

-   ०:
  ah = 0h (  ࢨ   AH)
  (mov ah, 0h;      !)

  al =  ०.

  ਬ:

  { 砥 ० 80x25 16 梥⮢ (⥪⮢): }
  mov ah, 0h
  mov al, 3h
  int 10h

  { 砥 ० 320x200 256 梥⮢ (⮫쪮  VGA ): }
  mov ah, 0h
  mov al, 13h
  int 10h

- ६ .
  ah = 2h
  dh = ப (y)
  dl = ⮫ (x)
  bh = ࠭

- 뢮 ᨬ  ਡ⮬.
  ah = 9h
  bh =  ࠭
  cx = ᫮ ७
  al =  ᨬ
  bl = ਡ
  뢮   ,  ᥩ ⮨ .

- ப⪠ .
  ah = 6h
  al = ᫮ ப ப⪨
  ch/cl = ப/⮫ (y/x) 孥  㣫  ப⪨
  dh/dl = ப/⮫ (y/x)  ࠢ 㣫  ப⪨
  bh = ਡ 
  ப稢  ᮤন  ࠭     ⢮ ப
 訥 ப 㪠 ਡ⮬.

- ப⪠ .
  ah = 7h
   ⠫ ॣ  "ப⪥ ".

-  뢮 ᨬ.
  ah = 0Eh
  al =  ᨬ
  뢮 ᨬ  ⮩ 樨  ⮨ .

  㭪樨 뢮 DOS (Disk Operation System) - int 21h

- 뢮 ப.
  ah = 9h
  DS:DX -  ப. ப  稢 ᨬ "$".


                            .

  int 9h -  ࠩ BIOS.
  ன⢮ :

  Ŀ     Ŀ     Ŀ     Ŀ
                                         
             ... 
    ^   ^           ^                           ^
    |   |           |         ---->             |
    |   ASCII    墮                       
           (  ᨬ) (᫥  ᨬ)

             ⮣    뢠
 .

   int 16h - BIOS: ࠡ  ன.

- ⥭ 塠⭮   .
  ah = 0h
  室:
  ah =  
  al = ASCII 
  ਬ砭:  ᫨     (  墮 室 ), 
   (⠭⭠ 㭪 ReadKey  Turbo Pascal').

- ⥭  । .
  ah = 1h
   ॣ  諮 .
  ਬ砭:      ᫨  .
  ᫨   - 뫮 ( ),  䫠 z=0,  1.

- ⥭ ﭨ .
  ah = 2h

  室:
  al =  ﭨ:

  Ŀ
   1  0  1  0  0  0  0  0 
  
    ^   ^   ^   ^   ^   ^   ^   ^
    |   |   |   |   |   |   |   Right Shift
    |   |   |   |   |   |   Left Shift
    |   |   |   |   |   CTRL
    |   |   |   |   ALT
    |   |   |   Scroll Lock
    |   |   Num Lock
    |   Caps Lock
    Insert

  ਬ砭:
  1 - ० (* Lock; Insert)    ; 0 - .

  ஢  㦭()  ()        TEST (. ) 
䫠 z.


                          .:[뢮 ᥫ]:.

  樨:

  Int 21h - DOS

-  ப  .
  ah = 0Ah
  ds:dx = 砫  
           ᮤঠ  ᫮    (᪮쪮)
ᨬ.
   ⠪ ਬ୮ 룫廊 :

  Ŀ
   8  6             #13   
  
    ^   ^                           ^
    |   |                            ENTER () <---------|
    |   ⢮  ᨬ                             |
    ᨬ쭮 - ᨬ,    +   |.

    ࠧ      ࠧ஬ MaxChar+3 . ᫨ 㦥
  ᨬ  ᨬ,      ⨨    
㤥 ஭⥫쭮 ,   ⮬,    .


                    .:[䬥᪨ 樨]:.

  mul - 㬭.

  mul byte (   ॣ ⨯ byte (*L  *H))

   :
  al*byte
     al   ᫮, ஥  㬭.
  ax - १.

  ਬ:
  mov al, 4
  mov cl, 2
  mul cl
   ax = 8.


  mul word (word - *X)
  ax*word
  dx_ax - १ ( DX । ⥬  㬭!!!  㤥
९).
  訥    dx; 訥  ax.

  div - .

  div byte

  ax / byte
  al - 楫 
  ah - ⮪

  div word
  訥    dx; 訥  ax.
  dx_ax / word
  ax - 楫 
  dx - ⮪

       ୠ ࠡ  ९ 祡 ਠ:
    ணࠬ,         ࠭  
५. ESC - 室.
  ९ ணࠬ - 室 ⥯ Shift(!)+ESC.
    ணࠬ,    ॢ    ப   ᫮
(筮),     ⮬  ⭮    ப.      뢮  
⢫   楤 Turbo Pascal'.
    "5".
      ணࠬ       뢮 ப  Assembler'.
  ६  몠 Turbo Pascal  ᯮ짮, ஬ 
 ப!
    ⥫ 業.
        "5", ⮫쪮    뢮 
ᥫ ᤥ   뢮 ᥫ  ⭠筮 .


                      .:[ࠡ⪠ 뢠]:.

    Turbo  Pascal    ࠡ   뢠ﬨ ᯮ ᫥騥
楤 ( DOS):

  Procedure GetIntVec(IntNo: Byte; Var Vector: Pointer);  -   
㪠⥫ Vector  뢠  ஬ IntNo.
  Procedure SetIntVec(IntNo: Byte; Vector: Pointer);    -     
㪠⥫  ஬ IntNo   㪠⥫ Vector.

  楤    Turbo  Pascal,      ""    
஢  易⥫쭮    १ࢨ஢ ᫮
INTERRUPT (뢠).
  ਬ:
  Procedure NewHandler; Interrupt;
  Begin
    - - -
    ⥫ 楤.
    - - -
  End;

                       ࠡ⪨ 뢠:

  1)  饭 ண ࠡ稪 .
  2) 맮 ண ࠡ稪 । .
  3) 맮 ண ࠡ稪 ᫥ .

  筮  뢠    60h-69h  -  ᢮.   Windows ᢮ 
60h-66h ⥫쭮.
  ⥫쭮  ஢,  直 砩,   , 
 ᯮ짮, .   ⠪:

  GetIntVec(VecNo, Vector);
  If Vector<>Nil Then WriteLn(' !')
  Else WriteLn(' ᢮.');

   Assembler':

  call  - 맮 ணࠬ.

  pushf -  䫠 (pushf - PUSH Flags).

  맮 ண ࠡ稪:
  asm
    pushf
    call _ࠡ稪. (Var _ࠡ稪: Pointer).
  end;

  Keep(0);  -        १⭮,  ணࠬ (0 - 
訡).

  ।⥫쭮,  ணࠬ 㦭 뤥 :
{$M $800,0,0}
    ணࠬ       Turbo Pascal'!!! 
᫥饥:  F10 -> Compile -> Destination Disk (᫨ ⠬ ⮨ DISK, 
 MEMORY,   !  );
           F10 -> Compile -> Build
  ⥬  室    DOS   NC/VC/DN  ᪠ 稢訩 .EXE
䠩 ( 㤥  ⠫  யᠭ :
F10  ->  Options  ->  Directories...  -> EXE & TPU Directory (᫨ ⠬
,  䠩   ⥪饬 ⠫, , , 㤮)).


       ୠ ࠡ  ९ 祡 ਠ:

    १  ணࠬ,      ⨨   
  㪠 ᨣ (  ).
    "5".
   ⠪, ⮡  ணࠬ   ॠ஢  ⨥ SHIFT,
CTRL, ALT  㣨 ,  饬 .

  ⭠ ணࠬ (㡫, ⠪   맢 ):

{$M $800,0,0}  {뤥塞   १⭮ ணࠬ}
Uses DOS, CRT;
Const B: Byte = 0;
Var OldVec: Pointer; {  ࠭ ண ࠡ稪 }
Procedure Beep; Interrupt; {  ࠡ稪 }
Begin
  Asm           { 맮 ண ࠡ稪 : }
    pushf
    call oldvec;
  End;  {  ஢塞     ESC. ᫨  - ⠭
 ࠡ稪 (ESC       SHIFT').
  Mem[$0040:$0017]  祭    砥     ah = 2h
㭪樨. }
 If (Mem[$0040:$0017] And 3<>0) And (Port[$60]=1) Then SetIntVec($09, OldVec);
 Asm { 뫠   ?... }
   mov b, 0
   mov ah, 1
   int 16h
   Jz @ext
   mov b, 1
   @ext:
 End;
 If B=1 Then { ...᫨  - 騬 }
   Begin
     Sound(2000);
     Delay(200);
     NoSound;
   End;
End;
Begin { ᭮ ணࠬ }
  GetIntVec($09, OldVec);{  ண ࠡ稪 }
  SetIntVec($09, @Beep); { ⠭  }
  Keep(0); {  ணࠬ १⭮ }
End.


                       .:[ /뢮]:.

     -   (Word). ᥣ ⮢, ⠪   , 
0  65535.

   Assembler':

  in ,  -   .

  out ,  -   .

  ᫨        0  255 (0..0FFh),   
  ன:
  in al, 50h
   祭    ॣ DX:
  mov dx, 0f3dh
  in al, dx

  ᫨  㦭 /   ,  ᯮ al. ᫨
᫮  -  ax.    ⠫  ॣ  -    (Turbo  Pascal,
ਬ, ᪠  訡)!
  Turbo  Pascal  ࠡ⠥  ⠬ १ Port[ ]  ,
 PortW[ ]  ᫮ (W - Word). ਬ:
  B:=Port[$3DA];
  Port[$0FA]:=B;


  3DAh -  ﭨ ᪮ ஫.
    3  ( )  ⭮襭  ࠧ⪥ .  ६
⭮ ⨪쭮 室    ࠢ 1.


                 ஫ ஭ 祢 㡪
                            (20 ॣ஢)

  1)  : 3D4h
             : 3D5h
  2)  ॣ  ᢮ .

  -)  砫쭮 :

     訩  ( 0Ch)
     訩  ( 0dh)

     +80  ன ப

  ⠭ ਧ⠫쭮 ࠧ⪨.
   8h - ⮢.
  ᫥ 4 :
  Ŀ
                             
  
                   \             /
                    \           /
                     \         /
        ࢠ ,  뢮  ࠭

       ୠ ࠡ  ९ 祡 ਠ:

     ணࠬ,     뢠  ᪮  ⨪쭮
ࠧ⪨ .  ᤥ 横 (祭 让)  Assebler' 
      ⢮  襤   ६ ࠧ⮪. 
ᯮ짮 Loop.
   ணࠬ   ஫ ⥪⮢ ࠭.


                             .:[]:.

  cli - (CLose Interrupt)    뢠. ᫥ 믮 ⮩
   ࠡ뢠 뢠.
  sti - (STore  Interrupt)   頥          ᫥
।饩 .
  뢠   뢠  ४    뫪  ७  
६    ( ᪫祭   ⠩).

  rol a, b (Repeat Over Left)
  a - ॣ
  b - cl  ᫮
  ᪨  ᤢ .   shl, ⮫쪮  , 
ய ("ᤢ")  ᠬ ࠢ  0-. ਬ:
    11001010
    ᫥ rol:
    10010101
  ror a, b (Repeat Over Right)
  a - ॣ
  b - cl  ᫮
  ᪨ ᤢ ࠢ. 筮 ।饩 .
  !!! (   r ॢ  Repeat -  ...) !!!

   jmps ⪠ - (JuMP Short) ⪨ 室
       ᯮ, ᫨  ३     81h
(129)  .  ᫨  - jmp.     2 , 
 3  jmp.   ...

                                                          ᯥ 
                                                           -=CHE@TER=-
                                                 祭: 01-01-2004
                                                ࠢ: 28-10-2004
                                web: http://CTPAX-CHEATER.losthost.org
                                               mailto: _CTPAX_@MAIL.RU
