
INVD - 㫨஢ 

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|0F 08     INVD       4        㫨஢ ᥣ          |
-----------------------------------------------------------------

 
--------------

⪠ ७ 
 譥   

ᠭ
--------

ந室 ⪠ ७ ,  뤠 ᯥ樠 横
設, 㪠뢠騩  室 ⪨ 譨 襩.
, 室騥  譨   ⭮ ,
.

塞 䫠
----------------

     

᪫祭 饭 ०
----------------------------------

     

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

ਬ砭
----------

  ᨬ  ॠ樨: ࠧ  Intel
 ॠ뢠  㭪樨 -ࠧ.

⢥⢥  ॠ  ᨣ ⪨ 譥  
 ⭮ ᯥ祭.

     ࠬ    386      ন.
ᯮ짮 , ᮢ⨬  ࠬ 386 . 
ࠧ 3.11. ⭠  "吝"    
⨢  ᬠਢ  ᠭ  WBINVD.

     饭 ஢ ᬠਢ  ࠧ 12.2.

-----------------------------------------------------------------


INVLPG - 㫨஢  TLB

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|0F 01/7   INVLPG   12  砥  㫨஢  TLB     |
|                   ᮢ                                  |
-----------------------------------------------------------------

 
--------------

㫨஢  TLB

ᠭ
--------

 INVLPG ᯮ  㫨஢   
TLB,  ।⠢ ᮡ , ᯮ㥬  ࠭
⮢ ࠭ ⠡. ᫨ TLB ᮤন ⮢
, ⮡ࠦ騩  ࠭ ,   
㤥 祭  ⮢.


塞 䫠
----------------

     

᪫祭 饭 ०
----------------------------------

 ᯮ짮   ࠭-ॣ஢ 
᪫祭 ୮  樨.

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

 ᯮ짮   ࠭-ॣ஢ 
᪫祭 ୮  樨.

ਬ砭
----------

  ᨬ  ॠ樨: ࠧ  Intel
 ॠ뢠  㭪樨 -ࠧ.

  ࠬ 386  ন. ᯮ짮
, ᮢ⨬  ࠬ 386 .  ࠧ 3.11

饭 ஢ ᬠਢ  ࠧ 12.2.

-----------------------------------------------------------------

IRET/IRETD -   뢠

-----------------------------------------------------------------
|            ᫮      ᠭ                      |
|樨              ⠪⮢                                 |
|                      横                                   |
|                                                               |
|CF        IRET        15          뢠          |
|                                (쭨   祭  |
|                                 ⥪ 䫠)               |
|CF        IRET        36          뢠          |
|                                 襬 ஢              |
|                                ਢ஢            |
|CF        IRET        TS+32       뢠,         |
|                                㣠  (NT = 1)         |
|CF        IRETD       15          뢠          |
|                                (쭨   祭  |
|                                 ⥪ 䫠)               |
|CF        IRETD       36          뢠          |
|                                 襬 ஢              |
|                                ਢ஢            |
|CF        IRETD       15          뢠,         |
|                                 ० V86                   |
|CF        IRET        TS+32       뢠,         |
|                                㣠  (NT = 1)         |
-----------------------------------------------------------------

ਬ砭: ਡ 祭 ts  ᫥饩
⠡楩:

-----------------------------------------------------------------
                     |           
         |-------------------------------------------
                     |  TSS i486 |  TSS 80286 |  TSS VM
-----------------------------------------------------------------
 VM/i486/TSS 80286   |     199    |     180     |     177
-----------------------------------------------------------------

 
--------------


IF PE = 0
THEN (*  ॠ ᮢ *)
  IF operandSize = 32 (*  = IRETD *)
  THEN EIP <- Pop();
  ELSE (*  = IRET *)
    IP <- Pop();
  FI;
  CS <- Pop();
  IF OperandSize = 32 (*  = IRETD *)
  THEN EFLAGS <- Pop();
  ELSE (*  = IRET *)
    FLAGS <- Pop();
  FI;
ELSE (* 饭 ० *)
  IF VM = 1
  THEN #GP(0);
  ELSE
    IF NT = 1
    THEN GOTO -;
    ELSE
      IF VM = 1  ࠧ 䫠, 室饬  ⥪
      THEN GOTO ---V86;
      ELSE GOTO -;
      FI;
    FI;
  FI;
FI; ---V86:  (* ࢠ 楤  ० V86 *)
  IF 孨 36 ⮢ ⥪   । ࠭
  THEN #SS(0);
  FI;
  IF 㪠⥫    ࠭  ᥣ THEN #GP(0);
  FI;

  EFLAGS <-   SS:[ESP   +  8];  (*  ⠭  VM  ࢠ
                                    ணࠬ *)
  EIP <- Pop();
  CS <- Pop(); (* CS  ᥡ,   8086, .. VM = 1 *)
   <-   Pop();   (*  祭    ⥪    ३  㦥
                           ⠭ EFLAGS *)
  ६ESP <- Pop();
  ६SS <- Pop();
  ES <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
  DS <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
  FS <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
  GS <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
    SS:ESP <- ६SS:६ESP;

  (*  믮  㠫쭮 ० 8086 *)

-:
  ᬮਬ ᥫ ⭮    TSS, 㥬
    ॣ஬ ⥪饩 ;
        /        祭
               ,  #TS(ᥫ  TSS);
        ࠭ GDT,   #TS(ᥫ 
                                                   TSS);
     AR   TSS,  #TS(ᥫ  TSS);
    TSS  ⢮,  #NP(ᥫ  TSS);
  -    TSS,    ᥫ஬
                           ⭮  ;
  祭 ࢠ   NOT BUSY ( );
  ⥫     । ࠭  ᥣ,
  ELSE #GP(0);

-:
  IF OperandSize = 32
  THEN  ᫮  ⥪    । ࠭ ⥪,
        #SS(0);
  ELSE ஥ ᫮  ⥪    । ࠭ ⥪,
        #SS(0);
  FI;
  RPL ᥫ   CS            >=  CPL,  
                       #GP(ᥫ );
  IF RPL ᥫ  = CPL
  THEN GOTO ----;
  ELSE GOTO ---;
  FI;

----:
  IF OperandSize = 32
  THEN
    孨 12  ⮢    ⥪      । ࠭,
                     #SS(0);
     CS  ( eSP+4)   -,  #
                          #GP(0);
  ELSE
    孨 6   ⮢    ⥪      । ࠭,
                     #SS(0);
     CS  ( eSP+2)   -,  #
                          #GP(0);
  FI;
   ᥫ    ࠭  ⠡ ਯ஢,
           #GP(ᥫ );
   AR       ᥣ,   #GP(ᥫ
          );
  IF -ଭ
  THEN DPL  ᥣ   = CPL;
  ELSE #GP(ᥫ );
  FI;
  IF ଭ
  THEN DPL    ᥣ        <=   CPL,   
           #GP(ᥫ );
  ⥫     । ࠭  ᥣ,
            #GP(0);
  FI;
  IF OperandSize = 32
  THEN
    㧪 CS:IP  ⥪;
    㧪 ॣ CS ਯ஬   ᥣ;
    㧪 EFLAGS 쨬  ᫮  ⥪;
    ६ eSP  12;
  ELSE
    㧪 ॣ CS ਯ஬   ᥣ;
    㧪 EFLAGS 쨬 ᫮  ⥪;
    ६ eSP  6;
  FI;

---:
  IF OperandSize = 32
  THEN 孨 20 ⮢    ⥪      । ࠭,
                     #SS(0);
  ELSE 孨 10 ⮢    ⥪      । ࠭,
                     #SS(0);
  FI;
  ᬮਬ ᥫ CS   易   ਯ:
       -,  #GP(0);
     ᥫ    ࠭  ⠡ ਯ஢,
          ELSE #GP(ᥫ );
     AR       ᥣ,   #GP(ᥫ
          );
    IF -ଭ
    THEN DPL  ᥣ   = RPL ᥫ CS;
    ELSE #GP(ᥫ );
    FI;
    IF ଭ
    THEN DPL    ᥣ        > CPL,
    ELSE #GP(ᥫ );
    FI;
      ⢮,  #NP(ᥫ );

  ᬮਬ ᥫ SS   易   ਯ:
       -,  #GP(0);
     ᥫ    ࠭  ⠡ ਯ஢,
          ELSE #GP(ᥫ SS);
    RPL ᥫ   ࠢ RPL ᥫ CS 
          ELSE #GP(ᥫ SS);
     AR     ᥣ , 㯭  ,
           #GP(ᥫ SS);
    DPL ᥣ ⥪   = RPL ᥫ CS ;
    ELSE #GP(ᥫ SS);
    SS  ⢮,  #NP(ᥫ SS);

  ⥫     । ࠭  ᥣ,
            #GP(0);
  IF OperandSize = 32
  THEN
    㧪 CS:EIP  ⥪;
    㧪 EFLAGS 祭ﬨ  (eSP+8);
  ELSE
    㧪 CS:IP  ⥪;
    㧪 FLAGS 祭ﬨ  (eSP+4);
  FI;
  㧪 SS:eSP  ⥪;
  㧪 ॣ CS ਯ஬ CS;
  㧪 ॣ SS ਯ஬ SS;
  FOR   ES, FS, GS  DS
  DO;
    IF ⥪饥 祭 ॣ ⮢୮  譥 ஢;
    THEN 㫥 ॣ  ⪠ 䫠 ⮢୮;
    FI;
    ⮡     ⮢,    ⠭    ॣ    
                 㤮⢮ ᫥騬 ᢮⢠:
       ᥫ    ࠭  ⠡
           ਯ஢;
       AR     ᥣ , 㯭 
           ,   ᥣ, 㯭  ⥭;
      IF  ᥣ   -ଭ  ᥣ,
      THEN DPL   > CPL,  DPL   < RPL;
  OD;


ᠭ
--------

 ० ॠ ᮢ  IRET   ⥪
㪠⥫ , ॣ CS  䫠 ॣ, ᫥ 祣
 믮 ࢠ ணࠬ.

 饭 ० ⢨  IRET   ⠭
䫠   (NT)  ॣ 䫠.  祭
 ⥪  ࠧ 䫠  IOPL 䫠 ॣ
 ⮫쪮  CPL ࠢ 0.

᫨ 䫠 NT 饭,  IRET 頥  楤
뢠  ४祭 . ,   ந室
,   ࠢ   ਢ஢, 祬
ணࠬ 뢠 ( 㪠뢠  RPL ᥫ CS,
  ⥪). ᫨  祭 
ਢ஢,   IRET ⠪   ⥪
㪠⥫ ⥪  SS.

᫨ 䫠 NT ⠭,   IRET 믮  ⭮
᫥⥫쭮 ⭮⥫쭮  CALL  INT, 맢
४祭 .  ﭨ , 믮饩
 IRET, ࠭   ᥣ ﭨ  (TSS).
 ୮ 室   ᫥⢨ 믮 ,
 ᫥   IRET.


塞 䫠
----------------

  䫠; ॣ 䫠   ⥪.

᪫祭 饭 ०
----------------------------------

#GP, #NP  #SS,  㪠   ࠧ " ".


᪫祭 ० ॠ ᮢ
---------------------------------------

뢠 13, ᫨ -    ⥪
࠭   ᮬ 0FFFFH.

᪫祭 㠫쭮 ० 8086
----------------------------------------

 #GP(0), ᫨ IOPL  3,   .

-----------------------------------------------------------------



Jcc - 室, ᫨ ᫮ 室 㤮⢮

-----------------------------------------------------------------
|            ᫮      ᠭ                      |
|樨              ⠪⮢                                 |
|                      横                                   |
|                                                               |
|77 cb     JA rel8     3,1       室 ⪨, ᫨     |
|                                (CF = 0  ZF = 0)              |
|73 cb    JAE rel8     3,1       室 ⪨, ᫨     |
|                                 ࠢ (CF = 0)             |
|72 cb     JB rel8     3,1       室 ⪨, ᫨     |
|                                (CF = 1)                       |
|76 cb    JBE rel8     3,1       室 ⪨, ᫨     |
|                                 ࠢ (CF = 1  ZF = 1)  |
|72 cb     JC rel8     3,1       室 ⪨, ᫨ ७ |
|                                (CF = 1)                       |
|E3 cb   JCXZ rel8     8,5       室 ⪨, ᫨ ॣ |
|                                CX ࠢ 0                     |
|E3 cb  JECXZ rel8     8,5       室 ⪨, ᫨ ॣ |
|                                ECX ࠢ 0                    |
|74 cb     JE rel8     3,1       室 ⪨, ᫨ ࠢ   |
|                                (ZF = 1)                       |
|74 cb     JZ rel8     3,1       室 ⪨, ᫨ 0       |
|                                (ZF = 1)                       |
|7F cb     JG rel8     3,1       室 ⪨, ᫨   |
|                                (ZF = 0  SF = OF)             |
|7D cb    JGE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (SF = OF)            |
|7C cb     JL rel8     3,1       室 ⪨, ᫨   |
|                                (SF <> OF)                     |
|7E cb    JLE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (ZF=1  SF <> OF)  |
|76 cb    JNA rel8     3,1       室 ⪨, ᫨   |
|                                (CF = 1  ZF = 1)              |
|72 cb   JNAE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (CF = 1)             |
|73 cb    JNB rel8     3,1       室 ⪨, ᫨   |
|                                (CF = 0)                       |
|77 cb   JNBE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (CF=0  ZF=0)        |
|73 cb    JNC rel8     3,1       室 ⪨, ᫨      |
|                                ७ (CF = 0)              |
|75 cb    JNE rel8     3,1       室 ⪨, ᫨  ࠢ|
|                                (ZF = 0)                       |
|7E cb    JNG rel8     3,1       室 ⪨, ᫨       |
|                                 (ZF = 1  SF <> OF)   |
|7C cb   JNGE rel8     3,1       室 ⪨, ᫨       |
|                                  ࠢ (SF <> OF)    |
|7D cb    JNL rel8     3,1       室 ⪨, ᫨       |
|                                 (SF = OF)               |
|7F cb   JNLE rel8     3,1       室 ⪨, ᫨  -|
|                                  ࠢ (ZF=0  SF=OF)    |
|71 cb    JNO rel8     3,1       室 ⪨, ᫨      |
|                                ९ (OF=0)            |
|7B cb    JNP rel8     3,1       室 ⪨, ᫨  -|
|                                ஫ ⭮ (PF = 0)        |
|79 cb    JNS rel8     3,1       室 ⪨, ᫨      |
|                                 (SF = 0)                 |
|75 cb    JNZ rel8     3,1       室 ⪨, ᫨  |
|                                (ZF = 0)                       |
|70 cb     JO rel8     3,1       室 ⪨, ᫨         |
|                                ९ (OF = 1)          |
|7A cb     JP rel8     3,1       室 ⪨, ᫨ ஫|
|                                ⭮ (PF = 1)              |
|7A cb    JPE rel8     3,1       室 ⪨, ᫨ ஫|
|                                 ஢ ⭮ (PF = 1)  |
|7B cb    JPO rel8     3,1       室 ⪨, ᫨ ஫|
|                                 ஢ ⭮ (PF = 0)|
|78 cb     JS rel8     3,1       室 ⪨, ᫨     |
|                                (SF = 1)                       |
|74 cb     JZ rel8     3,1       室 ⪨, ᫨     |
|                                (ZF = 1)                       |
|0F 87 cw/dw   JA rel16/32  3,1  室 , ᫨      |
|                                (CF = 0  ZF = 0)              |
|0F 83 cw/dw  JAE rel16/32  3,1  室 , ᫨      |
|                                 ࠢ (CF = 0)             |
|0F 82 cw/dw   JB rel16/32  3,1  室 , ᫨      |
|                                (CF = 1)                       |
|0F 86 cw/dw  JBE rel16/32  3,1  室 , ᫨      |
|                                 ࠢ (CF = 1  ZF = 1)  |
|0F 82 cw/dw   JC rel16/32  3,1  室 , ᫨ ७  |
|                                (CF = 1)                       |
|0F 84 cw/dw   JE rel16/32  3,1  室 , ᫨ ࠢ    |
|                                (ZF = 1)                       |
|0F 84 cw/dw   JZ rel16/32  3,1  室 , ᫨ 0        |
|                                (ZF = 1)                       |
|0F 8F cw/dw   JG rel16/32  3,1  室 , ᫨    |
|                                (ZF = 0  SF = OF)             |
|0F 8D cw/dw  JGE rel16/32  3,1  室 , ᫨    |
|                                 ࠢ (SF = OF)            |
|0F 8C cw/dw   JL rel16/32  3,1  室 , ᫨    |
|                                (SF <> OF)                     |
|0F 8E cw/dw  JLE rel16/32  3,1  室 , ᫨    |
|                                 ࠢ (ZF=1  SF <> OF)  |
|0F 86 cw/dw  JNA rel16/32  3,1  室 , ᫨    |
|                                (CF = 1  ZF = 1)              |
|0F 82 cw/dw JNAE rel16/32  3,1  室 ⪨, ᫨   |
|                                 ࠢ (CF = 1)             |
|0F 83 cw/dw  JNB rel16/32  3,1  室 , ᫨    |
|                                (CF = 0)                       |
|0F 87 cw/dw JNBE rel16/32  3,1  室 , ᫨    |
|                                 ࠢ (CF=0  ZF=0)        |
|0F 83 cw/dw  JNC rel16/32  3,1  室 , ᫨       |
|                                ७ (CF = 0)              |
|0F 85 cw/dw  JNE rel16/32  3,1  室 , ᫨  ࠢ |
|                                (ZF = 0)                       |
|0F 8E cw/dw  JNG rel16/32  3,1  室 , ᫨        |
|                                 (ZF = 1  SF <> OF)   |
|0F 8C cw/dw JNGE rel16/32  3,1  室 , ᫨        |
|                                  ࠢ (SF <> OF)    |
|0F 8D cw/dw  JNL rel16/32  3,1  室 , ᫨        |
|                                 (SF = OF)               |
|0F 8F cw/dw JNLE rel16/32  3,1  室 , ᫨  - |
|                                  ࠢ (ZF=0  SF=OF)    |
|0F 81 cw/dw  JNO rel16/32  3,1  室 , ᫨       |
|                                ९ (OF=0)            |
|0F 8B cw/dw  JNP rel16/32  3,1  室 , ᫨  - |
|                                ஫ ⭮ (PF = 0)        |
|0F 89 cw/dw  JNS rel16/32  3,1  室 , ᫨       |
|                                 (SF = 0)                 |
|0F 85 cw/dw  JNZ rel16/32  3,1  室 , ᫨   |
|                                (ZF = 0)                       |
|0F 80 cw/dw   JO rel16/32  3,1  室 , ᫨          |
|                                ९ (OF = 1)          |
|0F 8A cw/dw   JP rel16/32  3,1  室 , ᫨ ஫ |
|                                ⭮ (PF = 1)              |
|0F 8A cw/dw  JPE rel16/32  3,1  室 , ᫨ ஫ |
|                                 ஢ ⭮ (PF = 1)  |
|0F 8B cw/dw  JPO rel16/32  3,1  室 , ᫨ ஫ |
|                                 ஢ ⭮ (PF = 0)|
|0F 88 cw/dw   JS rel16/32  3,1  室 , ᫨      |
|                                (SF = 1)                       |
|0F 84 cw/dw   JZ rel16/32  3,1  室 , ᫨      |
|                                (ZF = 1)                       |
-----------------------------------------------------------------

ਬ砭: ࢮ ᫮ ⠪⮢ 横 ⭮  ,
 ᫮ 室 믮 (室 ந室); ஥
祭 ⭮  ,  ᫮  믮 (
室  ந室). rel16/32 㪠뢠,   
⮡ࠦ   :   16-ࠧ來 ⭮⥫
ᬥ饭,    32-ࠧ來 ⭮⥫ ᬥ饭, 
ᨬ  ਡ ࠧ ࠭  .


 
--------------

IF ᫮
THEN
  EIP <- EIP + SignExtend(rel8/16/32);
  IF OperandSize = 16
  THEN EIP <- EIP AND 0000FFFFH;
  FI;
FI;


ᠭ
--------

 ᫮ 室 ( ᪫祭  JCXZ)
஢ 䫠,  뫨 ⠭ ।饩 .
᫮   ᪮     㣫
᪮  ᫥  ᠭ. ନ "" 
"" ᯮ  ࠢ 楫  ; "" 
"" -  楫  .

᫨ ᫮ 믮,  ந室 室  ,
 ࠭. ᯮ짮   
䥪⨢,  楫 ᫮ 室 室  ⥪饬
 ᥣ   ।  -128  +127 ⮢
⭮⥫쭮 ࢮ  ᫥饩 .

 室 ⠪  室  ।  -32768 
+32767 (ਡ ࠧ ᥣ 16)   -2**31  +2**31-1
(ਡ ࠧ ᥣ 32) ⭮⥫쭮 ࢮ 
᫥饩 . ᫨ 楫  ᫮ 室
室  㣮 ᥣ, ᯮ  
⨢ ᫮ 室,  "" 
쭥 ᫮ 室  㣮 ᥣ. ਬ, 
  :

     JZ FARLABEL;


      ⮣ :

     JNZ BEYOND;
     JMP FARLABEL;
BEYOND:

᪮  ⢮ ᪮쪮 ᯮᮡ 樨
⭮ ﭨ 䫠, ASM386 ᯥ稢  
᪮   設⢠  樨 ᫮
室. ਬ, ᫨  ࠢ  ᨬ  AX  
믮 室, ᫨  ࠢ, ᯮ  JE, ,
᫨  믮    ॣ AX  ᪮,
ᠭ  ⮢ ,  , ⮡ 室 ந室
⮫쪮  १, ࠢ 0, ᯮ  JZ, 
 ᨭ  JE.

 JCXZ ⫨砥  㣨  ᫮ 室 ⥬,
  ஢  䫠,  ᮤন ॣ஢ CX  ECX 
ࠢ⢮ 0.  JCXZ   砫 ᫮ 横,
 稢  ᫮ 室  砫 横
(ਬ, LOOPNE ⪠ 楫).  JCXZ ।頥
宦  横  ॣ CX  ECX, ࠢ ,  
ਢ  믮 横 64  32 ࠧ   ࠧ.


塞 䫠
----------------

     

᪫祭 饭 ०
----------------------------------

#GP (0), ᫨ ᬥ饭,  ஥  室,  
࠭  ᥣ.


᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

ਬ砭
----------

 JCXZ 믮 , 祬 ᫥⥫쭮  
, ࠢ ॣ-稪  㫥  믮
室  砥 ࠢ⢠.

  ⢫ ८ࠧ  롮ન  16-ࠧ來
, ᨬ   室   ஢.

-----------------------------------------------------------------

JMP - 室

-----------------------------------------------------------------
|            ᫮      ᠭ                      |
|樨              ⠪⮢                                 |
|                      横                                   |
|EB cb     JMP rel8      3        室 ⪨              |
|E9 cw     JMP rel16     3        室 , ᬥ饭     |
|                                 ⭮⥫쭮 ᫥饩 |
|FF /4     JMP r/m16     5/5      室  ᢥ     |
|EA cd     JMP ptr16:16 17,pm=19  室 ᥣ, 4-- |
|                                 ⮢ ।⢥   |
|EA cd     JMP ptr16:16  32       室   맮,   |
|                                 ਢ஢           |
|EA cd     JMP ptr16:16  42+TS    室 १ ᥣ - |
|                                                      |
|EA cd     JMP ptr16:16  42+TS    室 १       |
|FF/5d     JMP m16:16   13,pm=18  室 r/m16:16 ᢥ   |
|                                 ᥣ                 |
|FF /5     JMP m16:16    3        室   맮,   |
|                                 ਢ஢           |
|FF /5     JMP m16:16    41+TS    室 १ ᥣ - |
|                                                      |
|FF /5     JMP m16:16    42+TS    室 १       |
|E9 cd     JMP rel32     3        室 , ᬥ饭     |
|                                 ⭮⥫쭮 ᫥饩 |
|FF /4     JMP r/m32     5/5      室  ᢥ     |
|EA cp     JMP ptr16:32 13,pm=18  室 ᥣ, 6-- |
|                                 ⮢ ।⢥   |
|EA cp     JMP ptr16:32  31       室   맮,   |
|                                 ਢ஢           |
|EA cp     JMP ptr16:32  42+TS    室 १ ᥣ - |
|                                                      |
|EA cp     JMP ptr16:32  43+TS    室 १       |
|FF /5     JMP m16:32   13,pm=18  室 ᥣ,   |
|                                   ᫮ r/m           |
|FF /5     JMP m16:32    31       室   맮,   |
|                                 ਢ஢           |
|FF /5     JMP m16:32    41+TS    室 १ ᥣ - |
|                                                      |
|FF /5     JMP m16:32    42+TS    室 १       |
-----------------------------------------------------------------

ਬ砭: 祭 ts  ᫥饩 ⠡楩:

-----------------------------------------------------------------
                     |           
         |-------------------------------------------
                     |  TSS i486 |  TSS 80286 |  TSS VM
-----------------------------------------------------------------
 VM/i486/TSS 80286   |     199    |     180     |     177
-----------------------------------------------------------------

 
--------------

IF  = ⭮⥫ 室 JMP
  (* .. ࠭  rel8, rel16  rel32 *)
THEN
  EIP <- EUP + rel8/16/32;
  IF OperandSize = 16
  THEN EIP <- EIP AND 0000FFFFH;
  FI;
FI;

IF  =  ᢥ 室 JMP
  (* .. ࠭  r/m16  r/m32 *)
THEN
  IF OperandSize = 16
  THEN
    EIP <- [r/m16 AND 0000FFFFH;
  ELSE (* OperandSize = 32 *)
    EIP <- [r/m32;
  FI;
FI;


IF (PE = 0 OR (PE = 1 AND VM = 1))
(* ० ॠ ᮢ  㠫 ० 8086 *)
  AND  = 쭨 JMP
  (* .. ⨯ ࠭ ࠢ m16:16, m16:32, ptr16:16, ptr16:32 *)
THEN GOTO ----V86
  IF ⨯ ࠭ = m16:16  m16:32
  THEN (* ᢥ *)
    IF OperandSize = 16
    THEN
      CS:IP <- [m16:16;
      EIP <- EIP AND 0000FFFFH: (* ⪠  16 ⮢ *)
    ELSE (* OperanfSize = 32 *)
      CS:EIP <- [m16:32;
    FI;
  FI;
  IF ⨯ ࠭ = ptr16:16  ptr16:32
  THEN
    IF OperandSize = 16
    THEN
      CS:IP <- ptr16:16;
      EIP <- EIP AND 0000FFFFH: (* ⪠  16 ⮢ *)
    ELSE (* OperanfSize = 32 *)
      CS:EIP <- ptrm16:32;
    FI;
  FI;
FI;


IF (PE = 1 AND VM = 0) (* 饭 ०,   ० V86 *)
  AND  = 쭨 JMP
THEN
  IF ⨯ ࠭ = m16  m16:32
  THEN (* ᢥ *)
    ஢    ᫮ EA;
    #GP(0)  #SS(0) IF 襭 ࠭;
  FI;
   祭    , ELSE #GP(0);
   ᥫ 祭    ।
    ࠭ ਯ୮ ⠡; ELSE #GP(ᥫ)
   ᨬ   AR ਯ 祭:
    GOTO      --;
    GOTO      --;
    GOTO      -;
    GOTO      -;
    GOTO      --;
  ELSE #GP(ᥫ); (* ⨬  AR  ਯ *)
FI;


--:
  DPL ਯ   <= CPL  ELSE  #GP(ᥫ);
      ⢮   ELSE  #NP  (ᥫ);
  ⥫     ࠭  ᥣ ELSE
                                                #GP(0);
  IF OperandSize = 16
  THEN  㧨 CS:EIP  㪠⥫ 祭;
  ELSE  㧨 CS:IP   㪠⥫ 祭;
  FI;
  㧨 ॣ CS  ਯ஬ ᥣ;

--:
  RPL ᥫ 祭   <= CPL ELSE #GP(ᥫ);
  DPL ਯ   = CPL  ELSE  #GP(ᥫ);
      ⢮   ELSE  #NP  (ᥫ);
  ⥫     ࠭  ᥣ ELSE
                                                #GP(0);
  IF OperandSize = 32
  THEN  㧨 CS:EIP  㪠⥫ 祭;
  ELSE  㧨 CS:IP   㪠⥫ 祭;
  FI;
  㧨 ॣ CS  ਯ஬ ᥣ;
  ⠭  RPL  CS ࠢ CPL;

-:
  DPL ਯ   >= CPL  ELSE  #GP(ᥫ );
  DPL ਯ   >= RPL ᥫ  ELSE
                  #GP(ᥫ );
    ⢮    ELSE  #NP(ᥫ );
  ᬮਬ ᥫ  ᥣ  ਯ 
                                                 맮:
         ELSE #GP(0)
        । ࠭  ਯ୮
      ⠡ ELSE #GP(ᥫ CS)
     AR ࠭ ਯ   
      ᥣ ELSE #GP (ᥫ CS)
    IF -ଭ
    THEN DPL ਯ  ᥣ   = CPL
    ELSE #GP(ᥫ CS);
    FI;
    IF ଭ
    THEN DPL ਯ  ᥣ   <= CPL;
    ELSE #GP(ᥫ CS);
     ᥣ  ⢮ ELSE #NP(ᥫ CS);
    ⥫     ࠭  ᥣ ELSE
                                                #GP(0);
    IF OperandSize = 32
    THEN  㧨 CS:EIP   맮;
    ELSE  㧨 CS:IP    맮;
    FI;
  㧨 ॣ CS  ਯ஬  ᥣ;
  ⠭  RPL  CS ࠢ CPL;


-:
  DPL ਯ    >= CPL ELSE #TS(ᥫ )
  DPL ਯ    >= RPL ᥫ  ELSE
            #GP(ᥫ )
     ⢮ ELSE #NP(ᥫ )
  ᫥ ᥫ TSS,   ਯ  :
        /  
      ELSE #GP(ᥫ TSS)
      室  । ࠭ GDT
      ELSE #GP(ᥫ TSS)
     AR   ਯ   TSS      㯭  TSS
              (訥  00001);
      ELSE #GP(ᥫ TSS)
     ﭨ  (TSS)  ⢮
      ELSE #NP(ᥫ TSS)
  - ( )  TSS
  ⥫   室  ࠭  ᥣ
      ELSE #GP(0)

--:
  DPL  TSS   >= CPL ELSE #GP(ᥫ TSS)
  DPL  TSS   >= RPL ᥫ TSS
     ELSE #GP(ᥫ TSS)
   AR ਯ   㯭 TSS (訥 
      00001) ELSE #GP(ᥫ TSS)
   ﭨ  (TSS)  ⢮
      ELSE #NP(ᥫ TSS)
  - ( )  TSS
  ⥫    室  ࠭  ᥣ
      ELSE #GP(0);

ᠭ
--------

 JMP । ࠢ    ⮪ , 
뢠 ଠ樨  믮 .

 ᠭ ⢨  ࠧ  .

 室  ⨯ 祭 r/m16m, r/m32  r/m32
믮  室     祭
ᥣ⭮ ॣ.

  室 JMP rel16  JMP rel32 ᪫뢠 ᬥ饭
 ᮬ , ᫥饩  JMP, ⮡ । 祭
. ଠ  rel16 ᯮ,  ਡ ࠧ
࠭  ࠢ 16 ⠬ (⮫쪮 ਡ ࠧ ᥣ
16); ଠ  rel32 ᯮ,  ਡ ࠧ ࠭
 ࠢ 32 ⠬ (⮫쪮 ਡ ࠧ ᥣ 32).
 ࠭  32-ࠧ來 ॣ EIP.  砥
rel16 訥 16 ⮢ ॣ EIP ,  ⠪ ࠧ,
砥 ᬥ饭, ࠧ ண  ॢ蠥 16 ⮢.

 JMP r/m16  JMP r/m32  ॣ   , 
ண 롨ࠥ ᮫⭮ ᬥ饭  楤. ࠭
 r/m ᬥ饭 ࠢ 32 ⠬  ਡ ࠧ ࠭,
ࠢ 32 ⠬ (r/m32),  16 ⠬  ਡ ࠧ
࠭, ࠢ 16 ⠬ (r/m16).

  JMP ptr16:16  ptr16:32 ᯮ 娫
-⮢ ࠭  ⢥  㪠⥫ 
祭.  JMP m16:16  m16:32 롨 쭨 㪠⥫
    (ᢥ 饭).  ०
ॠ ᮢ  㠫쭮 ० 8086  㪠⥫
ᯥ稢 16 ⮢  ॣ CS  16  32  
ॣ EIP ( ᨬ  ਡ ࠧ ࠭). 
饭 ०    묨 㪠⥫ﬨ ஢
 ࠢ 㯠 (AR)  ਯ, 㥬 ᥫ୮
  㪠⥫.  ᨬ  祭  AR
室 㤥 ⢫   ᫥ ⨯ ।
ࠢ:

- 室   ᥣ  ⮬  ஢
  ਢ஢.

- ४祭 .

 ஡ ଠ  । ࠢ  饭
० 室   6  7.


塞 䫠
----------------

 ४祭    䫠; ᫨ 
४祭   ந室,  䫠  .

᪫祭 饭 ०
----------------------------------

 쭨 室: #GP, #NP, #SS  #TS,  㪠 .

   室: #GP(0), ᫨ 楤 室
 । ࠭  ᥣ; #AC  ࠢ
뫪    ⥪饬 ஢ ਢ஢, ࠢ
3.

  ᢥ 室: #GP(0)  砥 ⨬
ᯮ⥫쭮  ࠭   ᥣ CS, DS, ES,
FS  GS; #SS(0)  砥 ⨬   ᥣ SS; #
GP, ᫨ 祭 ᢥ ᬥ饭   ࠭栬
 ᥣ; #PF( ᡮ)  砥 ࠭筮 ᡮ; #AC
 ࠢ 뫪    ⥪饬 ஢
ਢ஢, ࠢ 3.

᪫祭 ० ॠ ᮢ
---------------------------------------

뢠 13, ᫨ -  ࠭  
࠭⢠ ᯮ⥫ ᮢ  0  0FFFFH.

᪫祭 㠫쭮 ० 8086
----------------------------------------

  ᪫祭,    ० ॠ ᮢ: #PF (
ᡮ)  ࠭ ᡮ; #AC  ࠢ 뫪 
  ⥪饬 ஢ ਢ஢, ࠢ 3.

ਬ砭
----------

  ⢫ ८ࠧ  롮ન  16-⮢
, ᨬ   室   ஢.

-----------------------------------------------------------------


LAHF - 㧪 䫠  ॣ AH

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|9F        LAHF       3        㧪: AH = 䫠             |
|                              SF ZF xx AF xx PF xx CF          |
-----------------------------------------------------------------

 
--------------

AH <- SF:ZF:xx:AF:xx:PF:xx:CF;

ᠭ
--------

 LAHF 뫠 訩  ᫮ 䫠  ॣ AH.
,  MSB  LSB,   , , ।,
ᯮ⥫, ।, ஫ ⭮,
।  ७.

塞 䫠
----------------

     

᪫祭 饭 ०
----------------------------------

     

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     
-----------------------------------------------------------------

LAR  - 㧪  ࠢ 㯠

-----------------------------------------------------------------
|               ᫮      ᠭ                   |
|樨                 ⠪⮢                              |
|                         横                                |
|                                                               |
|0F 02 /r  LAR r16,r/m16   11/11   r16 <- r/m16 ᪨ FF00|
|0F 02 /r  LAR r32,r/m32   11/11   r32 <- r/m32 ᪨     |
|                                               00FxFF00        |
-----------------------------------------------------------------


ᠭ
--------

 LAR ࠭ ⬥祭  ண  ᫮
ਯ  ⢥ 室 ᥫ, ᫨ ᥫ 
 ⥪饬 ஢ ਢ஢ (஢ RPL
ᥫ)  ᮤন ⨬ ⨯ ਯ  ࠭
ਯ.  祭 㦠 訬 
᫮ ਯ, ᪨㥬 祭 00FxFF00, 
⠭ 䫠 ZF. x 㪠뢠  ,   ,
ᮮ⢥騥 訬 ६ ⠬ ࠭,  祭,
㦠  LAR, ।. ᫨ ᥫ 
   ⨯,  䫠 ZF 頥.

᫨  32-ࠧ來 ࠧ ࠭,   32-ࠧ來
祭 楫 㦠  32-ࠧ來 ॣ 祭.
᫨  16-ࠧ來 ࠧ ࠭,  訥 16 ⮢
⮣ 祭 㦠  16-ࠧ來 ॣ 祭.

⨬묨   LAR   ਯ 
ᥣ⮢  ᥣ⮢ .

⨬ ⨯ ਯ஢ ᯥ樠 ᥣ⮢   
 LAR ਢ  ᫥饩 ⠡:

-----------------------------------------------------------------
                                    ⨬/⨬
-----------------------------------------------------------------
   0      ⨬                           ⨬
   1      㯭 TSS 80286                   ⨬
   2      LDT                                   ⨬
   3       TSS 80286                     ⨬
   4       맮 80286                     ⨬
   5        80286/i486                ⨬
   6       誨 80286                    ⨬
   7       뢠 80286                 ⨬
   8      ⨬                           ⨬
   9      㯭 TSS i486                    ⨬
   A      ⨬                           ⨬
   B       TSS i486                      ⨬
   C       맮 i486                      ⨬
   D      ⨬                           ⨬
   E       誨 i486                     ⨬
   F       뢠 i486                  ⨬
-----------------------------------------------------------------


塞 䫠
----------------

 ZF ⠭, ᫨ ⮫쪮 ᥫ   
 ⨬ ⨯,  䫠 ZF 頥.

᪫祭 饭 ०
----------------------------------

#GP(0)  砥 ⨬ ᯮ⥫쭮  ࠭
  ᥣ CS, DS, ES, FS  GS; #SS(0)  砥
⨬   ᥣ SS; #PF( ᡮ)  砥
࠭筮 ᡮ; #AC  ࠢ 뫪   
⥪饬 ஢ ਢ஢, ࠢ 3.

᪫祭 ० ॠ ᮢ
---------------------------------------

뢠 6;  LAR  ० ॠ ᮢ 
ᯮ.

᪫祭 㠫쭮 ० 8086
----------------------------------------

  ᪫祭,    ० ॠ ᮢ.

-----------------------------------------------------------------


